Evolutionsstrategien einfach gemacht!
Verwenden Sie Evopy, um einen Vektor von Floats in Python leicht zu optimieren.
Alles, was Sie brauchen, um Evopy zu verwenden, ist Python 3! Führen Sie diesen Befehl aus, um Evopy von PYPI abzurufen:
pip install evopy
Dann können Sie EvoPy so importieren:
from evopy import EvoPy Nehmen wir an, wir wollten das Optimum einer Parabola finden, ohne genaue Methoden aus Kalkül zu verwenden! Mit Evopy ist dies so einfach wie das Schreiben der folgenden zwei Zeilen:
evopy = EvoPy ( lambda x : pow ( x , 2 ), 1 )
best_coordinates = evopy . run () Die Hauptzutat hier ist die Fitnessfunktion (die Lambda). Dies kann auch eine normale Funktionsreferenz sein. Stellen Sie einfach sicher, dass er einen Schwimmer oder ein Array von Schwimmern akzeptiert und einen einzelnen Schwimmer ausgibt. Die andere Zutat ist die 1 am Ende der ersten Zeile: Dies ist die Dimensionalität der Eingänge, die Sie in Ihrer Fitnessfunktion erwarten. best_coordinates enthält ein Array mit einem einzelnen Element, das der beste x -Wert ist, den der Algorithmus in der Standardzahl der Generationen finden kann.
Wenn das vorherige Beispiel für Sie zu einfach erschien, können wir auch das Optimum einer komplexeren, zweidimensionalen Funktion wie die Rastrigin-Funktion betrachten. Wir müssen in unserem vorherigen Code -Snippet nicht viel ändern, damit dies funktioniert:
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 () Im Vergleich zum ersten Beispiel haben wir die Fitnessfunktion für einen komplexeren austauschten, die Dimensionalität auf 2 einstellen und dem Algorithmus mehr Zeit, um ein Optimum zu finden, indem sie eine höhere Generation und individuelle Anzahl als die Standardeinstellung festlegen.
Weitere Informationen zur Funktionalität von Evopy finden Sie in den Dokumenten!
Klonen Sie dieses Repository und holen Sie alle Abhängigkeiten aus dem geklonten Verzeichnis:
pip install -r requirements.dev.txt
Führen Sie alle Tests mit: aus:
nosetests
Um Ihren Codestil zu überprüfen, führen Sie aus:
pylint evopy
Um Ihre Codeabdeckung zu messen, rennen Sie:
nosetests --with-coverage --cover-package=evopy --cover-html --cover-branches --cover-erase