Online Competitive Algorithms Computational Geometry, WS 2006/07 Lecture 17 Prof. Dr. Thomas Ottmann...

24
Online Competitive Algorithms Computational Geometry, WS 2006/07 Lecture 17 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät für Angewandte Wissenschaften Albert-Ludwigs-Universität Freiburg

Transcript of Online Competitive Algorithms Computational Geometry, WS 2006/07 Lecture 17 Prof. Dr. Thomas Ottmann...

Page 1: Online Competitive Algorithms Computational Geometry, WS 2006/07 Lecture 17 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik.

Online Competitive Algorithms

Computational Geometry, WS 2006/07Lecture 17

Prof. Dr. Thomas Ottmann

Algorithmen & Datenstrukturen, Institut für InformatikFakultät für Angewandte WissenschaftenAlbert-Ludwigs-Universität Freiburg

Page 2: Online Competitive Algorithms Computational Geometry, WS 2006/07 Lecture 17 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik.

Computational Geometry, WS 2006/07Prof. Dr. Thomas Ottmann 2

Bewegungsplanung bei unvollständiger Information

• Ausweg aus einem Labyrinth

• Finden eines Punktes in unbekannter Umgebung

• Kompetitive Strategien– Beispiel: Online-Bin-Packing– Beispiel: Suche nach einer Tür in einer Wand

Page 3: Online Competitive Algorithms Computational Geometry, WS 2006/07 Lecture 17 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik.

Computational Geometry, WS 2006/07Prof. Dr. Thomas Ottmann 3

Ausweg aus einem Labyrinth

Gegeben sei ein punktförmiger Roboter, der nur über einen Tastsensor und einen Winkelzähler verfügt.

Gesucht ist eine Strategie, mit der der Roboter aus jedem unbekannten Labyrinth herausfindet, wenn es überhaupt einen Ausweg gibt.

Herausfinden = den Rand der konvexen Hülle des Labyrinths erreichen

= (Entkommen = true)

Page 4: Online Competitive Algorithms Computational Geometry, WS 2006/07 Lecture 17 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik.

Computational Geometry, WS 2006/07Prof. Dr. Thomas Ottmann 4

1. Versuch: An der Wand entlang

Wähle Richtung beliebig;

repeat

folge Richtung

until Wandkontakt;

repeat

folge der Wand

until Entkommen

Willkürliche Festlegung:

Sobald der Roboter auf ein

Hindernis trifft, dreht er sich

rechts herum und läuft so an

der Wand entlang, dass sich

die Wand stets links von ihm

befindet.

Page 5: Online Competitive Algorithms Computational Geometry, WS 2006/07 Lecture 17 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik.

Computational Geometry, WS 2006/07Prof. Dr. Thomas Ottmann 5

Beispiellabyrinth 1

Page 6: Online Competitive Algorithms Computational Geometry, WS 2006/07 Lecture 17 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik.

Computational Geometry, WS 2006/07Prof. Dr. Thomas Ottmann 6

Beispiellabyrinth 2

Page 7: Online Competitive Algorithms Computational Geometry, WS 2006/07 Lecture 17 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik.

Computational Geometry, WS 2006/07Prof. Dr. Thomas Ottmann 7

2. Versuch: Möglichst in Anfangsrichtung

Wähle Richtung beliebig;

Winkelzähler = 0;

repeat

repeat

folge Richtung

until Wandkontakt;

repeat

folge der Wand

until Winkelzähler mod 2π = 0

until Entkommen

Roboter läuft in

Anfangsrichtung,

wann immer seine Nase

in diese Richtung zeigt!

Winkelwerte:

Linksdrehung: positiv

Rechtsdrehung: negativ

Page 8: Online Competitive Algorithms Computational Geometry, WS 2006/07 Lecture 17 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik.

Computational Geometry, WS 2006/07Prof. Dr. Thomas Ottmann 8

Verhalten für Labyrinth 1

Page 9: Online Competitive Algorithms Computational Geometry, WS 2006/07 Lecture 17 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik.

Computational Geometry, WS 2006/07Prof. Dr. Thomas Ottmann 9

Verhalten für Labyrinth 2

Page 10: Online Competitive Algorithms Computational Geometry, WS 2006/07 Lecture 17 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik.

Computational Geometry, WS 2006/07Prof. Dr. Thomas Ottmann 10

3. Versuch: Pledge Algorithmus

Wähle Richtung beliebig;

Winkelzähler = 0;

repeat

repeat

folge Richtung

until Wandkontakt;

repeat

folge der Wand

until Winkelzähler = 0

until Entkommen

Vermeidet

Endlosschleifen!

Page 11: Online Competitive Algorithms Computational Geometry, WS 2006/07 Lecture 17 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik.

Computational Geometry, WS 2006/07Prof. Dr. Thomas Ottmann 11

Korrektheit des Pledge Algorithmus

Satz: Der Pledge Algorithmus findet in jedem Labyrinth von jeder Startposition aus einen Weg ins Freie, von der überhaupt ein Ausweg existiert.

Lemma 1: Der Winkelzähler W nimmt niemals einen positiven Wert an.

Bew. 1: Anfangs ist W = 0, sobald ein Hindernis angetroffen wird, wird W negativ, sobald W = 0 wird, löst sich der Roboter vom Hindernis und wandert in Ausgangsrichtung bis zum nächsten Hindernis!

Page 12: Online Competitive Algorithms Computational Geometry, WS 2006/07 Lecture 17 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik.

Computational Geometry, WS 2006/07Prof. Dr. Thomas Ottmann 12

Korrektheit des Pledge Algorithmus

Zu zeigen: Falls der Roboter nach dem Pledge Algorithmus keinen Weg ins Freie findet, gibt es keinen solchen Weg.

Lemma 2: Angenommen, der Roboter findet nicht aus dem Labyrinth heraus. Dann besteht sein Weg bis auf ein endliches Anfangsstück aus einem geschlossenen Weg, der immer wieder durchlaufen wird.

Sei P der geschlossene Weg, den der Roboter bei seinem vergeblichen Versuch, aus dem Labyrinth zu entkommen, immer wieder durchläuft.

Lemma 3: Der Weg P kann sich nicht selbst kreuzen.

Page 13: Online Competitive Algorithms Computational Geometry, WS 2006/07 Lecture 17 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik.

Computational Geometry, WS 2006/07Prof. Dr. Thomas Ottmann 13

Unmöglichkeit von Kreuzungen

Page 14: Online Competitive Algorithms Computational Geometry, WS 2006/07 Lecture 17 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik.

Computational Geometry, WS 2006/07Prof. Dr. Thomas Ottmann 14

Korrektheit des Pledge Algorithmus

Bew. des Satzes:

Fall 1: Roboter durchläuft P gegen Uhrzeigersinn.

Fall 2: Roboter durchläuft P im Uhrzeigersinn.

Page 15: Online Competitive Algorithms Computational Geometry, WS 2006/07 Lecture 17 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik.

Computational Geometry, WS 2006/07Prof. Dr. Thomas Ottmann 15

Finden eines Punktes in unbekannter Umgebung

Aufgabe: Roboter soll Zielpunkt in einer unbekannten Umgebung finden

Erweiterung der Fähigkeiten des Roboters:Er kennt zu jedem Zeitpunkt seine eigenen (globalen)

