• Keine Ergebnisse gefunden

Konvexe Hülle – Algorithmus 2

N/A
N/A
Protected

Academic year: 2022

Aktie "Konvexe Hülle – Algorithmus 2"

Copied!
9
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Was bisher geschah

I Motivation, Beispiele

I geometrische Objekte imR2:

Punkt, Gerade, Halbebene, Strecke, Polygon

I maschinelle Repräsentation geometrischer Objekte

I konvexe Mengen imRd

I konvexe Hülle conv(P)endlicher PunktmengenP⊆Rd

I Beobachtungen im SpezialfallR2:

I conv(P)ist ein Polygon

(EckenfolgeH= [q0, . . . ,qm−1]im Uhrzeigersinn)

I ∀p,qP:pqKante von conv(P)gdw.

∀r P:rliegt auf oder rechts vonpq

I Entwurf des Algorithmus conv-1

I Nachteile des Algorithmus conv-1:

I LaufzeitO(n3)sehr hoch

I kaumrobust

I in Spezialfällen und

I gegenüber Rundungsfehlern

(2)

Konvexe Hülle – bessere Idee

inkrementellerAlgorithmus:

I Durchlaufen der Punkte inP in einer sinnvollen

Reihenfolge und gleichzeitige Erzeugung / Anpassung von Zusatzinformationen

I Repräsentation (und Verarbeitung) vonPals geordnete Menge (Folge)[p1, . . . ,pm]

I Ordnung aufsteigend nachx-Koordinate

(Punkte werden von links nach rechts verarbeitet)

I Berechnung der konvexen Hülle in zwei Durchläufen, oberenundunterenTeil

(3)

Obere und untere konvexe Hülle

gegeben:

P= [p1, . . . ,pn]aufsteigend geordnet nachx-Koordinate

[q0, . . . ,qk]istobere (untere) konvexe HüllevonP gdw.

1. [q0, . . . ,qk]zusammenhängende Teilfolge der

(evtl. zyklisch verschobenen) Eckenfolge von conv(P), 2. q0=p1(für untere konvexe Hülleq0=pn)

3. qk =pn(für untere konvexe Hülleqk =p1)

Beobachtung:HoundHuenthalten keine „Linkskurven“

fürHo0 = [q0, . . . ,q|Ho|−1](tail(Ho)) undHu0 = [q0, . . . ,q|Hu|−1](tail(Hu)) gilt:

Ho0 ◦Hu0 =H (Eckenfolge von conv(P))

(4)

Berechnung der oberen konvexen Hülle

gegeben:

P= [p1, . . . ,pn], aufsteigend nachx-Koordinate geordnet

Idee: Linksabbiegen verboten (konvex)

schrittweise Berechnung der oberen konvexe HülleH0: in jedem Schrittk:

I Punkte[p1, . . . ,pk]sind abgearbeitet, dabei wurdeHo= [q1, . . . ,qi]berechnet (mitgeführte Zusatzinformation)

I nächsten Kandidatenpk+1anHoanhängen (Ho←Ho◦pk+1)

I fallspk+1nicht rechtsvonqi−1qi,

Korrekturder FolgeHo= [q1, . . . ,qi−1,qi,pk+1]notwendig:

solangepk+1nicht rechts vonqi−1qi:

qi ausHoentfernen und Rechts-Test füri i1 wiederholen

I sonst ok

Warum „nicht rechts von“ statt „links von“?

(5)

Konvexe Hülle – Algorithmus 2

Algorithmus : conv-2 Eingabe:PR2endlich

Ausgabe:H= [q0, . . . ,qm−1] (Eckenfolge von conv(P))

[p1, . . . ,pn]Paufsteigend nachx-Koordinate sortieren

Ho[p1,p2] (Berechnung obere konvexe Hülle) für jedesk 3, . . . ,n:

HoHopk

solange|Ho| ≥2und q|Ho|nicht rechts von(q|Ho|−2,q|Ho|−1): q|Ho|−1ausHoentfernen (vorletzter Punkt)

Hu[pn,pn−1] (Berechnung untere konvexe Hülle) für jedesk n2, . . . ,1:

HuHupk

solange|Hu| ≥2und q|Hu|nicht rechts von(q|Hu|−2,q|Hu|−1): q|Hu|−1ausHuentfernen (vorletzter Punkt)

