تنفيذ خوارزمية دوغلاس هوفستادتر المقلدة. تم شرح خوارزمية Copycat على ويكيبيديا، وتحتوي تلك الصفحة على العديد من الروابط لقراءة أعمق. انظر أيضًا فارجلكساندريا.
هذا التطبيق هو نسخة مقلدة لتطبيق Java الخاص بـ Scott Boland. تم تنفيذ أعمال الترجمة الأصلية من Java إلى Python بواسطة J Alan Brogan (@jalanb على GitHub). يحتوي إصدار Java على واجهة مستخدم رسومية مشابهة لـ Lisp الأصلي؛ لا يحتوي إصدار Python هذا على رمز واجهة المستخدم الرسومية المدمج ولكن يمكن دمجه في برنامج واجهة المستخدم الرسومية أكبر.
كتب ج. آلان بروغان:
في الحالات التي لم أتمكن فيها من فهم تنفيذ Java بسهولة، أخذت الأفكار من تطبيق LISP، أو مباشرة من كتاب ميلاني ميتشل "صنع القياس كإدراك".
لاستنساخ الريبو محليا، قم بتشغيل هذه الأوامر:
$ git clone https://github.com/fargonauts/copycat.git
$ cd copycat/copycat
$ python main.py abc abd ppqqrr --iterations 10
يأخذ البرنامج النصي ثلاث أو أربع وسيطات. الأولان عبارة عن زوج من السلاسل مع بعض التغيير، على سبيل المثال "abc" و"abd". والثالث عبارة عن سلسلة يجب أن يحاول البرنامج النصي تغييرها بشكل مماثل. الرابع (الذي الافتراضي هو "1") هو عدد من التكرارات.
قد ينتج عن هذا مخرجات مثل
ppqqss: 6 (avg time 869.0, avg temp 23.4)
ppqqrs: 4 (avg time 439.0, avg temp 37.3)
يشير الرقم الأول إلى عدد المرات التي اختار فيها Copycat تلك السلسلة كإجابة له؛ أعلى يعني "أكثر وضوحا". ويشير الرقم الأخير إلى متوسط درجة الحرارة النهائية لمساحة العمل؛ أقل يعني "أكثر أناقة".
لتثبيت وحدة بايثون والبدء بها، قم بتشغيل هذه الأوامر:
$ pip install -e git+git://github.com/fargonauts/copycat.git#egg=copycat
$ python
>>> from copycat import Copycat
>>> Copycat().run('abc', 'abd', 'ppqqrr', 10)
{'ppqqrs': {'count': 4, 'avgtime': 439, 'avgtemp': 37.3}, 'ppqqss': {'count': 6, 'avgtime': 869, 'avgtemp': 23.4}}
نتيجة run
هي إملاء يحتوي على نفس المعلومات التي تمت طباعتها بواسطة main.py
أعلاه.