Von Labyrinthen zu Algorithmen 2 Ariadne, die erste Informatikerin
Von Labyrinthen zu Algorithmen 2 Ariadne, die erste Informatikerin
Von Labyrinthen zu Algorithmen 2 Ariadne, die erste Informatikerin
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
<strong>Von</strong> <strong>Labyrinthen</strong> <strong>zu</strong><br />
<strong>Algorithmen</strong> 2<br />
Gerald Futschek<br />
<strong>Algorithmen</strong> prolog der Informatik<br />
<strong>Ariadne</strong>, <strong>die</strong> <strong>erste</strong><br />
<strong>Informatikerin</strong><br />
• Theseus ist wild<br />
entschlossen,<br />
Minotaurus in seinem<br />
Labyrinth um<strong>zu</strong>bringen<br />
• <strong>Ariadne</strong> hilft ihm dabei<br />
mit einer genialen Idee,<br />
den Minotaurus <strong>zu</strong><br />
finden und das<br />
Labyrinth auf schnellem<br />
Weg <strong>zu</strong> verlassen<br />
<strong>Algorithmen</strong> prolog der Informatik<br />
1
Der <strong>Ariadne</strong>-Faden<br />
• Theseus durchsucht systematisch das<br />
gesamte Labyrinth: Er spult dabei einen<br />
Faden ab, probiert an Kreu<strong>zu</strong>ngen den<br />
Gang ganz links <strong>zu</strong>erst, wenn nicht<br />
erfolgreich, dann den nächsten, usw.<br />
• Bei Sackgassen, erfolglosen Kreu<strong>zu</strong>ngen<br />
und an Kreu<strong>zu</strong>ngen, bei denen der<br />
<strong>Ariadne</strong>faden quert (Zyklus!) muss er<br />
umkehren (back tracking) und den<br />
Faden <strong>zu</strong>rückverfolgen und aufwickeln,<br />
um dann den nächsten Gang bei einer<br />
bereits besuchten Kreu<strong>zu</strong>ng<br />
ein<strong>zu</strong>schlagen.<br />
• Um schließlich <strong>zu</strong>m Eingang<br />
<strong>zu</strong>rück<strong>zu</strong>kehren, muss er <strong>zu</strong>letzt nur<br />
den Faden <strong>zu</strong>rückverfolgen<br />
<strong>Algorithmen</strong> prolog der Informatik<br />
Fragen <strong>zu</strong>m <strong>Ariadne</strong>-Faden<br />
• Welchen Vorteil bringt der <strong>Ariadne</strong>-Faden?<br />
• Warum wickelt man den Faden beim<br />
Zurückgehen wieder auf?<br />
• Wie lang muss der Faden sein?<br />
Theseus tötet den Minotaurus<br />
(schwarzfigurige Amphore)<br />
<strong>Algorithmen</strong> prolog der Informatik<br />
2
<strong>Ariadne</strong>-Faden Algorithmus<br />
Modifizierte Grundoperationen:<br />
Aktionen: Beim Gehen in Gängen <strong>zu</strong>sätzlich Faden<br />
abspulen bzw. aufwickeln<br />
<strong>zu</strong>sätzliche Abfrage: Quert ein Faden <strong>die</strong> Kreu<strong>zu</strong>ng?<br />
<strong>Ariadne</strong> Algorithmus mit den Grundoperationen:<br />
solange Ziel nicht erreicht<br />
falls Sackgasse oder <strong>Ariadne</strong>faden quert Kreu<strong>zu</strong>ng<br />
drehe dich um und gehe Gang <strong>zu</strong>rück (und wickle auf)<br />
sonst<br />
gehe 1. Gang von links (falls <strong>Ariadne</strong>faden im<br />
Gang, dann aufwickeln sonst abspulen)<br />
<strong>Algorithmen</strong> prolog der Informatik<br />
<strong>Ariadne</strong>-Algorithmus im Detail<br />
<strong>Algorithmen</strong> prolog der Informatik<br />
3
Fragen <strong>zu</strong>m <strong>Ariadne</strong>-Algorithmus<br />
• Wie erkennt Theseus, dass sich<br />
Minotaurus nicht im Labyrinth aufhält?<br />
• Geht Theseus den kürzesten Weg aus<br />
dem Labyrinth hinaus?<br />
• Kann es vorkommen, dass der<br />
Algorithmus „ewig“ dauert?<br />
• Welche Pre- und Postonditions gelten?<br />
<strong>Algorithmen</strong> prolog der Informatik<br />
Aufwand des <strong>Ariadne</strong>-<br />
Algorithmus<br />
• Wie groß ist der Aufwand des<br />
Algorithmus?<br />
– Wie misst man den Aufwand?<br />
•Anzahl Einzelschritte<br />
= Anzahl besuchter Kreu<strong>zu</strong>ngen?<br />
= Anzahl durchwanderter Gänge?<br />
– Wie oft wird ein Gang durchlaufen?<br />
•mindestens<br />
•höchstens<br />
• Wie kann man den <strong>Ariadne</strong> Algorithmus<br />
beschleunigen?<br />
<strong>Algorithmen</strong> prolog der Informatik<br />
4