PPS Präsentation -> Wikommen Mit Bauklötze baut man Türme
PPS Projekt: Bauklötzchen für Profis Interessante Fragen
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! Frage im Raum/Schätzfrage mit 10 Klötzchen
1. Versuch Trivialer Versuch: Jedes Klötzchen gleich weit Grenze: liegt bei 1
Schon besser Von oben her aufbauen: Schwerpunkt bei ½ ¼ … harmonische Reihe: 100 Steine / Überhang 2.5 -> ist das Optimal? Nö Die Bezeichnung „logarithmischer Turm“ nicht einfach so per se verwenden.
Es geht noch mehr 100 Klötze Überhang = 3.7 Kein Bauplan, kein System, keine Reihe. 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 Motivation: Es gibt keine allgemeine Lösung für dieses Problem! Stabilität genau erläutern Danach: Start der Live-Demo, Vorspeise, Details folgen
DEMO (Noch keine Details zur Implementation) Progi zeigt einige Türme wild durcheinander Erläuterung: rot grün Dann Details der Realisierung: EA
Optimierungsmethode Idee: Lösung mit Evolutionärem Algorithmus Vorbild: Natur Zyklischer Prozess Grosse Anzahl Lösungen Anpassung & Verbesserung laufen parallel ab Zu jedem Punkt direkt unser Problem erwähnen bzw. deren Implementationsidee 9
Programmablauf Bei Selektion folgende Fragen erwähnen: Wer überlebt? Wer pflanzt sich fort? 10
Rekombination Idee: Gute Eigenschaften von zwei Türmen kombinieren Oberer Teil Turm 1 auf unteren Teil Turm 2 Grundsätzliches Verfahren Realisation etwas komplexer
Rekombination
Mutation Idee: Eigenschaften verbessern ohne Turm 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 Wer überlebt? (Turnier-Modus) 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 Fitness ist ein binärer Wert Fitness eines stabilen Turms = Überhang Fitness eines instabilen Turms = 0 Überleitung zu Stabilität
Wann ist ein Turm stabil? Schwerpunkt auf dem Tisch Alle Klötzchen müssen in Ruhe sein Schwerpunkt reicht noch nicht! Stabil = Kein Klotz bewegt sich Damit man rechnen kann -> freischneiden
Freischneiden Klötzchen auseinander nehmen Gewichtskraft einfügen Kräfte zwischen den Klötzchen einführen Kraft von der Unterlage 7 6 9 8 G G 2 3 5 4 T-Mech 1. Semester Freischneiden, Gleichungen aufstellen G 1
Gleichgewichtsbedingungen Resultierende in y–Richtung Drehmoment Mehr Unbekannte als Gleichungen Tech Mech 1. Semester (Resultierende = Gewichtskraft / Momentenbedingung=0) Unterdeterminiertes Gleichungssystem, ist mit klassischer Mathematik schwierig
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 negativen Kräfte – Klebstoff Matlab löst uns diese Aufgabe Überleitung wir haben alles:
Realisierung C++ EA Stabilität Visualisierung MPI Cluster Matlab Wir haben eine kreativen Algorithmus, eine Stabilitätsprüfung der die Fitness berechnet Cluster mit 50 Tardis-Rechnern Es braucht noch eine Grafikanzeige –SDL Programm steht! Überleitung zur Präsentation (Hinweis auf Webpage am Schluss) Multi-Thread SDL
DEMO Session von 1. Demo Log Turm bauen Vergelich zwischen unserem Turm und ln Turm Sourcecode auf Website erwähnen bei Demo erwähnen!
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 Vergleichen mit den Türmen vom Anfang der Präsentation -> deutlich besser! 1000 Eltern / 3000 Evolutionszyklen Effektiv: 110’000
Bauklötze für Zuhause http://www.tik.ee.ethz.ch/baukloetze Sourcecode auf Website erwähnen Gäste einladen nach vorne zu kommen und ihre eigenen Türme zu bauen