PPS Projekt:Bauklötzchen für Profis
Frage:
• Wie weit kann man mit n Bauklötzen über eine Tischkante hinausbauen?
• Modell:– 2 dimensionale Türme– Alles gleiche Klötze– Klötze liegen flach– Kein Klebstoff!
1. Versuch
Schon besser
Es geht noch mehr
100 Klötze
Überhang = 3.7
Quelle: Mike Paterson / Uri Zwick, Overhang, 2006
Problemstellung
Ziel: Baue Türme mit n Klötzchen und maximiere den Überhang
Schwierigkeiten:• Sehr viele Möglichkeiten• Türme müssen stabil sein• keine Konstruktionsvorschrift für optimale Türme
>>> Ein Computerprogramm sucht Türme mit grossem Überhang
Optimierungsmethode
Idee: Lösung mit EvolutionäremAlgorithmus
• Vorbild: Natur• Zyklischer Prozess• Grosse Anzahl Lösungen• Anpassung & Verbesserung laufen
parallel ab
Programmablauf
Rekombination
Idee: Gute Eigenschaften von zweiTürmen kombinieren
• Oberer Teil Turm 1 auf unteren Teil Turm 2
Rekombination
Mutation
Idee: Eigenschaften verbessern ohneTurm völlig zu verändern
• Mutationsweite mit Gauss-Verteilung
• Art 1: Einzelnen Klotz verschieben• Art 2: Klotz und alle darauf
liegenden Klötze verschieben.
Selektion
• Fitness berechnen– Stabilität (Checker) * Überhang
• Wer überlebt? (Turnier-Modus)– Auswahl von mehreren Türmen– Bester gewinnt & kommt weiter
• Wer pflanzt sich fort?– Lineare Wahrscheinlichkeit nach Rang
Wann ist ein Turm stabil?
• Schwerpunkt auf dem Tisch
• Alle Klötzchen müssen in Ruhe sein
Freischneiden
• Klötzchen auseinander nehmen
• Gewichtskraft einfügen
• Kräfte zwischen den Klötzchen einführen
• Kraft von der Unterlage
0 1
98
98
7 6
67
2 3 5 4
5 42 3
G
G
G G
Gleichgewichtsbedingungen
• Resultierende in y–Richtung• Drehmoment• Mehr Unbekannte als Gleichungen
0 1 2 3 4 5
0 1 2 3 4 5
2 3 6 7
2 3 6 7
( 1)* (0)* (1)* (0)* ( 1)* (0)* 0
(0)* (1)* ( 1)* (0.5)* 0
F F F F F F G
F F F F F F
F F F F G
F F F F
Stabil oder instabil
• Zu wenig Gleichungen für eine explizite Lösung
• Existiert eine beliebige Lösung mit nicht negativen Kräften?
• Lösung existiert >> Turm ist stabil
• Lösung existiert nicht >> instabil
Realisierung
EA
C++
Stabilität
VisualisierungMulti-Thread
SDL
MatlabMPI Cluster
Entwicklung des Überhangs
50 Klötze / Überhang: 2,77
5 Eltern / 40.000 Evolutionszyklen
Effektiv: 200’000
50 Klötze / Überhang: 2,62
200 Eltern / 7500 Evolutionszyklen
Effektiv: 1’500’000
50 Klötze / Überhang: 3,06
1000 Eltern / 3000 Evolutionszyklen
Effektiv: 110’000
Bauklötze für Zuhause
• http://www.tik.ee.ethz.ch/baukloetze