Download - Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Transcript
Page 1: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Andreas Gemsa

Ubung Algorithmische Geometrie

LEHRSTUHL FUR ALGORITHMIK I · INSTITUT FUR THEORETISCHE INFORMATIK · FAKULTAT FUR INFORMATIK

Einfuhrung & Konvexe Hulle

21.04.2011

Page 2: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

AlgoGeom-Team

Martin [email protected]

Raum 319Sprechzeiten: Termin per Mail vereinbaren

Dozent

Ubungsleiter

Andreas [email protected]

Raum 322Sprechzeiten: Termin per Mail vereinbaren

TermineVorlesung: Di 9:45 – 11:15 Uhr, Raum 131Ubung: Do 10:15 – 11:00 Uhr, Raum 131 (ab 21.04.)

Page 3: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

AlgoGeom-Team

Martin [email protected]

Raum 319Sprechzeiten: Termin per Mail vereinbaren

Dozent

Ubungsleiter

Andreas [email protected]

Raum 322Sprechzeiten: Termin per Mail vereinbaren

TermineVorlesung: Di 9:45 – 11:15 Uhr, Raum 131Ubung: Do 10:15 – 11:00 Uhr, Raum 131 (ab 21.04.)

Page 4: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Ubungsbetrieb

Ausgabe Blatt 1for Woche i = 2 . . . 14 do

if Tag == Dienstag thenAusgabe Blatt iAbgabe Blatt (i− 1)

if Tag == Donnerstag & !isFeiertag(Tag) thenBesprechung Blatt (i− 1)

Bearbeitung der Aufgaben und Abgabe der Losungen inZweiergruppen erwunschtUbung wochentlich 45 Minutenabweichende Regelung an FeiertagenAchtung: erste Ubung am 21.04. in Raum −118

Page 5: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Ablauf

Besprechung UB1EinstiegGrundlegendesOptimalitat!

Kontextsensitiver Algorithmus

Optimalitat?!

Page 6: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Fragen

Fragen zur Vorlesung

Fragen zum Ablauf der Ubung

AlgorithmenLaufzeiten...

...

Einfuhrung & Konvexe Hulle

Page 7: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Ubungsblatt 1 - Aufgabe 1 - a)

Gerichtete Gerade g durch p = (px, py) und q = (qx, qy)

Punkt r = (rx, ry)

Page 8: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Ubungsblatt 1 - Aufgabe 1 - a)

A =

1 px py1 qx qy1 rx ry

Gerichtete Gerade g durch p = (px, py) und q = (qx, qy)

Punkt r = (rx, ry)

Page 9: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Ubungsblatt 1 - Aufgabe 1 - a)

A =

1 px py1 qx qy1 rx ry

Gerichtete Gerade g durch p = (px, py) und q = (qx, qy)

Punkt r = (rx, ry)

Beweise: Vorzeichen von det(A) zeigt an ob r linksoder rechts von g liegt.

Page 10: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Aufgabe 1 - a)

Page 11: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Aufgabe 1 - a)

p

q

Page 12: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Aufgabe 1 - a)

p

q

Page 13: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Aufgabe 1 - a)

p

qr

Page 14: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Aufgabe 1 - a)

p

qr

Page 15: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Aufgabe 1 - a)

p

qr

rp =

(rx − pxry − py

)

Page 16: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Aufgabe 1 - a)

p

qr

rp =

(rx − pxry − py

)

Page 17: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Aufgabe 1 - a)

p

qr

rp =

(rx − pxry − py

)

Page 18: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Aufgabe 1 - a)

p

qr

npq =

(py − qyqx − px

)rp =

(rx − pxry − py

)

rp · npq = det(A)

Page 19: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Aufgabe 1 - a)

A =

1 px py1 qx qy1 rx ry

Gerichtete Gerade g durch p = (px, py) und q = (qx, qy)

Punkt r = (rx, ry)

