Der genetische Algorithmus und seine Anwendungsmöglichkeiten - Seite 3

 
Igor Makanu:

Es ist geeignet, im Modus der genetischen Optimierung durch "Maximum des Benutzerkriteriums" wird GA des Testers das Ergebnis maximieren, das aus dem doppelten OnTester() erhalten wurde - alles funktioniert, aber es gibt ein Problem in der Automatisierung "GA aufzumuntern", wenn es anfängt, um das gefundene lokale Maximum zu konvergieren und nicht andere Varianten nach Eingabeparametern suchen will, im Allgemeinen muss GA bei der Feinabstimmung helfen, indem es Bedingungen zu OnTester() hinzufügt oder indem es die Optimierungsparameter in mehrere Intervalle aufteilt

Übrigens, wie kann man das umsetzen? Ich habe auch darüber nachgedacht, es auf diese Weise zu tun.

Tag Konow:
Sie meinen "smart" - optimiert und angepasst an eine bestimmte Umgebung?

Nun, ja, die Auswahl erfolgt immer nach einem bestimmten Kriterium. Das Kriterium selbst kann sich übrigens im Laufe der Generationen ändern, wenn dies erforderlich ist.

 
Реter Konow:
Sie meinen "intelligent" - optimiert und angepasst an eine bestimmte Umgebung?

GUT. Schaffen Sie eine geschlossene Umgebung, die aus einem Komplex von interagierenden Systemen besteht. Ein Beispiel: Individuen mit drei Genen "verschlingen" (heften sich an und wachsen) Individuen mit zwei Genen, wenn sie ihnen nicht "entkommen" können (nehmen wir an, die Gene X und Y sind Koordinaten auf der Ebene). Das Drei-Gen-Individuum hat ein zusätzliches Gen Z - die dritte Dimension. Sie hat einen Vorteil. Die Aufgabe des Individuums mit zwei Genen ist es, zu überleben und nicht erwischt zu werden, und die Aufgabe des Individuums mit drei Genen ist es, das Individuum mit zwei Genen so schnell wie möglich zu erwischen und Zeit und Ressourcen zu sparen.

Das Ziel: Das genetisch schwächere Individuum muss das genetisch stärkere berechnen, um zu überleben.
Wir wissen, dass ein Drei-Generationen-Mensch einen Zwei-Generationen-Menschen im Flugzeug "sieht", so wie ein Vogel eine Maus auf dem Feld sieht, und dass ein Zwei-Generationen-Mensch alles in zwei Dimensionen wahrnimmt und daher den herannahenden Feind bis zum letzten Moment nicht bemerkt. In einer großen Gruppe gibt es jedoch viele bi-genetische Individuen, und jedes hält die Ereignisse des Verschlingens seiner Stammesangehörigen fest - wo und wann sie gefangen genommen wurden. So können die Digens verallgemeinerte "Wahrnehmungen" bilden - Erfahrungen und Wissen aus allen Generationen darüber, welche natürlichen Hindernisse im dreidimensionalen Raum ihre Feinde haben und wie sie sich am besten anpassen, um zu überleben.
 
Aleksey Mavrin:

Übrigens, wie setzen Sie das um? Ich habe auch darüber nachgedacht, es auf diese Weise zu tun.

es ist die übliche Arbeit mit dem Tester - zuerst stellt man alle Parameter für die Optimierung ein, dann testet man bis zu dem Moment, wenn der Tester beginnt, bei jedem Durchgang horizontale Linien zu zeichnen - dies ist ein Zeichen dafür, dass GA um ein lokales Maximum konvergiert hat, dann sieht man in der Optimierungs-Registerkarte, welche Parameter GA nicht mehr verändert hat, und dann läuft die nächste Optimierung, wobei diese Parameter (die GA nicht verändert) in anderen Intervallen gebrochen werden, obwohl es oft genug ist, den Tester neu zu starten, indem man die Optimierungs-Caches entfernt (speichert) - GA wird zufällig initialisiert.

 
Igor Makanu:

