استراتيجيات تطورية جعلت بسيطة!
استخدم evopy لتحسين متجه العوامات بسهولة في بيثون.
كل ما تحتاجه لاستخدام evopy هو Python 3! قم بتشغيل هذا الأمر لجلب Evopy من Pypi:
pip install evopy
ثم يمكنك استيراد EvoPy مثل هذا:
from evopy import EvoPy دعنا نقول أننا أردنا أن نجد الأمثل للمادة ، دون استخدام طرق دقيقة من حساب التفاضل والتكامل! مع evopy ، هذا سهل مثل كتابة السطرين التاليين:
evopy = EvoPy ( lambda x : pow ( x , 2 ), 1 )
best_coordinates = evopy . run () المكون الرئيسي هنا هو وظيفة اللياقة (Lambda). يمكن أن يكون هذا أيضًا مرجعًا طبيعيًا للوظيفة ، فقط تأكد من أنه يقبل تعويمًا أو مجموعة من العوامات ويخرج تعويمًا واحدًا. المكون الآخر هو 1 في نهاية السطر الأول: هذا هو أبعاد المدخلات التي تتوقعها في وظيفة اللياقة. سيحتوي best_coordinates على صفيف به عنصر واحد ، وهو أفضل قيمة x التي يمكن أن تجدها الخوارزمية في العدد الافتراضي للأجيال.
إذا بدا المثال السابق بسيطًا جدًا بالنسبة لك ، فيمكننا أيضًا النظر إلى الأمثل لوظيفة أكثر تعقيدًا وثنائية الأبعاد ، مثل وظيفة Rastrigin. لا يتعين علينا تعديل الكثير في مقتطف الرمز السابق لدينا للحصول على هذا العمل:
evopy = EvoPy (
lambda X : 5 + sum ([( x ** 2 - 5 * np . cos ( 2 * np . pi * x )) for x in X ]),
2 ,
generations = 1000 ,
population_size = 100
)
best_coordinates = evopy . run () بالمقارنة مع المثال الأول ، قمنا بتبادل وظيفة اللياقة للحصول على واحدة أكثر تعقيدًا ، وضبط الأبعاد على 2 ، وبالنظر إلى الخوارزمية لمزيد من الوقت لإيجاد الأمثل من خلال تحديد جيل أعلى والفرد من العدد الافتراضي.
لمزيد من المعلومات التفصيلية حول وظائف Evopy ، إلقاء نظرة على المستندات!
استنساخ هذا المستودع وجلب جميع التبعيات من داخل الدليل المستنسخ:
pip install -r requirements.dev.txt
قم بتشغيل جميع الاختبارات مع:
nosetests
للتحقق من أسلوب الرمز الخاص بك ، قم بتشغيل:
pylint evopy
لقياس تغطية الكود الخاصة بك ، قم بتشغيل:
nosetests --with-coverage --cover-package=evopy --cover-html --cover-branches --cover-erase