Beweise: Vorzeichen von det(A) zeigt an ob r linksoder rechts von g liegt.

Page 20: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Aufgabe 1 - a)

A =

1 px py1 qx qy1 rx ry

Gerichtete Gerade g durch p = (px, py) und q = (qx, qy)

Punkt r = (rx, ry)

Beweise: Vorzeichen von det(A) zeigt an ob r linksoder rechts von g liegt.

Page 21: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Aufgabe 1 - a)

A =

1 px py1 qx qy1 rx ry

Gerichtete Gerade g durch p = (px, py) und q = (qx, qy)

Punkt r = (rx, ry)

Beweise: Vorzeichen von det(A) zeigt an ob r linksoder rechts von g liegt.

+ b)

Beweise: |det(A)| = doppelter Flacheninhalt desDreiecks pqr

Page 22: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Aufgabe 1 - b)

p

q

r

Page 23: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Aufgabe 1 - b)

p

q

r

Page 24: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Aufgabe 1 - b)

p

q

r

Page 25: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Aufgabe 1 - b)

p

q

r

Page 26: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Aufgabe 1 - b)

p

q

r

Page 27: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Aufgabe 1 - b)

p

q

r

Apqr = |pq| · hh

Page 28: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Aufgabe 1 - b)

p

q

r

Apqr = |pq| · hhϕ

Page 29: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Aufgabe 1 - b)

p

q

r

Apqr = |pq| · hhϕ

ϕ

Page 30: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Aufgabe 1 - a)

A =

1 px py1 qx qy1 rx ry

Gerichtete Gerade g durch p = (px, py) und q = (qx, qy)

Punkt r = (rx, ry)

Beweise: Vorzeichen von det(A) zeigt an ob r linksoder rechts von g liegt.

+ b)

Beweise: |det(A)| = doppelter Flacheninhalt desDreiecks pqr

Page 31: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Aufgabe 1 - a)

A =

1 px py1 qx qy1 rx ry

Gerichtete Gerade g durch p = (px, py) und q = (qx, qy)

Punkt r = (rx, ry)

Beweise: Vorzeichen von det(A) zeigt an ob r linksoder rechts von g liegt.

+ b)

Beweise: |det(A)| = doppelter Flacheninhalt desDreiecks pqr

Page 32: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Aufgabe 2Lemma:Fur eine endliche Punktmenge P ⊆ R2

ist CH(P ) ein konvexes Polygon, das Penthalt und dessen Ecken in P liegen.

Page 33: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Aufgabe 2Lemma:Fur eine endliche Punktmenge P ⊆ R2

ist CH(P ) ein konvexes Polygon, das Penthalt und dessen Ecken in P liegen.

Mathematik: CH(P ) =⋂

C⊇P : C konvex

C

Page 34: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Aufgabe 2Lemma:Fur eine endliche Punktmenge P ⊆ R2

ist CH(P ) ein konvexes Polygon, das Penthalt und dessen Ecken in P liegen.

a) Die konvexe Hulle CH(P ) enthalt alle Punkte aus P .

Mathematik: CH(P ) =⋂

C⊇P : C konvex

C

Page 35: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Aufgabe 2Lemma:Fur eine endliche Punktmenge P ⊆ R2

ist CH(P ) ein konvexes Polygon, das Penthalt und dessen Ecken in P liegen.

a) Die konvexe Hulle CH(P ) enthalt alle Punkte aus P .

Mathematik: CH(P ) =⋂

C⊇P : C konvex

C

Page 36: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Aufgabe 2Lemma:Fur eine endliche Punktmenge P ⊆ R2

ist CH(P ) ein konvexes Polygon, das Penthalt und dessen Ecken in P liegen.

a) Die konvexe Hulle CH(P ) enthalt alle Punkte aus P .

Mathematik: CH(P ) =⋂

C⊇P : C konvex

C

b) Schnitt zweier konvexen Mengen ist konvex.

