Frage

Einige Rahmen genetischen Algorithmus, wie zum Beispiel http://www.aforgenet.com/ erfordert viele Parameter wie Mutationsrate, Bevölkerungsgröße, etc.

Es ist universell beste Zahlen für solche Parameter? Ich glaube, dass es das Problem hängt (Fitness-Funktion Verzögerung, Mutation Verzögerung, Rekombination Verzögerung, Entwicklungsrate, usw.). Mein erster Gedanke war ein GA verwenden Sie einen anderen GA zu konfigurieren.

Jede bessere Ideen?

War es hilfreich?

Lösung

Das eine Mal, wenn ich einen genetischen Algorithmus programmiert ich diese Werte in den Werten enthalten, zu mutieren, im Grunde wie Sie ein GA unter Verwendung des selbst zu konfigurieren. Es funktionierte überraschend gut, zumal ich es vorteilhaft erwiesen haben für diese Werte über den Kurs zu ändern, davon Berechnung ist.

Andere Tipps

Ich finde es hilft dieser Probleme als Landschaft zu denken, wo Sie versuchen, den tiefsten Punkt zu finden.

Methoden wie genetische Algorithmen verwendet werden, wenn die Landschaft zu groß ist, nur die Punkte alle zu testen, und die „Form“ die Landschaft ist, so dass Methoden wie Gradienten-Abstieg erhalten Sie in lokalen Minima stecken.

Ein gutes Beispiel ist Rastrigin die Funktion ( Bild ref ): alt text
(Quelle: scientific-computing.com )
:

Sie haben die Wahl:

Generation Größe:

  • Zu groß: Sie gehen ein haben lange Epoche Zeit, zu beschränken, wie viele Chancen hat jeder einzelne zu erkunden, es ist Nachbarschaft.
  • Zu klein: Sie nicht bekommen gut Abdeckung des Suchraums.

Mutationsrate:

  • zu hoch: Sie riskieren die Individuen über eine Lösung „Springen“ waren sie nahe bei.
  • zu niedrig: sie werden alle bekommen in lokalen Minima stecken.

So ist es wirklich auf Ihrem eigenen bestimmten Suchraum abhängt. Experimentieren Sie mit den Parametern und versuchen, die optimale Kombination zu finden. Ich würde zustimmen, dass eine weitere GA über die Parameter zu optimieren ist nicht das Problem geht zu lösen.

Ich finde es eher enttäuschend, es gibt so viele Antworten, die Sie übernehmen nicht die besten Parameter für den genetischen Algorithmus automatisch finden. Ich bin damit einverstanden, dass die Parameter auf das Problem jedoch hängt es Methoden gibt, wo Sie sie finden können.

Zusätzlich die No Free Lunch Satz auf keinen Fall Sie von der Suche nach den besten Parameter stoppt, da die Diskussion schon gewesen sein dass bestreitet die Tatsache:

Es gibt zwei Arten von Parametereinstellung:

  • Parameter Tuning (offline Parametersuche - vor der GA läuft)
  • Parameter Control (Online-Parameter Zwicken - während der GA-Lauf)
    • Adaptive
    • Self Adaptive
    • deterministische

Es gibt viel Literatur gibt, die beschreiben, wie man diese optimalen Parameter zu finden, es hängt davon ab, ob Sie wollen die Parametersuche offline oder online zu tun. Landläufigen Meinung ist, dass offline für die meisten Fälle besser geeignet ist, da die Online-Parameter Kontrollmethoden zu viel Komplexität über offline hinzufügen würde.

Hier sind einige Beispiele, die „besten“ Parameter zu finden:

Parameter Tuning :

Parametersteuerung :

Und viel mehr, nur die Suche nach der Literatur Schlüsselwörter oben verwendet werden. Es gibt wissenschaftliche Methoden für geeignete Parameter für ein gegebenes Problem zu finden!

Es ist nicht einfach.

Warum? Wegen der No Free Lunch Satz. Diese besagt im Grunde, dass es keine ist allgemein Suchalgorithmus, der gut für alle Probleme funktioniert.

Das Beste, was Sie tun können, ist Schneider die Suche nach einem spezifischen Problemraum. Sie müssen manuell Ihre Parameter optimieren Sie Ihre Lösung passen. Es tut uns Leid.

ein GA Mit GA-Parameter zu finden, wird kompliziert. Wie finden Sie die optimalen Parameter für Ihre GAGA Suche? Ein weiterer GA ...?

Es gibt wirklich nicht automatisch so, wie es für einen gegebenen Datensatz zu tun. Gäbe es, würden sie diese Parameter nicht aussetzen. die Parameter des ersten GA eine zweite GA stimmen zu verwenden ist gefährlich - haben Sie eine dritte GA die Parameter des zweiten abzustimmen benutzen? Auch wenn du das getan hast, es ist ein Rezept für eine Überanpassung sowieso.

Mein Rat wäre, mit den Parametern zu spielen, und sehen, wie sie Ihre Bevölkerung distrubution bei jeder Generation beeinflussen, wie viele Generationen auf ein vertretbares Antwort zu bekommen dauert, usw. Wenn Sie zu viel Mutation Ihre Bevölkerung wird nie stabilisieren . Zu wenig, und Sie werden mit Homogenität enden.

Es ist ein schmutziges Geheimnis von GAs, die sie ist eine Kunst, keine Wissenschaft zu stimmen.

Wie alle anderen gesagt, gibt es keine eine Antwort. Zwar gibt es eine gewisse Tendenz Rate auf Ebene zu verwenden Crossover ist 0,7-0,9 und Mutation auf 0,1-0,3 es hängt wirklich. Hängt von Problem kann auf Fitness-Funktion abhängen, und auf jeden Fall hängt von genetischem Algorithmus selbst. Es gibt viele Variationen GA, optimale Parameter für das gleiche Problem kann variieren.

Wie für die Verwendung von GA abzustimmen Parametern des Ziel GA gibt es Ansätze, wie das, aber, wie es hingewiesen wurde, wie Parameter der ersten GA zu stimmen? Denken Sie daran, dass vielleicht Mutationsrate am Anfang höher sein sollte, und als es sollte abnehmen, während Kreuz über Rate erhöht werden soll. Es ist Frage der Erforschung gegen Ausbeutung. Es gibt Ansätze GA anpassungsfähiger sein zu lassen und lassen Sie es seine Parameter ändern, da es für die Lösung aussieht. Fuzzy-Controller werden manchmal zu manipulieren Parameter GA verwendet. Es gibt auch andere Ansätze.

Wenn Sie mehr darüber wissen, einige Bücher kaufen, oder schauen Sie durch die akademische Forschung Papiere.
Wenn Sie ohne umfangreiche Forschung Ihre eigenen GA einrichten müssen, versuchen einige Werte von den anderen arbeiten und experimentieren mit ihnen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top