es ist die übliche Arbeit mit dem Tester - zuerst setzen Sie alle Parameter für die Optimierung, dann haben Sie bis zu dem Moment getestet, wenn der Tester beginnt, horizontale Linien auf jedem Durchgang zu zeichnen - es ist ein Zeichen, dass GA um ein lokales Maximum konvergiert hat, dann sehen Sie in der Registerkarte Optimierung, welche Parameter GA aufgehört hat, zu ändern und dann nächste Optimierung läuft, brechen Sie diese Parameter (die GA nicht ändern) auf andere Intervalle, obwohl es oft genug, um den Tester neu zu starten Entfernen (Speichern) Optimierung Caches - GA initialisiert

Ich denke, GA sollte zu einem allgemeinen Maximum konvergieren (nicht lokal), wenn der Schritt der Parameteränderungen klein genug ist. Wenn die Schrittweite zu groß ist, hilft die Änderung des Intervalls nicht, da die Maxima zwischen benachbarte Werte rutschen können.

Dann ist es einfacher, eine vollständige Aufzählung mit der niedrigsten Stufe durchzuführen und dann GA, um die schlechtesten Bereiche auszusortieren.

 
Aleksey Mavrin:

Dann ist es einfacher, mit der niedrigsten Tonhöhe voll über das Ziel hinauszuschießen und dann GA zu machen, um die schlechtesten Bereiche zu eliminieren.

nicht einfacher, hier ist mein EA optimiert:


ein Durchgang von einem einzigen Test dieser EA für 1,5 Jahre dauert 1,5-2 Sekunden, in der Optimierer etwa die gleiche Geschwindigkeit, können Sie schätzen, wie viel wird eine vollständige Suche zu nehmen, und GA innerhalb von 20-50 Minuten habe ich bereits Ergebnisse, die mich befriedigen gefunden

 
Igor Makanu:

nicht einfacher, hier wird mein EA optimiert:


ein Durchlauf eines einzelnen Tests dieses EA in 1,5 Jahren dauert 1,5-2 Sekunden, der Optimierer hat ungefähr die gleiche Geschwindigkeit, Sie können abschätzen, wie lange es dauert, einen vollständigen Durchlauf zu machen, und GA innerhalb von 20-50 Minuten habe ich bereits Ergebnisse gefunden, die mich zufrieden stellen

Wenn die Anzahl der Durchläufe wissenschaftlich angezeigt wird, ist es die Genetik Ziffer Überlauf, und es funktioniert überhaupt nicht (wenn überhaupt). Ich musste es tun:

1. Reduzieren Sie die Anzahl der Schritte. Damit die Schrittzählung nicht zu grob ist und den gewünschten Bereich abdeckt, habe ich die Schrittzählung nichtlinear gemacht. Ändern der Parameter 0.001-0.099, 0.01-0.99, 0.1-9.9, ... D.h. Schritt mit einer Genauigkeit von etwa 1%.

2. Reduzieren Sie die Anzahl der zu optimierenden Variablen, und das ist das Wichtigste.

2а. Teilen Sie die Variablen in Gruppen auf, die nahezu unabhängig sind, und optimieren Sie sie getrennt.

2б. Finden Sie Variablen, die von einer anderen abhängen, und verknüpfen Sie sie. Auf diese Weise habe ich nach langem Hin und Her ein paar Variablen entfernt.

2в. Finden Sie Variablen, die auf Kosten einer geringfügigen Verringerung der Rentabilität zu Konstanten gemacht werden können. Auch gefunden.

3. und schränken die Auswahl der Variablen nach vielen Bewertungen ein.

Solange ich solche Opfer nicht gebracht habe, war meine Optimierung nicht wirksam. Hier geht es um die Optimierung mit zu vielen Variablen. Das ist an sich falsch, aber einige Experten entwickeln sich eher zur Vereinfachung als zur Verkomplizierung.

 
Igor Makanu:

nicht einfacher, hier wird mein EA optimiert:


ein Durchlauf eines einzigen Tests dieser EA in 1,5 Jahren dauert 1,5-2 Sekunden, in der Optimierer etwa die gleiche Geschwindigkeit, können Sie schätzen, wie lange es dauert eine vollständige Aufzählung, und GA innerhalb von 20-50 Minuten finde ich bereits Ergebnisse, die mich zufrieden stellen

Dies ist eine Frage der Systemkomplexität. Ich habe dies im GU-Thread erörtert. Ich brauche 3-5 Schritte für eine vollständige Aufzählung. Sie haben 18 Parameter auf dem Screenshot, wäre es (3-5)^18 = 400M bis 3,8 Billionen, bereits auf Schade, obwohl ist eine Menge, und vor allem Paare ist es eine Menge, ich tun volle Suche nicht auf alle, und nachdem einige festgelegt, und in Gruppen, die dann bereits zusammen auf GA bestimmt - Verengung GM.

und stimme der ausführlicheren Erklärung vollständig zu

Edgar Achmadeev:

Wenn die Anzahl der Durchgänge wissenschaftlich dargestellt wird, ist die Digitalisierung der Genetik überfordert, und sie funktioniert überhaupt nicht (wenn sie überhaupt funktioniert). Ich musste es tun:

1. Reduzieren Sie die Anzahl der Schritte. Damit die Schrittzählung nicht zu grob ist und den gewünschten Bereich abdeckt, habe ich die Schrittzählung nichtlinear gemacht. Ändern der Parameter 0.001-0.099, 0.01-0.99, 0.1-9.9, ... D.h. Schritt mit einer Genauigkeit von etwa 1%.

2. Reduzieren Sie die Anzahl der zu optimierenden Variablen, und das ist das Wichtigste.

2а. Teilen Sie die Variablen in Gruppen auf, die nahezu unabhängig sind, und optimieren Sie sie getrennt.

2б. Finden Sie Variablen, die von einer anderen abhängen, und verknüpfen Sie sie. Auf diese Weise habe ich nach langem Hin und Her ein paar Variablen entfernt.

2в. Finden Sie Variablen, die auf Kosten einer geringfügigen Verringerung der Rentabilität zu Konstanten gemacht werden können. Auch gefunden.

3. und schränken die Auswahl der Variablen nach vielen Bewertungen ein.

Bevor ich nicht solche Opfer gebracht habe, war meine Optimierung nicht wirksam. Hier geht es um die Optimierung mit zu vielen Variablen. Das ist an sich falsch, aber einige Experten entwickeln sich eher zur Vereinfachung als zur Verkomplizierung.

Jeder hat seine eigenen Methoden, die im Grunde genommen wohl jeder versteht.
 
Edgar Akhmadeev:

Wenn die Anzahl der Durchläufe wissenschaftlich angezeigt wird, ist es die Digitalisierung der Genetik, die überläuft und völlig falsch funktioniert (wenn sie überhaupt funktioniert).


Was meinen Sie mit "funktioniert völlig falsch"?

Wie lässt sich die Fehlerhaftigkeit des Werkes nachvollziehen?

 
Edgar Akhmadeev:

Wenn die Anzahl der Durchläufe in wissenschaftlicher Form angezeigt wird, läuft die Genetikziffer über und es funktioniert überhaupt nicht (wenn überhaupt).

bei mir funktioniert GA eindeutig, ich schreibe in die EA-Einstellungsdatei der erfolgreichen Durchläufe, ich erstelle den Dateinamen aus dem MD5-Hash der eingegebenen Optimierungsparameter selbst, d.h. während der Optimierung sehe ich die Dateien im Ordner Common erscheinen

Ich habe bisher nur ein Problem - nach einiger Zeit kann GA beginnen, um eine kleine Gruppe von Optimierungsparametern zu konvergieren - ich denke, das ist normal, alle GAs arbeiten auf diese Weise und es ist ein Problem ihrer Verwendung

Aber GA funktioniert eindeutig und hängt nicht - ich sehe es an den hinzugefügten Dateien und eindeutigen Namen

 
Slava:

Was meinen Sie mit "es funktioniert überhaupt nicht richtig"?

Wie kann ich die Störung reproduzieren?

Ich habe schon vor langer Zeit darüber geschrieben, als ich noch Frames in EA verwendete. Ich erinnere mich nicht mehr an den genauen Zeitpunkt, aber ich glaube, ich habe angefangen, nicht mehr alle Bilder zu machen (mit besseren Ergebnissen). Ich werde nach alten Beiträgen suchen und versuchen, das zu klären.

Aber ich erinnere mich genau, dass es in meinem Expert Advisor eindeutig reproduzierbar war - sobald die Anzahl der Überschreitungen eine bestimmte Anzahl überstieg und in der wissenschaftlichen Form angezeigt wurde, brach meine Genetik zusammen. Wichtig war nicht nur eine große Anzahl von Schritten einer Variablen, sondern auch eine große Anzahl von Variablen.