Def: Eine Menge P ⊆ R2 heißt konvex, wenn fur je zweiPunkte p, q ∈ P auch gilt pq ∈ P .

Page 37: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Aufgabe 2Lemma:Fur eine endliche Punktmenge P ⊆ R2

ist CH(P ) ein konvexes Polygon, das Penthalt und dessen Ecken in P liegen.

a) Die konvexe Hulle CH(P ) enthalt alle Punkte aus P .

Mathematik: CH(P ) =⋂

C⊇P : C konvex

C

b) Schnitt zweier konvexen Mengen ist konvex.

Page 38: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Aufgabe 2Lemma:Fur eine endliche Punktmenge P ⊆ R2

ist CH(P ) ein konvexes Polygon, das Penthalt und dessen Ecken in P liegen.

a) Die konvexe Hulle CH(P ) enthalt alle Punkte aus P .

Mathematik: CH(P ) =⋂

C⊇P : C konvex

C

b) Schnitt zweier konvexen Mengen ist konvex.

Page 39: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Aufgabe 2Lemma:Fur eine endliche Punktmenge P ⊆ R2

ist CH(P ) ein konvexes Polygon, das Penthalt und dessen Ecken in P liegen.

a) Die konvexe Hulle CH(P ) enthalt alle Punkte aus P .

Mathematik: CH(P ) =⋂

C⊇P : C konvex

C

b) Schnitt zweier konvexen Mengen ist konvex.

c) CH(P ) ist ein Polygon.

Page 40: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Aufgabe 2Lemma:Fur eine endliche Punktmenge P ⊆ R2

ist CH(P ) ein konvexes Polygon, das Penthalt und dessen Ecken in P liegen.

a) Die konvexe Hulle CH(P ) enthalt alle Punkte aus P .

Mathematik: CH(P ) =⋂

C⊇P : C konvex

C

b) Schnitt zweier konvexen Mengen ist konvex.

c) CH(P ) ist ein Polygon.

Page 41: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Aufgabe 2Lemma:Fur eine endliche Punktmenge P ⊆ R2

ist CH(P ) ein konvexes Polygon, das Penthalt und dessen Ecken in P liegen.

a) Die konvexe Hulle CH(P ) enthalt alle Punkte aus P .

Mathematik: CH(P ) =⋂

C⊇P : C konvex

C

b) Schnitt zweier konvexen Mengen ist konvex.

c) CH(P ) ist ein Polygon.

d) Alle Ecken von CH(P ) liegen in P.

Page 42: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Aufgabe 2Lemma:Fur eine endliche Punktmenge P ⊆ R2

ist CH(P ) ein konvexes Polygon, das Penthalt und dessen Ecken in P liegen.

a) Die konvexe Hulle CH(P ) enthalt alle Punkte aus P .

Mathematik: CH(P ) =⋂

C⊇P : C konvex

C

b) Schnitt zweier konvexen Mengen ist konvex.

c) CH(P ) ist ein Polygon.

d) Alle Ecken von CH(P ) liegen in P.

Page 43: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Aufgabe 3

a) Berechnung konvexer Hulle benotigt Ω(n log n).

Page 44: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Aufgabe 3

a) Berechnung konvexer Hulle benotigt Ω(n log n).

b) Gegeben: einfaches [nicht notwendigerweise kovexes]Polygon. Konstruiere daraus in O(n) seine konvexe Hulle.Warum ist das kein Widerspruch zu a) ?

Page 45: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Aufgabe 3

a) Berechnung konvexer Hulle benotigt Ω(n log n).

b) Gegeben: einfaches [nicht notwendigerweise kovexes]Polygon. Konstruiere daraus in O(n) seine konvexe Hulle.Warum ist das kein Widerspruch zu a) ?

UpperConvexHull(P )

〈p1, p2, . . . , pn〉 ← sortiere P von links nach rechtsL← 〈p1, p2〉for i← 3 to n do

L.append(pi)while |L| > 2 and letzte 3 Punkte in L kein Rechtsknick do

entferne vorletzten Punkt aus L

return L

Page 46: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Kontextsensitiver Algorithmus

GiftWrapping(P )

p0 = (0,∞), p1 = linkester Knoten in Pwhile true do

Berechne pk+1 ∈ P der den Winkel pj−1pjqi maximiert.if pk+1 == p1 then

break

return (p1, . . . , ph)

Page 47: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Kontextsensitiver Algorithmus

GiftWrapping(P )

p0 = (0,∞), p1 = linkester Knoten in Pwhile true do

Berechne pk+1 ∈ P der den Winkel pj−1pjqi maximiert.if pk+1 == p1 then

break

return (p1, . . . , ph)

Page 48: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Kontextsensitiver Algorithmus

GiftWrapping(P )

p0 = (0,∞), p1 = linkester Knoten in Pwhile true do

Berechne pk+1 ∈ P der den Winkel pj−1pjqi maximiert.if pk+1 == p1 then

break

return (p1, . . . , ph)

Page 49: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Kontextsensitiver Algorithmus

GiftWrapping(P )

p0 = (0,∞), p1 = linkester Knoten in Pwhile true do

Berechne pk+1 ∈ P der den Winkel pj−1pjqi maximiert.if pk+1 == p1 then

break

return (p1, . . . , ph)

Page 50: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Kontextsensitiver Algorithmus

GiftWrapping(P )

p0 = (0,∞), p1 = linkester Knoten in Pwhile true do

Berechne pk+1 ∈ P der den Winkel pj−1pjqi maximiert.if pk+1 == p1 then

break

return (p1, . . . , ph)

Page 51: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Kontextsensitiver Algorithmus

GiftWrapping(P )

p0 = (0,∞), p1 = linkester Knoten in Pwhile true do

Berechne pk+1 ∈ P der den Winkel pj−1pjqi maximiert.if pk+1 == p1 then

break

return (p1, . . . , ph)

Page 52: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Kontextsensitiver Algorithmus

GiftWrapping(P )

p0 = (0,∞), p1 = linkester Knoten in Pwhile true do

Berechne pk+1 ∈ P der den Winkel pj−1pjqi maximiert.if pk+1 == p1 then

break

return (p1, . . . , ph)

Page 53: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Kontextsensitiver Algorithmus

GiftWrapping(P )

p0 = (0,∞), p1 = linkester Knoten in Pwhile true do

Berechne pk+1 ∈ P der den Winkel pj−1pjqi maximiert.if pk+1 == p1 then

break

return (p1, . . . , ph)

Page 54: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Kontextsensitiver Algorithmus

GiftWrapping(P )

p0 = (0,∞), p1 = linkester Knoten in Pwhile true do

Berechne pk+1 ∈ P der den Winkel pj−1pjqi maximiert.if pk+1 == p1 then

break

return (p1, . . . , ph)

Page 55: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Kontextsensitiver Algorithmus

GiftWrapping(P )

p0 = (0,∞), p1 = linkester Knoten in Pwhile true do

Berechne pk+1 ∈ P der den Winkel pj−1pjqi maximiert.if pk+1 == p1 then

break

return (p1, . . . , ph)

Page 56: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Kontextsensitiver Algorithmus

O(n)

GiftWrapping(P )

p0 = (0,∞), p1 = linkester Knoten in Pwhile true do

Berechne pk+1 ∈ P der den Winkel pj−1pjqi maximiert.if pk+1 == p1 then

break

return (p1, . . . , ph)

Page 57: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Kontextsensitiver Algorithmus

O(n)O(h)

GiftWrapping(P )

p0 = (0,∞), p1 = linkester Knoten in Pwhile true do

Berechne pk+1 ∈ P der den Winkel pj−1pjqi maximiert.if pk+1 == p1 then

break

return (p1, . . . , ph)

Page 58: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Kontextsensitiver Algorithmus

O(n)O(h)

Laufzeit: O(nh)

GiftWrapping(P )

p0 = (0,∞), p1 = linkester Knoten in Pwhile true do

Berechne pk+1 ∈ P der den Winkel pj−1pjqi maximiert.if pk+1 == p1 then

break

return (p1, . . . , ph)

Page 59: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Optimalitat?!

Wann ist welcher Algorithmus besser?

Page 60: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Optimalitat?!

Viele Punkte auf CH(P ): O(n log n)

Wenige Punkte auf CH(P ): O(nh)

Wann ist welcher Algorithmus besser?

Graham Scan

Gift Wrapping

Page 61: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Optimalitat?!

Viele Punkte auf CH(P ): O(n log n)

Wenige Punkte auf CH(P ): O(nh)

Wann ist welcher Algorithmus besser?

Geht es vielleicht noch besser?

Graham Scan

Gift Wrapping

Page 62: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Optimalitat?!

Viele Punkte auf CH(P ): O(n log n)

Wenige Punkte auf CH(P ): O(nh)

Wann ist welcher Algorithmus besser?

Geht es vielleicht noch besser?

ja

Graham Scan

Gift Wrapping

Page 63: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Chans Algorithmus

Angenommen, wir kennen h:ChanHull(P ,h)

Unterteile P in Mengen Pi mit je h Knotenfor i von 1 bis n/h do

Berechne per GrahamScan CH(Pi)

p0 = (0,∞)p1 = linkester Knoten in Pfor j von 1 bis h do

for i von 1 bis n/h doBerechne Punkt qi ∈ Pi der den Winkelpj−1pjqi maximiert.

pj+1 = maxq1, . . . , qn/hreturn (p1, . . . , ph)

Page 64: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Chans Algorithmus

Angenommen, wir kennen h:ChanHull(P ,h)

Unterteile P in Mengen Pi mit je h Knotenfor i von 1 bis n/h do

Berechne per GrahamScan CH(Pi)

p0 = (0,∞)p1 = linkester Knoten in Pfor j von 1 bis h do

for i von 1 bis n/h doBerechne Punkt qi ∈ Pi der den Winkelpj−1pjqi maximiert.

pj+1 = maxq1, . . . , qn/hreturn (p1, . . . , ph)

Page 65: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Chans Algorithmus

Angenommen, wir kennen h:

Gift Wrapping

GrahamScan

ChanHull(P ,h)

Unterteile P in Mengen Pi mit je h Knotenfor i von 1 bis n/h do

Berechne per GrahamScan CH(Pi)

p0 = (0,∞)p1 = linkester Knoten in Pfor j von 1 bis h do

for i von 1 bis n/h doBerechne Punkt qi ∈ Pi der den Winkelpj−1pjqi maximiert.

pj+1 = maxq1, . . . , qn/hreturn (p1, . . . , ph)

Page 66: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Chans Algorithmus

Angenommen, wir kennen h:ChanHull(P ,h)

Unterteile P in Mengen Pi mit je h Knotenfor i von 1 bis n/h do

Berechne per GrahamScan CH(Pi)

p0 = (0,∞)p1 = linkester Knoten in Pfor j von 1 bis h do

for i von 1 bis n/h doBerechne Punkt qi ∈ Pi der den Winkelpj−1pjqi maximiert.

pj+1 = maxq1, . . . , qn/hreturn (p1, . . . , ph)

Page 67: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Chans Algorithmus

Angenommen, wir kennen h:ChanHull(P ,h)

Unterteile P in Mengen Pi mit je h Knotenfor i von 1 bis n/h do

Berechne per GrahamScan CH(Pi)

p0 = (0,∞)p1 = linkester Knoten in Pfor j von 1 bis h do

for i von 1 bis n/h doBerechne Punkt qi ∈ Pi der den Winkelpj−1pjqi maximiert.

pj+1 = maxq1, . . . , qn/hreturn (p1, . . . , ph)

O(h log h)

Page 68: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Chans Algorithmus

Angenommen, wir kennen h:ChanHull(P ,h)

Unterteile P in Mengen Pi mit je h Knotenfor i von 1 bis n/h do

Berechne per GrahamScan CH(Pi)

p0 = (0,∞)p1 = linkester Knoten in Pfor j von 1 bis h do

for i von 1 bis n/h doBerechne Punkt qi ∈ Pi der den Winkelpj−1pjqi maximiert.

pj+1 = maxq1, . . . , qn/hreturn (p1, . . . , ph)

O(h log h)

O(n/h)

Page 69: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Chans Algorithmus

Angenommen, wir kennen h:ChanHull(P ,h)

Unterteile P in Mengen Pi mit je h Knotenfor i von 1 bis n/h do

Berechne per GrahamScan CH(Pi)

p0 = (0,∞)p1 = linkester Knoten in Pfor j von 1 bis h do

for i von 1 bis n/h doBerechne Punkt qi ∈ Pi der den Winkelpj−1pjqi maximiert.

pj+1 = maxq1, . . . , qn/hreturn (p1, . . . , ph)

O(h log h)

O(n/h)

O(n

logh

)

Page 70: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Chans Algorithmus

O(logm)

Angenommen, wir kennen h:ChanHull(P ,h)

Unterteile P in Mengen Pi mit je h Knotenfor i von 1 bis n/h do

Berechne per GrahamScan CH(Pi)

p0 = (0,∞)p1 = linkester Knoten in Pfor j von 1 bis h do

for i von 1 bis n/h doBerechne Punkt qi ∈ Pi der den Winkelpj−1pjqi maximiert.

pj+1 = maxq1, . . . , qn/hreturn (p1, . . . , ph)

O(h log h)

O(n/h)

O(n

logh

)

Page 71: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Chans Algorithmus

O(logm)

Angenommen, wir kennen h:ChanHull(P ,h)

Unterteile P in Mengen Pi mit je h Knotenfor i von 1 bis n/h do

Berechne per GrahamScan CH(Pi)

p0 = (0,∞)p1 = linkester Knoten in Pfor j von 1 bis h do

for i von 1 bis n/h doBerechne Punkt qi ∈ Pi der den Winkelpj−1pjqi maximiert.

pj+1 = maxq1, . . . , qn/hreturn (p1, . . . , ph)

O(h log h)

O(n/h)

O(n

logh

)

O(h) · O(n/h) = O(n)

Page 72: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Chans Algorithmus

O(logm)

Angenommen, wir kennen h:ChanHull(P ,h)

Unterteile P in Mengen Pi mit je h Knotenfor i von 1 bis n/h do

Berechne per GrahamScan CH(Pi)

p0 = (0,∞)p1 = linkester Knoten in Pfor j von 1 bis h do

for i von 1 bis n/h doBerechne Punkt qi ∈ Pi der den Winkelpj−1pjqi maximiert.

pj+1 = maxq1, . . . , qn/hreturn (p1, . . . , ph)

O(h log h)

O(n/h)

O(n

logh

)

O(h) · O(n/h) = O(n)

O(n

logh

)

Page 73: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Chans Algorithmus

O(logm)

Angenommen, wir kennen h:ChanHull(P ,h)

Unterteile P in Mengen Pi mit je h Knotenfor i von 1 bis n/h do

Berechne per GrahamScan CH(Pi)

p0 = (0,∞)p1 = linkester Knoten in Pfor j von 1 bis h do

for i von 1 bis n/h doBerechne Punkt qi ∈ Pi der den Winkelpj−1pjqi maximiert.

pj+1 = maxq1, . . . , qn/hreturn (p1, . . . , ph)

O(h log h)

O(n/h)

O(n

logh

)

O(h) · O(n/h) = O(n)

O(n

logh

)

O(n log h)

Page 74: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Chans Algorithmus

O(logm)

ChanHull(P ,h)

Unterteile P in Mengen Pi mit je h Knotenfor i von 1 bis n/h do

Berechne per GrahamScan CH(Pi)

p0 = (0,∞)p1 = linkester Knoten in Pfor j von 1 bis h do

for i von 1 bis n/h doBerechne Punkt qi ∈ Pi der den Winkelpj−1pjqi maximiert.

pj+1 = maxq1, . . . , qn/hreturn (p1, . . . , ph)

O(h log h)

O(n/h)

O(n

logh

)

O(h) · O(n/h) = O(n)

O(n

logh

)

Im Allgemeinen ist h aber unbekannt.

Page 75: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Chans Algorithmus

O(logm)

ChanHull(P ,h)

Unterteile P in Mengen Pi mit je h Knotenfor i von 1 bis n/h do

Berechne per GrahamScan CH(Pi)

p0 = (0,∞)p1 = linkester Knoten in Pfor j von 1 bis h do

for i von 1 bis n/h doBerechne Punkt qi ∈ Pi der den Winkelpj−1pjqi maximiert.

pj+1 = maxq1, . . . , qn/hreturn (p1, . . . , ph)

O(h log h)

O(n/h)

O(n

logh

)

O(h) · O(n/h) = O(n)

O(n

logh

)

Im Allgemeinen ist h aber unbekannt.m

Page 76: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Chans Algorithmus

Im Allgemeinen ist h aber unbekannt.ChanHull(P ,m)

Unterteile P in Mengen Pi mit je m Knotenfor i von 1 bis n/m do

Berechne per GrahamScan CH(Pi)

p0 = (0,−∞)p1 = linkester Knoten au Pfor j von 1 bis m do

for i von 1 bis n/m doBerechne Punkt qi ∈ Pi der den Winkelpj−1pjqi maximiert.

pj+1 = maxq1, . . . , qn/mreturn (p1, . . . , pm)

O(m logm)

O(n/m)

O(n

logm

)

O(logm)

O(m) · O(n/m) = O(n)

O(n

logm

)

O(n logm)

Page 77: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Chans Algorithmus

Im Allgemeinen ist h aber unbekannt.ChanHull(P ,m)

Unterteile P in Mengen Pi mit je m Knotenfor i von 1 bis n/m do

Berechne per GrahamScan CH(Pi)

p0 = (0,−∞)p1 = linkester Knoten au Pfor j von 1 bis m do

for i von 1 bis n/m doBerechne Punkt qi ∈ Pi der den Winkelpj−1pjqi maximiert.

pj+1 = maxq1, . . . , qn/mreturn (p1, . . . , pm)

O(m logm)

O(n/m)

O(n

logm

)

O(logm)

O(m) · O(n/m) = O(n)

O(n

logm

)

O(n logm)

Page 78: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Chans Algorithmus

ChanHull(P ,m)

Unterteile P in Mengen Pi mit je m Knoten...p0 = (0,−∞)p1 = linkester Knoten au Pfor j von 1 bis m do

for i von 1 bis n/m doBerechne Punkt qi ∈ Pi der den Winkelpj−1pjqi maximiert.

pj+1 = maxq1, . . . , qn/mif pj+1 == p1 then

return (p1, . . . , pj)

return failure

O(n

logm

)

O(log h)

O(m) · O(n/m) = O(n)

O(n

logm

)

Im Allgemeinen ist h aber unbekannt.

Page 79: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Chans Algorithmus

ChanHull(P ,m)

Unterteile P in Mengen Pi mit je m Knoten...p0 = (0,−∞)p1 = linkester Knoten au Pfor j von 1 bis m do

for i von 1 bis n/m doBerechne Punkt qi ∈ Pi der den Winkelpj−1pjqi maximiert.

pj+1 = maxq1, . . . , qn/mif pj+1 == p1 then

return (p1, . . . , pj)

return failure

O(n

logm

)

O(log h)

O(m) · O(n/m) = O(n)

O(n

logm

)

Im Allgemeinen ist h aber unbekannt.

O(n logm)

Page 80: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Was ist mit m?

Vorschlage?

Page 81: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Was ist mit m?

FullChanHull(P )

for t = 0, 1, 2, . . . do

m = minn, 22tresult = ChanHull(P , m)if result != failure then

break

return result

Page 82: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Was ist mit m?

FullChanHull(P )

for t = 0, 1, 2, . . . do

m = minn, 22tresult = ChanHull(P , m)if result != failure then

break

return result

Laufzeit:

O(n logm) =O(n log 22

t)

Page 83: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Was ist mit m?

FullChanHull(P )

for t = 0, 1, 2, . . . do

m = minn, 22tresult = ChanHull(P , m)if result != failure then

break

return result

Laufzeit:

O(n logm) =O(n log 22

t)

?∑t=0

O(n log 22t)

Page 84: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Was ist mit m?

FullChanHull(P )

for t = 0, 1, 2, . . . do

m = minn, 22tresult = ChanHull(P , m)if result != failure then

break

return result

Laufzeit:

O(n logm) =O(n log 22

t)

O(log log h)∑t=0

O(n log 22t)

Page 85: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Was ist mit m?

FullChanHull(P )

for t = 0, 1, 2, . . . do

m = minn, 22tresult = ChanHull(P , m)if result != failure then

break

return result

Laufzeit:

O(n logm) =O(n log 22

t)

O(log log h)∑t=0

O(n log 22t) = O(n)

O(log log h)∑t=0

O(2t)

Page 86: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Was ist mit m?

FullChanHull(P )

for t = 0, 1, 2, . . . do

m = minn, 22tresult = ChanHull(P , m)if result != failure then

break

return result

Laufzeit:

O(n logm) =O(n log 22

t)

O(log log h)∑t=0

O(n log 22t) = O(n)

O(log log h)∑t=0

O(2t)

= O(n) · O(2log log h+1)

Page 87: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Was ist mit m?

FullChanHull(P )

for t = 0, 1, 2, . . . do

m = minn, 22tresult = ChanHull(P , m)if result != failure then

break

return result

Laufzeit:

O(n logm) =O(n log 22

t)

O(log log h)∑t=0

O(n log 22t) = O(n)

O(log log h)∑t=0

O(2t)

= O(n) · O(2log log h+1) = O(n) · O(2log log h)

Page 88: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Was ist mit m?

FullChanHull(P )

for t = 0, 1, 2, . . . do

m = minn, 22tresult = ChanHull(P , m)if result != failure then

break

return result

Laufzeit:

O(n logm) =O(n log 22

t)

O(log log h)∑t=0

O(n log 22t) = O(n)

O(log log h)∑t=0

O(2t)

= O(n) · O(2log log h+1) = O(n) · O(2log log h)= O(n) · O(log h)

Page 89: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Was ist mit m?

FullChanHull(P )

for t = 0, 1, 2, . . . do

m = minn, 22tresult = ChanHull(P , m)if result != failure then

break

return result

Laufzeit:

O(n logm) =O(n log 22

t)

O(log log h)∑t=0

O(n log 22t) = O(n)

O(log log h)∑t=0

O(2t)

= O(n) · O(2log log h+1) = O(n) · O(2log log h)= O(n) · O(log h) = O(n log h)

Page 90: Einf uhrung & Konvexe H ulle - ITI Algorithmik Ia) Die konvexe H ulle CH (P ) enth alt alle Punkte aus P . Mathematik: CH(P ) = \ C P : C konvex C b) Schnitt zweier konvexen Mengen

Andreas Gemsa · Ubung Algorithmische Geometrie

Das war’s!

Nachster Termin:Donnerstag, 28.04, 10:15 Uhr

SegmentschnitteRaum 131, Gebaude 50.34

Fragen?