![]() |
Re: [Artikel] Simulierte Evolution
Hm das Buch selber kenne ich nicht, weis aber von einer ähnlichen Gechichte. Zu DOS Zeiten gab es ein lustiges Kriegsspiel. In einer simulierten Welt aus Speicherzellen und einem vorgefertigten Set von Maschinenbefehlen war es die Aufgabe der Spieler=Programmierer möglichst effiziente Progrämchens zu coden die diesen Speicher auf eine Weise beackerten das sie sich 1.) vorpflanzten oder bewegten und 2.) Gegnerische Progrämchens dabei vernichteten. Der Programmierer dessen Program als letztes übrig blieb hatte gewonnen.
Zurück zum Thema, bei den EP/GPs sehe ich das große Problem darin 1.) eine Selektierungsfunktion zu definieren, immerhin evolutionieren die EP/GP so wie ich es verstanden haben ohne Aufsicht aus sich selbst heraus. Also ohne konkrete Zielsetzungen. 2.) die Geschwindigkeit/Dauer dieser Evolution und die Größe der notwenigen Population von solchen Programmen. 3.) die Kodierung und Syntax sollte sehr universell sein damit auch ungeahnte Programme rauskommen Das sind Probleme die enormen Rechenpower benötigen werden. Denn wenn man wirklich kreative Programme erzeugen möchte, Programme wie die die wir jeden Tag erzeugen, dann benötigten wir um Magnituden mehr Speicher und Prozessorpower als das was wir heute haben. Das Buch was ich damals zur Hand hatte heist: "Genetische Algorithmen und Evolutionsstrategieen" Eberhard Schöneberg, Frank Heinzmann, Sven Feddersen 1. Auflage 1994 im Addison-Wesley Verlag ISBN 3-89319-493-2 481 Seiten stark enthielt eine 5 Zoll Diskette mit C Sourcen und Programmen Auf Seite 333 zb. "Auotmatische Erzeugung von Programmen in LSIP". Sehr zu empfehlen da von den Grundlagen bis zu konkreten Anwendungen alles sehr verständlich beschrieben wird und nicht mit praktischen Beispielen, Diagrammen und Grafiken gegeizt wurde. Nur die DOS Software dürfte heutzutage wohl unmodern geworden sein. Gruß Hagen |
Re: [Artikel] Simulierte Evolution
@Danke hagen, für Deine Antwort, interessant, aber das war es nicht. Ich weiss, dass die Programme
über Rechner am Schluss die gesamte Rechenzeit übernahmen. Ich glaube, da war auch jedem Programm eine maximale Rechenzeit zugewiesen gewesen. Trotzdem kam es zum GAU. Ein wenig habe ich michmit GA damit beschäftigt, ich habe meine Programme so aufgebaut: a) Lernmodus b) Aktionsmodus Es gibt einen Pool mit Funtionen/Proceduren (siehe unten) Einen Bewerter/Selector Einen Populationspool/Programmepool a) Im Lernmodus werden Ergebnisse gesucht/optimiert. 1. Functionen/Proceduren Pool, die von den Populationen/Programmen aufgerufen werden können. Dabei: Die Überparameter werden in einem bestimmen Bereich akzeptiert. Übersteigt/unterschreitet ein Übergabeparameter den Wertebereich, wird auf dem höchsten/niedigsten erlaubten Wert gesetzt. Und: die Programme rufen per Zufall die Proceduren/Funktionen (d. h. mindestens eine Procedure/Function bis alle) mit zufälligen Werten auf. Damit kristalisiert sich raus, ob eine Procedur/Funktion im Pool überhaupt Sinn macht. z. B. gleitender Durchschnitt auf Aktienkurse als alleiniges Kauf-/Verkaufskriterium einer Aktie ist sinnlos und bringt je nach Aktie unterdurchschnittliche Renditen) 2. Bewerter/Selection Der Bewerter will entweder a) das Maximum eines Wertes. z.b. Hohe Rendite b) das Minimum eines Wertes. z. B. Niedrigen Ölverbrauch c) Ergebnis/Variable in der Nähe eine bestimmten Wertes/Zustandes Danach richtet sich, welche Populationen/Programme letztendlich 'überleben'. Diese Populationen speichern Ihre zufällig erzeugten Übergabeparameter und dürfen solange leben bis eine Population dem Bewerter bessere Ergebisse bringt. Sonderfälle: Es gibt Sonderfälle, die bei bestimmten Situationen ausgelöst werden müssen und auf Populationen aktiv werden, die nur in der Situation aktiv werden. z. B. Notfälle/Extremwerte Diese dürfen nicht sterben, bzw. deren Werte dürfen nicht verändert werden. 3. Populationen/Programme Dürfen solange leben, bis eine Population/Programm bessere Ergebnise bringt. Bei mir dürften 10 Programme/Populationen Ihre Ergebnisse liefern. b) Aktionsmodus Dabei rufen die besten 10 Populationen die erlaubten Functionen/Proceduren aus dem Pool mit den optimierten (zuvor gespeicherten) Parametern auf und der Bewerter liefert die Ergebnisse. Generell: Ungeahnte Ergebnisse sind dabei nicht erwünscht. Die Populationsgröße ist auf 100 begrenzt, die Durchläufe, um Optimierungen zu finden ist, je nach Anzahl der zu optimierenden Variablen Parameter auf 10 Mio. beläuft, wobei man sich anzeigen kann, wie schnell das Optimum gefunden wird, und entsprechend den Wert runtersetzt. Ist eine Population besser als die im 100er Pool, wird dieser eingetragen, dabei 'stirbt' der Letzte. Dabei können auch Programme, die weniger Code/Zeit oder Proceduren aus dem Pool benötigen, bevorzugt werden, wenn gleiche Ergebnisse vorliegen. So mache ich es vorerst. Beste Grüße G02EITS |
Re: [Artikel] Simulierte Evolution
Offtopic:
Zitat:
![]() Greetz Boombuler PS: sollte wer daran intresse haben ich hab noch n interpreter für Redcode... |
Re: [Artikel] Simulierte Evolution
Doch das scheint es zu sein, allerdings hätte ich gedacht das das Teil schon längst tot und vergessen ist.
Ich meine aber das es früher nicht "CoreWar" hieß. Gruß Hagen |
Re: [Artikel] Simulierte Evolution
Mal grad etwas off-Topic: Ich hab mir mal den Link zu Wiki angeguckt zum Thema Corewars. Und ich bin fasziniert!
Ich bin grade ein paar Tutorials am durchlesen und glaube es zu verstehen. Aber gibt es vielleicht irgendwo ein deutsches Corewar Forum? Weil ich würde gerne wissen ob ich eins wirklich verstehe oder ob ich das falsch verstehe... Oder meint ihr ich kann sowas auch hier fragen? Ist ja im Prinzip Assembler.. ?! Gruß Neutral General |
Re: [Artikel] Simulierte Evolution
Das Ding ist schon über 20 Jahre alt, ich hatte es vor mehr als 15 Jahren getestet ! Ich glaube also kaum das es heut noch Foren dafür gibt, aber sag niemals nie. Der Eintrag im Wiki ist schon erstaunlich genug.
Gruß Hagen |
Re: [Artikel] Simulierte Evolution
BTW: Man könnte ja mal n DP internes Tunier für CoreWar anstreben ;)
|
Re: [Artikel] Simulierte Evolution
Fände ich gut :)
Btw: *Schleichwerbung mach* Hab mal en CoreWar Forum gemacht weil ich selbst Anfänger bin und sowas gebraucht hätte und da ist auch Platz für Kämpfe etc.. ![]() Passwort zugeschickt bekommt... aber das bin ich grad am lösen... |
Re: [Artikel] Simulierte Evolution
Ich habe mal für Euch etwas Leichteres als CoreWars gesucht, nämlich Pascal Robots!
Die lassen sich leicht programmieren, wenn ich richtig sehe unter Turbo Pascal und Dos. Ein Win Robots gibt es wohl noch nicht. Eine Portierung nach Delphi wäre mal eine Herausforderung für Euch. Evtl. ist es ein Thema für eine Gemeinschaftsarbeit. Hier der InfoLink dazu. Es ist leider kein Download möglich, die Seite wird nicht mehr gepflegt. Es müsste aber irgendwo eine Pascalversion geben. Vielleicht findet jemand etwas dazu und gibt uns einen Link dazu. ![]() Ihr findet bestimmt noch etwas... Meine Ergänzung zum Thema Programmierspiele: PcRobots ![]() ![]() Ganz viele Links mit sehr interessanten Inhalten: ![]() Vielleicht findet ja jemand die jüngsten Sourcen zu Pascal Robots. Viel Vergnügen! Go2EITS :) |
Re: [Artikel] Simulierte Evolution
Liste der Anhänge anzeigen (Anzahl: 1)
Du hasst die die URLs nicht angeschaut. Die sind alle gleich, bis auf den Downloadlink, da hättest du aus "zeus" "www" machen müssen. Allerdings läuft die Version nicht unter Win.
Trotzdem mal als Anhang dabei, da kaum jemand ARJ-Dateien öffnen kann. :mrgreen: Ich versuch es dann mal zu übersetzen. [edit]WinProblem herausgefunden: PRobots unterstütz nur Rechner mit bis 200 MHz[/edit] |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:19 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz