Diskussion zum Artikel "Algorithmen zur Optimierung mit Populationen: Saplings Sowing and Growing up (SSG)"
Welches ist der beste Algorithmus zum Auffinden lokaler Extrema?
Grob gesagt, müssen wir eine Liste von Parametern erstellen, die am besten in lokale Extrema (Scheitelpunkte) fallen.
Zeigen Sie am Beispiel eines Igels die Koordinaten der Spitzen seiner Nadeln.
Gibt es irgendwelche Optimierungsalgorithmen, die folgende Eigenschaften haben?
Auswahl nur eines Teils der Parameter, wenn ihre Anzahl groß ist;
die ausgewählten Parameter werden nur mit Hilfe eines genetischen Algorithmus oder eines Algorithmus, der durch Genetik ersetzt werden kann, optimiert;
der Algorithmus zur Auswahl der aktiven Parameter für die aktuelle Iteration spielt keine Rolle, es ist erlaubt, die Bereiche und den Schritt der Optimierung zu ändern
Welches ist der beste Algorithmus zum Auffinden lokaler Extrema?
Grob gesagt, müssen wir eine Liste von Parametern erstellen, die am besten in lokale Extrema (Scheitelpunkte) fallen.
Zeigen Sie am Beispiel eines Igels die Koordinaten der Spitzen seiner Nadeln.
Für jede Aufgabe der globalen Suche sind die Algorithmen oben in der Tabelle am besten geeignet. Sie können den am besten geeigneten Algorithmus individuell auswählen, wenn Sie z. B. wissen, dass es sich um eine glatte oder diskrete Funktion handelt, oder Sie wählen den am besten geeigneten Algorithmus entsprechend der Anzahl der zu optimierenden Parameter des Problems.
In der Regel wird das Problem nicht so gestellt, dass es notwendig ist, lokale Extrema zu finden, denn bei den meisten praktischen Problemen ist die Anzahl der lokalen Extrema unbekannt (wäre dies nicht der Fall, wäre es einfacher, analytische Methoden zu verwenden), und die Anzahl der globalen Extrema ist bekannt - eins (wenn es mehrere globale Extrema mit demselben Wert gibt, ist dies gleichbedeutend mit der Tatsache, dass es eins ist). Deshalb wird das Problem in der Regel so gestellt, dass die Funktion so monoton wie möglich ist, ein Beispiel ist die Fehlerminimierung.
Ich kenne keine Algorithmen zur Lösung von Problemen der Suche nach Orten im allgemeinen Fall, und es ist selten zweckmäßig, für ein bestimmtes Problem spezielle Algorithmen zu schreiben. In solchen Fällen würde ich mir überlegen, wie man die FF darstellen könnte, um das Problem zu lösen. Es könnte verschiedene Ansätze geben, z. B. die Verwendung von AO als Zusatz zum Clustering. Eine andere Herangehensweise an das Problem besteht darin, die FF in hypothetische "Schichten" aufzuteilen, vom globalen Minimum bis zum globalen Maximum (das vorher gefunden werden muss), und dann jede Schicht nacheinander zu untersuchen, d.h. man muss einen Batch Task Manager für AO machen.
Kurz gesagt, ich muss Sie enttäuschen - es gibt keine Algorithmen für die Lösung von Problemen der Suche nach lokalen Extrema in allgemeiner Form. Es ist einfacher, die FF zu modifizieren, als einen speziellen Algorithmus zu entwickeln.
3. der Algorithmus zur Auswahl der aktiven Parameter für die aktuelle Iteration ist irrelevant, es ist erlaubt, die Bereiche und den Schritt der Optimierung zu ändern
1. Nun, AO kümmert sich nicht darum, wie viele und welche Parameter man ihm zur Optimierung vorlegt, man kann also alle Parameter an AO übergeben und nicht alle.
2. Sie können jeden Algorithmus einzeln, gemeinsam, sequentiell und kombiniert anwenden. Ich habe versucht, die Algorithmen in den Artikeln einheitlich zu gestalten.
3) Jeder der vorgestellten Algorithmen kann im Prinzip direkt während des Optimierungsprozesses angepasst werden. Man muss nur die Initialisierung korrigieren, damit die kumulierte Population nicht zurückgesetzt wird. Es ist z.B. möglich, den Schritt der optimierten Parameter proportional zu den durchlaufenen Epochen zu verringern (oder zu erhöhen).
Kurz gesagt, ich muss Sie enttäuschen - es gibt keine Algorithmen zur Lösung von Problemen der Suche nach lokalen Extrema in allgemeiner Form. Es ist einfacher, die FF zu ändern, als einen speziellen Algorithmus zu entwickeln.
Ich danke Ihnen. Lokale Extrema finde ich indirekt durch die erzwungene Unterbrechung der Optimierung, wenn eine große Anzahl von Kernen beteiligt ist. Grob gesagt, gibt es 20 Agenten im Tester, ich unterbreche die Optimierung nach 2000 Durchläufen.
Ich danke Ihnen. Ich finde lokale Probleme indirekt durch die erzwungene Unterbrechung der Optimierung, wenn eine große Anzahl von Kernen betroffen ist. Grob gesagt, gibt es 20 Agenten im Tester, ich unterbreche die Optimierung nach 2000 Durchläufen.
Nun, das ist absolut antiwissenschaftlich! ))))) Trotzdem schlau.
Ich dachte daran, dass es Algorithmen mit erhöhter "Verklumpung" gibt, wenn die Population dazu neigt, sich in Gruppen nach Orten aufzuteilen, wie IWO, COA, ABC, BFO, die Populationen dieser Algorithmen können auf Klumpen von Agenten analysiert werden (eine logische Sucheinheit in AO wird als Agent bezeichnet), indem man den euklidischen Abstand zwischen Agenten misst, d.h. nach Gruppen von Agenten mit minimalem Abstand zwischen ihnen sucht.
Man kann auch versuchen, in solchen Rollback-Algorithmen (wenn ein Agent von derselben Position aus wiederholt Suchversuche in verschiedene Richtungen unternimmt) wie COA und HS oder MA einen Zähler für die Versuche zu setzen, Scheiben von Populationszuständen über mehrere Iterationen zu erstellen und Agenten mit der größten Anzahl von Versuchen zu lokalen Extrema zu machen. MA und BFO verfügen von Haus aus über einen solchen Zähler.
D.h. ich habe gesagt, dass es keine exakten Möglichkeiten gibt, nach lokalen Extremen zu suchen (die Suche nach einem globalen kann in dieser Hinsicht als "exakt" betrachtet werden), aber man kann ungefähr so suchen, wie ich es oben beschrieben habe. Für eine exakte Lösung müssen Sie Diff-Informationen über FF kennen.
ZЫ. Eine interessante Frage an alle, die sich für dieses Thema interessieren: Was ist der Unterschied zwischen lokalen Extrema und globalen Extrema (ohne Berücksichtigung der Unterschiede in den FF-Werten)?
ZZY Nach der Beantwortung der ersten Frage verschwinden viele Fragen von selbst.
Leider bin ich inkompetent, daher bin ich an einer ungefähren, aber fertigen Lösung interessiert.
ZЫ. Eine interessante Frage für alle, die sich für dieses Thema interessieren: Was ist der Unterschied zwischen lokalen Extrema und globalen Extrema (ohne Berücksichtigung ihrer Unterschiede bei den FF-Werten)?
Wenn wir das Ergebnis der Optimierung als eine Menge von Pässen betrachten, dann werden Hinweise auf lokale Extrema sichtbar, nachdem wir den Raum der berechneten Pässe geclustert haben. Außerdem erreichen wir in jedem Cluster eine "enge" Optimierung.
Welches ist der beste Algorithmus zum Auffinden lokaler Extrema?
Grob gesagt, müssen wir eine Liste von Parametern erstellen, die am besten in lokale Extrema (Scheitelpunkte) fallen.
Zeigen Sie am Beispiel eines Igels die Koordinaten der Spitzen seiner Nadeln.
Leider bin ich überhaupt nicht kompetent, deshalb bin ich an einer ungefähren, aber fertigen Lösung interessiert.
Wenn wir das Ergebnis der Optimierung als eine Menge von Durchläufen betrachten, dann werden Hinweise auf lokale Durchläufe sichtbar, nachdem wir den Raum der eingegebenen Durchläufe geclustert haben. Außerdem erreichen wir in jedem Cluster eine "enge" Optimierung.

- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Neuer Artikel Algorithmen zur Optimierung mit Populationen: Saplings Sowing and Growing up (SSG) :
Der Algorithmus Saplings Sowing and Growing up (SSG, Setzen, Säen und Wachsen) wurde von einem der widerstandsfähigsten Organismen der Erde inspiriert, der unter den verschiedensten Bedingungen überleben kann.
Der Algorithmus ist einer der wenigen, die von den Autoren nicht klar beschrieben werden (es werden nur allgemeine Bestimmungen und Ideen geliefert). Auch die von den Autoren vorgestellten Algorithmus-Operatoren sind keine vorgefertigten Anweisungen für die algorithmische Implementierung des Programms. Es gibt keine klaren Anweisungen für Kinder- und Elternbäume und deren Interaktion. Es gibt keine Vorgaben für die Reihenfolge, in der die Operatoren ausgeführt werden, und jeder Nutzer kann seine Reihenfolge ändern, um einen besseren Setzling zu erhalten.
Im weitesten Sinne ist SSG kein Optimierungsalgorithmus, sondern ein allgemeiner Satz von Regeln, der andere Algorithmen ergänzen soll, um die Qualität der Optimierung zu verbessern. Mit anderen Worten: SSG ist ein Add-on für jeden evolutionären Populationsalgorithmus, sodass ich Raum für Phantasie und die Möglichkeit habe, mit einer spezifischen Implementierung des Optimierungsalgorithmus zu experimentieren. Ich habe einige meiner eigenen Gedanken und Erfahrungen beim Schreiben früherer Algorithmen angewandt und sie bei der Arbeit mit SSG eingesetzt. Die Ergebnisse der Versuche werden im Folgenden zur Beurteilung durch den Leser dargestellt.
Um den Algorithmus zu verstehen, müssen wir uns einen Baum als einen Optimierungsagenten vorstellen. Ein Baum ist eine Lösung für ein Optimierungsproblem, wobei jeder Zweig ein optimierter Parameter des Problems ist. Eine abstrakte und künstlerische Darstellung von Kind- und Elternbäumen ist in Abbildung 1 zu sehen. Der Baumstamm ist eine Reihe von zu optimierenden Parametern. Jeder Zweig ist ein separater optimierter Parameter, wobei die Länge des Zweigs durch den zulässigen Wertebereich des entsprechenden Parameters begrenzt ist. Die Richtung der Zweige spielt keine Rolle und wird in der Abbildung nur gezeigt, um ihren Unterschied zu verdeutlichen.
Autor: Andrey Dik