AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Genetisches Programm [neue Version]
Thema durchsuchen
Ansicht
Themen-Optionen

Genetisches Programm [neue Version]

Ein Thema von CK_CK · begonnen am 24. Aug 2006 · letzter Beitrag vom 25. Aug 2006
 
Benutzerbild von CK_CK
CK_CK

Registriert seit: 30. Aug 2005
Ort: Dortmund, Germany
388 Beiträge
 
Delphi 2006 Enterprise
 
#1

Genetisches Programm [neue Version]

  Alt 24. Aug 2006, 19:27
Ich möchte hier mal meinen ersten Versuch vorstellen, genetisch zu programmieren...

Das Programm funktioniert folgendermaßen:
Es soll der Weg von einem zum anderen Punkt gefunden werden.
Dazu wird eine Population erzeugt, von der jede Einheit eine vorgeschriebene Anzahl von Anweisungen bekommt (Buchstaben, die die Richtung beschreiben).
Diese Befehle sind z.B. folgendermaßen aufgebaut: "UDRRRRRLRUDLRDDDR" ("U" bedeutet 10 Pixel hoch [Up], "R" bedeutet 10 Pixel rechts [Right], usw.)
Wenn alle Einheiten ihren Weg hinter sich gebracht haben, wird geprüft, wie nah sie an das Ziel gekommen sind und bekommen dafür eine Bewertung.
Umso besser die Bewertung ist, desto öfter darf sich die betreffende Einheit fortpflanzen.
Die Fortpflanzung läuft folgendermaßen ab: Es wird jeder Befehl per Zufall entweder von Einheit 1, Einheit 2 oder einem Zufallswert genommen (um neue "Gene" zu bekommen).
Jede Einheit der neuen Population arbeitet jetzt ihre "mutierte" Befehlsreihe ab und wird wieder bewertet...
Einheiten, die das Bild am Ende des Weges verlassen haben werden mit neuen Zufallswerten erzeugt, sodass neue "Gene" in die Population kommen...

Das Programm zeichnet immer den Weg für jede Einheit an, außerdem kann man noch die meisten Faktoren ändern...

Ich hoffe, ich konnte die Funktionsweise gut beschreiben...
Viel Spaß beim zerpflücken des Codes und testen des Programms (wenn's jemand interessant findet...)

Schönen Abend noch,
Chris

[EDIT: NEUE VERSION]
Wenn eine Einheit das Ziel gefunden hat wird sie höher bewertet und muss auch nicht "weiterlaufen".
Die Einheiten werden jetzt auch nach ihrem Weg bewertet. Das funktioniert folgendermaßen:
Umso näher am Ziel, desto mehr Punkte; umso weniger Schritte, desto mehr Punkte.
Eine Einheit erhält z.B. 50 Punkte für's erreichen des Ziels und 25 Punkte, weil Sie 25 Schritte weniger als maximal zulässig benötigte. Sie erhält also 75 Punkte.

Dadurch habe ich es erreicht, dass jetzt idealere Wege gefunden werden (ich habe also den "Intelligenzquotienten" erhöht...). Das Ziel wird jetzt immer gefunden, der "ideale" Weg theoretisch auch (dauert nur ein wenig länger )

Außerdem kann man jetzt Pausieren und wieder Starten, ohne die Population zu löschen...
Miniaturansicht angehängter Grafiken
screen_180.png  
Angehängte Dateien
Dateityp: zip source_812.zip (5,4 KB, 56x aufgerufen)
Dateityp: zip binary_193.zip (240,1 KB, 163x aufgerufen)
Chris
» «
Mehr von mir (Programme, etc.): http://www.kroegerama.de
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:19 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz