12.12.2012 Aufrufe

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

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!