q|Ho|ausHoentfernen q|Hu|ausHuentfernen H=HoHu

(6)

Korrektheit des Algorithmus conv-2

(unter idealen Bedingungen, keine Rundungsfehler) Behauptung:

Die von conv-2 für eine endliche PunktmengeP ⊆R2 berechnete FolgeH ist eine Eckenfolge von conv(P).

Nachweis fürHo undHu getrennt (analog Berechnung) Ausgangspunkt:

[p1, . . . ,pn]ist die korrekt (lexikographisch) nachx-Koordinaten

aufsteigend geordnete Folge aller Punkte inP (durch korrektes Sortierverfahren bestimmt) zu zeigen: für jedesi∈ {2, . . . ,n}gilt:

Der nach Verarbeitung des Punktespi berechnete Teil vonHo

ist die obere konvexe Hülle der Punkte[p1, . . . ,pi].

Idee: Induktion übern(Tafel)

(7)

Laufzeit und Robustheit

Berechnung vonHo undHu jeweils∈O(n). Warum?

Sortieren vonnPunkten∈O(nlogn) Laufzeit:

L(conv-2) =L(Punkte-sortieren) +L(Ho) +L(Hu)∈O(nlogn) mögliche Probleme:

I P kann Punkte mit denselbenx-Koordinaten enthalten Lösung: lexikographische Ordnung (erstx, danny)

I P kann kollineare Punkte enthalten

kein Problem wegen Test auf „nicht rechts von “

I Rundungsfehler führen nicht zu strukturellen, sondern höchstens zu kleinen lokalen Fehlern (für die meisten Anwendungen harmlos)

lässt sich durch stärkeres Runden vermeiden, welches Punkte mit geringem Abstand zu einem zusammenfügt

(8)

Konvexe Hülle – Anwendungen

I Abschätzung von Kollisionsrisiken

I Hindernisumfahrung (Wegplanung)

I Mustererkennung

I Objekterkennung, Segmentierung in digitalen Bildern

I Texterkennung

I Bestimmung von Bounding-Boxen

I Gestenerkennung

(Volumenverhältnis von Objekt und konvexer Hülle)

I Bioinformatik

I Medizininformatik (Ausdehnung von Krankheitsherden)

I Verpackungstechnik

(9)

Schritte beim Entwurf geometrischer Algorithmen

1. Problemanalyse:

I Eingaben

I Ausgaben

I (mathematischer) Zusammenhang zwischen Ein- und Ausgaben

2. maschinelle Darstellung der Ein- und Ausgaben 3. Entwurf eines Lösungsalgorithmus

(zunächst Abstraktion von Spezialfällen und Rundungsfehlern)

4. Analyse von Robustheit und Ressourcenverbrauch des entworfenen Algorithmus

5. evtl. weitere Problemanalyse und Entwurf besserer Algorithmen

6. Implementierung mit Fehlerabschätzung

Referenzen

ÄHNLICHE DOKUMENTE

Vergleicht man aber die so gefundenen Werte mit denen für zyklische Ermüdung am Phantom mit einem Krümmungsradius von 5 mm, so lässt sich Folgendes feststellen: Nach den vorlie-

Wir halten diesen Typ für so allgemein bekannt, daß er nicht noch weiter zergliedert werden muß, obwohl dies ohne weiteres möglich wäre, z.B.: Zahl ist eine Folge von Ziffern,

Die Definition sollte so nahe wie möglich am Euklid’schen Algorithmus sein: man zieht solange die kleinere von der größeren Zahl ab, bis eine der beiden Zahlen 0 ist; dann ist

3+ architektur energie immobilien Ostfildern !.

I doppelt verkettete Liste von Ecken oder Kanten (Angabe der Durchquerungsrichtung wichtig) Vereinbarung: Kante e i = (v i , v i+1 ). Transformation der einfach in eine

äußere Begrenzung des von q sichtbaren Bereiches in P

● Hilfe des Wortfolgelexikons Erzeugung aller möglichen Wortsequenzen beider Sprachen. ● Erstellt Ranking basierend auf den

Übersetzungsdomäne soll dazu verwendet werden die in einer linguistischen Analyse nicht vorhandenen, jedoch für eine Übersetzung benötigten. Information neu