KoordinatenEr kennt die (globalen Koordinaten des Zielpunktes.

Strategie Bug: Roboter läuft solange auf Zielpunkt zu, bis er auf ein Hindernis

trifft. Dies wird einmal umrundet. Dabei merkt sich der Roboter denjenigen Punkt auf dem Rand des Hindernisses, der dem Zielpunkt am nächsten ist, und kehrt nach der vollständigen Umrundung dorthin zurück. Von diesem Punkt aus wird der Weg in gleicher Weise fortgesetzt.

Page 16: Online Competitive Algorithms Computational Geometry, WS 2006/07 Lecture 17 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik.

Computational Geometry, WS 2006/07Prof. Dr. Thomas Ottmann 16

Strategie Bug

repeat

repeat

laufe auf Zielpunkt zu

until Wandkontakt;

A = AktuellePosition; (*auf Hinderniswand*)

D = AktuellePosition; (*zum Zielpunkt nächster bisher besuchter Punkt auf Hinderniswand*)

repeat

rücke AktuellePosition entlang der Wand vor;

if AktuellePosition näher an Zielpunkt als D

then D = AktuellePosition

until AktuellePosition = A;

gehe auf kürzestem Weg längs Hinderniswand zu D

until ZielpunktErreicht

Page 17: Online Competitive Algorithms Computational Geometry, WS 2006/07 Lecture 17 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik.

Computational Geometry, WS 2006/07Prof. Dr. Thomas Ottmann 17

Beispiel für Zielfindung

Page 18: Online Competitive Algorithms Computational Geometry, WS 2006/07 Lecture 17 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik.

Computational Geometry, WS 2006/07Prof. Dr. Thomas Ottmann 18

Eigenschaften der Strategie Bug

Die Strategie Bug findet stets einen Weg vom Startpunkt s zum Zielpunkt t, wenn ein solcher Weg überhaupt existiert. (Beweis: vgl. R. Klein)

Der von der Strategie Bug zurückgelegte Weg kann beliebig viel länger sein als der kürzeste Weg von s nach t.

Page 19: Online Competitive Algorithms Computational Geometry, WS 2006/07 Lecture 17 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik.

Computational Geometry, WS 2006/07Prof. Dr. Thomas Ottmann 19

Kompetitive Strategien: Beispiel Bin-Packing

Aufgabe: Gegeben eine Folge o1, o2, … von Objekten mit Größe ≤ 1. Verpacke die Objekte so in Kisten mit Größe 1, dass möglichst wenige Kisten gebraucht werden.

Next-fit-Strategie: Packe das jeweils nächste Objekt in dieselbe Kiste wie das vorangehende, wenn es da noch hineinpasst, sonst mache eine neue Kiste auf.

Die Next-fit-Strategie verbraucht höchstens doppelt so viele Kisten, wie bei optimaler Packung erforderlich wären.

Page 20: Online Competitive Algorithms Computational Geometry, WS 2006/07 Lecture 17 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik.

Computational Geometry, WS 2006/07Prof. Dr. Thomas Ottmann 20

Kompetitivität einer Strategie

Sei ein Problem und S eine Strategie, die jedes Problem P aus korrekt löst und dabei Kosten KS(P) verursacht.

Strategie S heißt kompetitiv mit Faktor C, wenn es eine Konstante A gibt, sodass für jedes Beispiel P gilt:

KS(P) ≤ C Kopt(P) + A, mit

Kopt(P) = Kosten einer optimalen Lösung

Next-fit ist kompetitiv mit Faktor 2.

Page 21: Online Competitive Algorithms Computational Geometry, WS 2006/07 Lecture 17 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik.

Computational Geometry, WS 2006/07Prof. Dr. Thomas Ottmann 21

Suche nach einer Tür in einer Wand

Roboter mit Tastsensor soll eine Tür in einer (beliebig langen) Wand finden, die sich in unbekanntem Abstand d und unbekannter Richtung vom Startpunkt befindet.

1. Versuch: Wechsele Suchrichtung und erhöhe Suchtiefe inkrementell um je 1.

Page 22: Online Competitive Algorithms Computational Geometry, WS 2006/07 Lecture 17 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik.

Computational Geometry, WS 2006/07Prof. Dr. Thomas Ottmann 22

Verdopplungsstrategie

2. Versuch: Verdopple die Suchtiefe nach jedem Richtungswechsel.

Page 23: Online Competitive Algorithms Computational Geometry, WS 2006/07 Lecture 17 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik.

Computational Geometry, WS 2006/07Prof. Dr. Thomas Ottmann 23

Eigenschaften der Verdopplungsstrategie

Satz 1: Die Strategie der abwechselnden Verdopplung der Suchtiefe ist kompetitiv mit dem Faktor 9.

Satz 2: Jede kompetitive Strategie zum Auffinden eines Punkts auf einer Geraden hat einen Faktor ≥ 9.

Das Prinzip der exponentiellen Vergrößerung der Suchtiefe ist erweiterbar auf andere und mehr als zwei Suchräume.

Satz 3: Diese Suchstrategie für m Halbgeraden ist kompetitiv mit dem Faktor

(2mm / (m -1)m-1) + 1 ≤ 2em +1

Dabei ist e = 2.718… die Eulersche Zahl.

Page 24: Online Competitive Algorithms Computational Geometry, WS 2006/07 Lecture 17 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik.