Von Labyrinthen zu Algorithmen 3 gm

Werbung
Von Labyrinthen zu
Algorithmen
g
m 3
Gerald Futschek
Algorithmen
prolog der Informatik
Ariadne Faden Algorithmus
Ariadne-Faden
Modifizierte Grundoperationen:
Aktionen: Beim Gehen in Gängen zusätzlich Faden abspulen bzw.
aufwickeln
zusätzliche Abfrage: Quert ein Faden die Kreuzung?
Ariadne Algorithmus mit den Grundoperationen:
solange Ziel nicht erreicht
falls Sackgasse
g
oder Ariadnefaden q
quert Kreuzung
g
drehe dich um und gehe Gang zurück (und wickle auf)
sonst
gehe 1.
1 Gang von links (falls Ariadnefaden im
Gang, dann aufwickeln sonst abspulen)
Es wird ein „Baum
Baum“ von allen möglichen Wegen durchsucht
durchsucht, dabei
stets versucht zuerst möglichst tief zu kommen: Tiefensuche!
Algorithmen
prolog der Informatik
Fragen zum Ariadne-Algorithmus
Ariadne Algorithmus
• Wie erkennt
k
Theseus,
h
dass sich
h
Minotaurus nicht im Labyrinth
y
aufhält?
• Geht Theseus den kürzesten Weg aus
dem Labyrinth hinaus?
• Kann es vorkommen, dass der
Algorithmus „ewig“ dauert?
• Welche Pre- und Postonditions gelten?
Algorithmen
prolog der Informatik
Aufwand des AriadneAlgorithmus
• Wie
Wi großß ist
i t der
d Aufwand
A f
d des
d Al
Algorithmus?
ith
?
– Wie misst man den Aufwand?
• Anzahl
A
hl Ei
Einzelschritte
l h itt
= Anzahl besuchter Kreuzungen?
= Anzahl durchwanderter Gänge?
• Aufwand entspricht der Anzahl verschiedener
Wege von A nach B
• Abhängig von Problemgröße n
n = Anzahl der Kreuzungen (Knoten)
Wenn maximal 3 weitere Gänge weggehen:
Aufwand maximal 3n (exponentiell!)
• Wie kann man den Ariadne Algorithmus beschleunigen?
Algorithmen
prolog der Informatik
Kürzester Weg
• Ariadnefaden
f
lliefert
f
nicht
h immer den
kürzesten Weg
g
• Warum?
• Wie
Wi kommt
k
t man zu einem
i
kürzesten
kü
t
Weg?
Algorithmen
prolog der Informatik
1 Möglichkeit für Kürzeste Wege
1.
• All
Alle W
Wege von A nach
hBb
bestimmen
ti
und den kürzesten davon auswählen
• Im
I Ariadne
A i d Algorithmus
Al
ith
b
braucht
ht man sich
i h bl
bloßß
stets die Länge des zurückgelegten Weges
merken und nach Auffinden von B nicht
abbrechen, sondern umkehren und
weitersuchen um weitere Wege zu finden
weitersuchen,
• Jedes Mal, wenn B erreicht wird, kann ein
neuer kürzester Weg gefunden worden sein
Algorithmen
prolog der Informatik
2. Möglichkeit
g
für Kürzeste
Wege
• Man berechnet
b
h
schrittweise
h
Zwischenergebnisse, also kürzeste Wege zu
Zwischenknoten
h k
(Prinzip der Dynamischen Programmierung)
• Beim ersten Schritt sind das die Nachbarknoten von A, sie haben Abstand 1
• Im nächsten Schritt alle Knoten mit Abstand
2,, dann die
d e mit
m t Abstand 3 usw.
• solange bis B erreicht wird
• Breitensuche!
Algorithmen
prolog der Informatik
Aufwand Kürzeste Wege
• Welche
l h der beiden Möglichkeiten
l hk
ist
schneller ?
• Kann man die maximale Anzahl der
Schritte angeben ?
• Welche der beiden Möglichkeiten
g
kann
Theseus im unbekannten Labyrinth
durchführen ?
Algorithmen
prolog der Informatik
Im Dunkeln aus einem
Labyrinth entkommen
• Also ohne Markierungen (Ariadne Faden)
• Ohne Spuren zu hinterlassen
• Für Rettungsroboter geeignet
• Wie geht das?
Algorithmen
prolog der Informatik
Im Dunkeln aus Labyrinth 2
• Linke
k Wand entlang
l
ist nicht
h geeignet
Man muss sich von Hindernis wieder lösen!
Algorithmen
prolog der Informatik
Im Dunkeln aus Labyrinth 3
Idee:
• Hat man die Startrichtung wieder erreicht,
erreicht
dann geradeaus weiter, bis man wieder auf
Hindernis trifft
Algorithmen
prolog der Informatik
Im Dunkeln aus Labyrinth 4
• Geht
h auch
h nicht
h immer!!
Algorithmen
prolog der Informatik
Im Dunkeln aus Labyrinth 5
• Pledge
l
Algorithmus
l
h
(John
( h Pledge)
l
)
• Auch Anzahl Umdrehungen muss 0 sein!
Algorithmen
prolog der Informatik
Pledge Algorithmus
Drehungswinkel auf 0 setzen
wiederhole
gehe geradeaus bis Wand erreicht
drehe dich so, dass du nach rechts
der Wand entlang gehst
folge dem Hindernis bis Drehungswinkel = 0
bis ins Freie gelangt
• Führt immer zu einem Ausgang am
äußeren Rand (falls vorhanden)
• http://www.geometrylab.de/Pledge/
htt ://
m t l b d /Pl d /
Algorithmen
prolog der Informatik
Fragen zu Algorithmen
• Was ist ein Algorithmus?
l
h
• Warum brauchen wir überhaupt
Al
Algorithmen?
ith
?
• Wann ist ein Algorithmus schneller als
ein anderer?
Algorithmen
prolog der Informatik
Charakterisierung Algorithmus
Ein Algorithmus
E
l
h
• ist ein schrittweises Verfahren
• ist exakt beschrieben
• liefert nach endlich vielen Schritten
as Erg
Ergebnis
n s (terminiert)
(t rm n rt)
das
• liefert stets ein richtiges Ergebnis
(ist korrekt)
• löst ein allgemeines
g
Problem
Algorithmen
prolog der Informatik
Herunterladen