OK, ich glaube, momentan kann ich hier ein bißchen weiterschreiben, ohne Gefahr zu laufen, daß der Thread geschlossen wird.

xander1 hat geschrieben:smalonius hat geschrieben:Ich hab mir letztes Jahr einen kleinen Simulator gebaut, der mit einem genetischen Algorithmus das Gefangenendilemma löst. Davon habe ich in meinem Axelrod-Thread nichts erwähnt, weil es nichts zum Thema beigetragen hätte.
Mich interessiert dieses Thema sehr. Ich hätte gerne dieses Programm.
Ich könnte natürlich eine PM schicken und nachfragen, aber vielleicht finden andere das auch interessant.
Mich würden Ausführungen dazu interessieren, was das alles zu bedeuten hat.
Programm kommt gleich nach.
Erstmal sollte ich noch was zu evolutionären Algorithmen sagen, das kam weiter oben viel zu kurz.
Evolutionäre Algorithmen- Als Vorraussetzung braucht man ein Problem, dessen mögliche Lösungen sich gut binär darstellen lassen. Außerdem braucht man eine Bewertungsfunktion, die sagt, welche Lösung besser ist.
- Dann kann man diese Lösungen als 0100100 oder AXCVULK hinschreiben, das stellt das Genom dar, wobei jede Stelle eine bestimmte Eigenschaft oder einen Wert der Lösung codiert.
- Um den Algorithmus zu starten beginnt man mit einer Anfangspopulation (bestehend aus sogenannten "Agenten") mit zufälligem Genom.
- Man bewertet jeden Agenten anhand der Bewertungsfunktion.
- Die Agenten, die besser abgeschnitten haben, dürfen sich "fortpflanzen". Das heißt man nimmt ihr Genom und variiert es leicht und per Zufall.
- Die neuen Agenten fügt man der Population hinzu.
- Dann beginnt das Ganze von vorne. Wieder bewertet man die Population, wieder vermehrt man mit leichter Abwandlung.
- Wenn man das einige Generationen lang wiederholt, erhält man mit etwas Glück eine sehr gute näherungsweise Lösung für das Ausgangsproblem.
Steiner network design challengeEin praktisches Beispiel: Dave Thomas hat in seinem Blog zu einem Wettbewerb eingeladen. Aufgabe war es, das beste Steiner-Netz für diese sechs Punkte zu finden.
steiner_challenge.gif
Was ist ein Steiner-Baum? Grob gesagt, die kürzeste Strecke, die alle vorgegebenen Punkte verbindet. Knoten müssen nicht auf den gegebenen Punkten liegen. So ungefähr sieht ein Steiner-Netz für vier Punkte aus:
steiner_what.gif
Lösung im nächsten Post, um Spoiler zu vermeiden, falls jemand selbst darüber nachdenken möchte.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.