Programme mit genetischen Algorithmen?
-
Hello everybody!
Ich bin zur Zeit an der Umsetzung von genetischen Algorithmen interessiert. Diese Algorithmen benutzen Elemente der biologischen Evolution wie zum Beispiel Mutation, Auswahl, Rekombination usw. Hab' gehoert, dass komplizierte Probleme dadurch geloest werden koennen. Kann jemanden auf einen Turorial hinweisen oder Vorschlaege fuer ein Programmprojekt machen? Stichwort: Evolution.
-
Oh, mein Lieblingsthema, zumindest die GP-Variante!
Ein guter Einstieg ist das hier: http://www.genetic-programming.org/,
es gibt auch eine halbwegs gute Usergroup bei Yahoo: http://groups.yahoo.com/group/genetic_programming/messagesWenn Du ein paar persönliche Erfahrungen willst ->PM
-
Miq schrieb:
Wenn Du ein paar persönliche Erfahrungen willst ->PM
FYI: PMs sind in diesem Forum deaktiviert.
-
Sorry, hab' nicht aufgepasst. Meinetwegen auch ruhig öffentlich, nur wird das vermutlich wenige interessieren.
-
http://www.informatik.oelinger.de/data/datafiles_datafile_1045559964.pdf
http://www.informatik.oelinger.de/data/datafiles_datafile_1045560046.pdfcu
P84
-
Miq schrieb:
Sorry, hab' nicht aufgepasst. Meinetwegen auch ruhig öffentlich, nur wird das vermutlich wenige interessieren.
Schreib deine Erfahrungen ruhig hier rein, evtl. koennen wir ja sogar 'nen FAQ Eintrag draus machen
-
Guck dir mal das Buch von Volker Nissen an.
-
"Evolutionäre Algorithmen" heißt et.
-
Zur Zeit versuche ich, mithilfe genetischen (oder evolutionaeren) Algorithmen Probleme der linearen Optimierung zu loesen. Dies heisst zum Beispiel, Werte fuer Variablen zu finden, die bestimmte Rahmenbedingungen erfuellen und die in einer Profitfunktion den maximalen oder minimalen Wert berechnen. Ich weiss, dass genetische Algorithmen nur gute, aber nicht unbedingt die beste Loesungen berechnet. In wiefern kann ich erreichen, dass das Ergebnis moeglichst optimal wird? Sollte ich vielleicht an der Fitnessfunktion basteln, oder soll ich eine groessere Population oder mehr Zeit erlauben? Gibt es andere Moeglichkeiten ?
-
Ein Pauschalrezept gibt es nicht, die Vorgaben für die Evolutionsparameter sind je nach Problem unterschiedlich optimal - da musst Du ein wenig Trial&Error anwenden.
Das Hauptproblem ist es, eine gute Balance zwischen Konvergenz und zu früher Konvergenz zu finden. Wenn man den Evolutionsdruck zu hoch macht, landet man irgendwann auf einem lokalen Optimum und kommt nicht mehr 'runter, ist er zu niedrig, irrt die Suche zufällig in der Fitnesslandschaft umher, ohne ein Ziel zu finden.
* Wenn Du es schaffst, die Fitnessfunktion so glatt zu gestalten, dass lokale Optima nicht oder wenig vorkommen, und es auch keine Unstetigkeitsstellen darin gibt, bist Du schon ein großes Stück weiter
* Versuche, die Population zu segmentieren, mit nur gelegentlichem Austausch des Genpools (Google: "Island model" oder "Demes" im Gegensatz zu "panmictic population")
* Wenn Du kannst, benutze mehr als ein Ziel für die Feststellung der Fitness, z.B. neben der Lösungsqualität die Länge des Genoms oder die Anzahl notwendiger Berechnungen
* Bei manchen Problemen hilft es, die Topologie der Testfälle zu berücksichtigen. Es kostet nur unnötig Zeit, mehrere gleichgeartete Tests durchlaufen zu müssen, anstatt sich auf die wirklich unterschiedlichen zu konzentrieren. Die Topologie kann man automatisch während der Evolution ermitteln (Google: "Test case topology")
* Schau' Dir mal "Hierarchical Fair Competition (HFC)" an - dadurch wird verhindert, dass momentan gute Individuen bei der Selektion alle noch schlechteren, aber vielleicht vielversprechenden Ansätze dominieren und dadurch platt machen.