Samstag, 20. April 2024, 00:30 UTC+2

Sie sind nicht angemeldet.

  • Anmelden
  • Registrieren

Hans-Jürgen Männlich

Administrator

Registrierungsdatum: 10. Juli 2002

Beiträge: 1 712

1

Sonntag, 27. Mai 2007, 21:37

Idee für einfache Dual- bzw. Quadcore Nutzung beim GA

Nach den Umstellung aus der anderen Datenbank für User "sten" ins Board kopiert.


Zitat

Hallo,

angenommen ich habe ein HS mit 10 Optimierungsvariablen (OV) und lasse darauf den GA laufen, dann weis ich danach nicht, ob der GA wirklich die beste Konfiguration gefunden hat oder nicht.

Wie kann man die Chance auf das Finden einer bestmögliche OV-Einstellung erhöhen?
1.) man wiederholt mehrmals die GA Suche
2.) wenn man mehrere PC's/Dongels zur Verfügung hat, kann man das HS auf mehrere PC's kopieren und gleichzeitig auf mehreren PC's den GA starten. Es ist erstaunlich wie jeder PC trotz absolut identischer Einstellungen seinen eigenen Zufallsweg geht und völlig verschiedene Ergebnisse produziert werden.

Vorteil für den Inv-User:
Wäre es nicht schön wenn man den Weg (2) gehen könnte, aber ohne die ganze Kopiererei?
Das könnte man realisieren, indem Investox nachschaut wieviele Core's stehen zur Verfügung (2, 4, 8, 16, ...) und dann wird auf allen Core's ein völlig identischer GA-Suchlauf gestartet, einfach durch den Klick auf den GA-Startbutton.
Statt einer Optimierungshistory (OH) von z.B. 1 bis 50 hat man dann bei 4 Kernen eben 4 OH mit je 1 bis 50 Einträgen, die man auf die konventionelle Weise durchsuchen und mit den besten Einstellen weiter arbeiten kann.

Vorteil für den Programmierer:
- das größte Problem bei der parallen Programmierung ist es erstmal einen konventionelle Berechnungsablauf zu parallelisieren, d.h. den kompletten Algorithmus in Sub-Funktionen zu unterteilen, der jede für sich unabhängig rechnen kann (also kein Warte auf die Daten eines anderen Prozesses/Core) und wo in der Summe die Schnittstellen klein bleiben. So das am Ende der Geschwindigkeitsvorteil der durch die Parallelisierung erreicht wird, nicht durch den Overhead der Kommunikation bzw. der Steuerung der verteilten Prozesse wieder verloren geht.
--> wenn man den GA so wie hier vorgeschlagen auf mehrere Prozessoren verteilt ist es praktisch der ideale Algorithmus der zu 100% parallelisierbar ist. Jeder Core bekommt die gleichen Daten/Parameter und Einstellwerte, jeder GA kann dann seine Berechung völlig autonom auf seinem Core abarbeiteten und am Ende der Berechnung werden die Daten zum Hauptprogramm zurück gegeben.
Investox --> Daten zu Core1 --> GA läuft auf Core1 ab --> GA-History an Inv. zurückgeben
...........--> Daten zu Core2 --> GA läuft auf Core2 ab --> GA-History an Inv. zurückgeben
...........--> Daten zu Core3 --> GA läuft auf Core3 ab --> GA-History an Inv. zurückgeben
usw.
- die ganzen Algorithmen (GA) sind schon in Investox programmiert und können auch bei der Mehrcore-Berechnung ohne größere Änderungen genutzt werden. "Lediglich" die Schnittstelle und die Zusammenstellung der InputDaten und die Rücknahme der OH muß neu implementiert werden.

Scheint auf dem ersten Blick gar nicht so kompliziert zu sein.

Vielleicht läst sich die Idee später bei Inv. V5 oder V6 mal mit einbauen.

Viele Grüße
Torsten
Viele Grüße,
Hans-Jürgen

Registrierungsdatum: 30. August 2002

Beiträge: 8 155

Wohnort: Trade-Planet

2

Sonntag, 27. Mai 2007, 22:09

@Torsten

>>>man wiederholt mehrmals die GA Suche

Das funktioniert so nicht! GA haben Pseudo Einstiegsprozesse und keinerlei generalisierende Eigenschaften mittels Verschiebung von Gewichten!Das heisst der Start wird zufällig gewählt, und darauf bauen die die Mutationen auf. Erzielen kann man Optimum nur mit pyramidisierenden Verfahren was auch ein Optimum Risk an Curve Fitting bedeutet!
Happy Trading

sten

Experte

Registrierungsdatum: 6. September 2002

Beiträge: 2 879

3

Montag, 28. Mai 2007, 08:54

Hallo Udo,

Zitat

Das funktioniert so nicht!

Was ich da vorgeschlagen habe ist nichts anderes, als das was es schon in Investox gibt. Ich habe mir kein neues Optimierungsverfahren ausgedacht, sondern lediglich vorgeschlagen, wie man mit Hilfe von modernen Mehrkernprozessoren in der gleichen Zeit n-fache GA-Suchläufe durchführen kann.

Mehr ist es eigentlich nicht.

Viele Grüße
Torsten

Registrierungsdatum: 30. August 2002

Beiträge: 8 155

Wohnort: Trade-Planet

4

Montag, 28. Mai 2007, 11:32

Hallo Torsten,

das ist schon ok! Allerdings hast Du folgende These aufgestellt:

Zitat

Wie kann man die Chance auf das Finden einer bestmögliche OV-Einstellung erhöhen?
1.) man wiederholt mehrmals die GA Suche
2.) wenn man mehrere PC's/Dongels zur Verfügung hat, kann man das HS auf mehrere PC's kopieren und gleichzeitig auf mehreren PC's den GA starten. Es ist erstaunlich wie jeder PC trotz absolut identischer Einstellungen seinen eigenen Zufallsweg geht und völlig verschiedene Ergebnisse produziert werden.


Das wollte ich mit dem Beitrag ansprechen-nicht den Vorschlag das Investox Dual/Quad-Core fähig wird, denn das wäre auch aus meiner Sicht sehr wünschenswert!
Happy Trading