Ich habe eine Weile nach Beispielen gesucht, wie ich mithilfe eines genetischen Algorithmus in Python die Punkte finden kann, an denen eine Funktion ihr Minimum erreicht. Ich habe mir die DEAP-Dokumentation angesehen, aber die Beispiele dort waren für mich ziemlich schwer zu befolgen. Zum Beispiel:
def function(x,y):
return x*y+3*x-x**2
Ich suche nach Referenzen, wie ich einen genetischen Algorithmus erstellen kann, mit dem ich einige anfängliche Zufallswerte für x und y eingeben kann (die nicht aus denselben Dimensionen stammen). Kann mir jemand mit Erfahrung in der Erstellung und Verwendung genetischer Algorithmen eine Anleitung dazu geben?
Antworten:
Hier ist ein triviales Beispiel , das die Essenz genetischer Algorithmen aussagekräftiger erfasst als das von Ihnen bereitgestellte Polynom. Das von Ihnen angegebene Polynom ist über lösbar
stochastic gradient descent
, was eine einfachere Minimierungstechnik darstellt. Aus diesem Grund schlage ich stattdessen diesen ausgezeichneten Artikel und das Beispiel von Will Larson vor.Zitiert aus dem Originalartikel :
Schauen Sie sich den gesamten Artikel an , aber hier ist der vollständige Code :
Ich denke, es könnte sehr pädagogisch nützlich sein, auch Ihr ursprüngliches Problem mit diesem Algorithmus zu lösen und dann auch eine Lösung mit
stochastic grid search
oder zu konstruieren,stochastic gradient descent
und Sie werden ein tiefes Verständnis für das Nebeneinander dieser drei Algorithmen gewinnen.Hoffe das hilft!
quelle