Triangulierung von Polygonen und das Museumsproblem

Größe: px
Ab Seite anzeigen:

Download "Triangulierung von Polygonen und das Museumsproblem"

Transkript

1 Triangulierung von Polygonen und das Museumsproblem (Literatur: deberg et al., Kapitel 3) 1 Motivation: Das Museumsproblem ein Museum soll durch Kameras überwacht werden wie viele Kameras werden benötigt? wo sollen die Kameras platziert werden? 2

2 Das Museumsproblem der Plan des Museums ist ein einfaches Polygon P eine Kamera entspricht einer Punktlichtquelle, d.h. eine Kamera ist ein Punkt k sie sieht einen Punkt p genau dann wenn die Strecke kp ganz im Inneren von P liegt. wie viele Kameras müssen in P platziert werden, damit jeder Punkt im Inneren von P gesehen wird? 3 Das Museumsproblem ein konvexes Polygon kann immer mit einer Kamera bewacht werden das Problem die kleinste Anzahl von Kameras zu einem gegebenen Polygon P zu finden ist NPschwer wir fragen uns, wie viele Kameras immer ausreichen, um ein Polygon mit n Ecken zu bewachen 4

3 Idee P sei ein einfaches Polygon mit n Ecken zerlege P in Stücke, die jeweils mit einer Kamera bewacht werden können beliebige konvexe Stücke Dreiecke 5 Triangulierungen Def. Eine Diagonale eines einfachen Polygons P ist eine offene Strecke zwischen zwei Ecken von P, die ganz im Inneren von P liegt Def. Eine Triangulierung eines einfachen Polygons P ist eine Zerlegung von P in Dreiecke welche von einer maximalen Menge von paarweise disjunkten Diagonalen induziert wird 6

4 Triangulierungen maximale Menge von disjunkten Diagonalen impliziert, dass keine Ecken auf dem Rand eines Dreiecks liegen können zu einem Polygon gibt es i. allg. verschiedene Triangulierungen! 7 Fragen über Triangulierungen gibt es zu jedem einfachen Polygon eine Triangulierung? wie viele Dreiecke braucht man, um ein Polygon zu triangulieren? 8

5 Existenz von Triangulierungen Satz: Zu jedem einfachen Polygon P gibt es eine Triangulierung Beweis: zeigen durch Induktion über n, dass jedes einfache Polygon P trianguliertwerden kann. 9 Existenz von Triangulierungen Satz: Zu jedem einfachen Polygon P gibt es eine Triangulierung Beweis: zeigen durch Induktion über n, dass jedes einfache Polygon P trianguliertwerden kann. I.A. (n=3): Dann ist P ein Dreieck. 10

6 Existenz von Triangulierungen Satz: Zu jedem einfachen Polygon P gibt es eine Triangulierung Beweis: zeigen durch Induktion über n, dass jedes einfache Polygon P trianguliertwerden kann. I.S.: Sei P ein einfaches Polygon mit n Ecken. Wir zeigen zunächst, dass es in P eine Diagonale gibt. Sei v die lexicographisch kleinste Ecke von P und u sowie w die zu v adjazenten Ecken von P. Fall 1.) Die Strecke uw liegt in P uw ist eine Diagonale 11 Existenz von Triangulierungen Satz: Zu jedem einfachen Polygon P gibt es eine Triangulierung Beweis: zeigen durch Induktion über n, dass jedes einfache Polygon P trianguliertwerden kann. I.S.: Sei P ein einfaches Polygon mit n Ecken. Wir zeigen zunächst, dass es in P eine Diagonale gibt. Sei v die lexicographisch kleinste Ecke von P und u sowie w die zu v adjazenten Ecken von P. Fall 2.) Die Strecke uw schneidet den Rand von P uw ist keine Diagonale. Dann gibt es mindestens eine Ecke von P auf uw oder in dem Dreieck uvw. Sei v die Ecke von P in dem Dreieck uvw die am weitesten von der Strecke uw entfernt ist. Die Strecke vv schneidet keine Kante von P; sonst hätte diese einen Endpunkt innerhalb von uvw der weiter von uw entfernt wäre als v vv ist eine Diagonale.

7 Existenz von Triangulierungen Satz: Zu jedem einfachen Polygon P gibt es eine Triangulierung Beweis: zeigen durch Induktion über n, dass jedes einfache Polygon P trianguliertwerden kann. I.S.: Sei P ein einfaches Polygon mit n Ecken. In P gibt es eine Diagonale. Diese zerlegt P in zwei Polygone L und R mit l bzw. r Ecken, wo l<n und r<n. Nach I.V. kann jedes einfache Polygon mit n <n Ecken trianguliert werden, also ibs. L und R. Damit kann auch P trianguliert werden. 13 Grösse von Triangulierungen Satz: Jede Triangulierung eines einfachen Polygons mit n Ecken besteht aus n2 Dreiecken. Beweis: zeigen durch Induktion über n, dass jede Triangulierung eines einfachen Polygons mit n Ecken aus n2 Dreiecken besteht I.A. (n=3) Dann ist P ein Dreieck, 1=32 I.S. Sei P ein einfaches Polygon mit n Ecken und T eine Triangulierung von P. Sei d eine Diagonale von P aus T, die P in zwei Polygone L und R mit l bzw. r Ecken zerlegt, wobei l<n und r<n. Die Ecken von d gehören zu L und R, also n+2=l+r. Nach I.V. hat jede Triangulierung von L bzw. R l2 bzw. r2 Dreiecke. Damit hat die T gerade (l2)+(r2)=n2 Dreiecke.

8 Zurück zum Museumsproblem Folgerung: Jedes einfache Polygon P mit n Ecken kann mit n2 Kameras bewacht werden. zu P gibt es eine Triangulierung T mit n2 Dreiecken ein Dreieck kann mit einer Kamera bewacht werden Geht es besser? Idee: wähle eine Menge W von Ecken von P mit der Eigenschaft, dass jedes Dreieck aus T mindestens eine Ecke in dieser Menge hat platziere Wächter bei den Ecken aus der Menge W 15 Färbung von Graphen Def. Eine Färbung eines Graphen G=(V,E) ist eine Funktion die jedem Knoten aus V eine Farbe zuordnet, mit der Eigenschaft, dass die Endpunkte jeder Kante aus E dabei unterschiedliche Farben haben. Def. Sei k>0 eine natürliche Zahl. Eine kfärbung eines Graphen G=(V,E) ist eine Färbung von G mit höchstens k Farben. 16

9 3Färbbarkeit von Triangulierungen Satz: Der Graph einer Triangulierung T eines einfachen Polygons P ist 3färbbar. Beweis: (durch Induktion über n) I.A. (n=3) Dann ist P ein Dreieck und damit 3färbbar I.S. Sei P ein einfaches Polygon mit n Ecken und T eine Triangulierung von P sei d=(a,b) eine Diagonale aus T d zerlegt T in zwei Triangulierungen L und R einfacher Polygone mit je < n Ecken nach i.v. sind L und R 3färbbar die Ecken a und b von d gehören zu L und R falls diese Ecken unter den Färbungen von L und R verschiedene Farben erhalten haben, müssen die Farben von L entsprechend permutiert werden 17 Wieder zurück zum Museumsproblem Satz: Jedes einfache Polygon P mit n Ecken kann mit n/3 Kameras bewacht werden. Beweis: finde eine 3Färbung einer Triangulierung von P wähle die kleinste Farbklasse als Menge der Wächter die kleinste Farbklasse hat höchstens n/3 Elemente Satz: Es gibt Polygone mit n Ecken, für die man n/3 Kameras benötigt. Beweis: 18

10 Triangulierung von Polygonen Zerlege das Polygon in monotone Polygone Trianguliere die monotonen Polygone einzeln 19 Monotone Polygone Def. Ein Polygon P heisst monoton bezüglich einer Geraden l, wenn der Durchschnitt des Inneren von P mit jeder Geraden die parallel zu l ist, zusammenhängend ist. Def. Ein Polygon P heisst ymonoton, wenn es monoton bezüglich der xachse ist. P heisst streng ymonoton, wenn es in P keine horizontale Kante gibt. ymonoton nicht ymonoton 20

11 Eigenschaften ymonotoner Polygone wenn ein Polygon P monoton bezüglich einer Geraden l ist, dann ist der Schnitt des Inneren von P mit jeder Geraden die parallel zu l ist, entweder leer, oder ein Punkt, oder eine Strecke wenn man sich auf der linken (rechten) Seite eines ymonotonen Polygons P vom höchsten zum tiefsten Eckpunkt von P bewegt, so bewegt man sich immer horizontal oder nach unten (aber nie nach oben) wenn man sich auf einer Seite eines streng y monotonen Polygons vom höchsten zum tiefsten Eckpunkt bewegt, so bewegt man sich immer nach unten 21 Zerlegung in ymonotone Polygone wir überstreichen ein Polygon P mit einer horizontalen Gerade l und betrachten den Schnitt der Geraden l mit dem Inneren von P dieser Durchschnitt ist eine Menge von Intervallen auf l bei den Ecken von P können Intervalle neue entstehen (StartEcken) verschwinden (EndEcken) verschmelzen (MergeEcken) in zwei Teile zerfallen ( SplitEcken) (kombinatorisch) unverändert bleiben (reguläre Ecken) P l 22

12 Klassifikation von Ecken Eine Ecke p von P ist eine StartEcke gdw. die Nachbarn liegen unterhalb von p und der innere Winkel bei p ist < EndEcke gdw. die Nachbarn liegen oberhalb von p und der innere Winkel bei p ist < MergeEcke gdw. die Nachbarn liegen oberhalb von p und der innere Winkel bei p ist > SplitEcke gdw. die Nachbarn liegen unterhalb von p und der innere Winkel bei p ist > Alle anderen Ecken sind reguläre Ecken P l 23 Charakterisierung ymonotoner Polygone Satz: Ein einfaches Polygon P ist ymonoton gdw. es keine Split und keine MergeEcken hat Beweis: wir zeigen: P ist nicht ymonoton es gibt eine Split oder MergeEcke sei also P nicht ymonoton es gibt eine horizontale Gerade l deren Schnitt mit P aus mindestens zwei Intervallen besteht betrachte das linkeste Intervall pq mit linkem Endpunkt p und rechtem Endpunkt q durchlaufe von q aus den Rand von P so, dass P links liegt sei r der erste Punkt, der wieder auf der Geraden l liegt 24

13 Charakterisierung ymonotoner Polygone Fall 1: r p die höchste Ecke der wir auf dem Weg von q nach r begegnet sind, muss eine Split Ecke gewesen sein p q r Split Ecke l 25 Charakterisierung ymonotoner Polygone Fall 2: r = p durchlaufe von q aus den Rand von P so, dass P rechts liegt; sei r der erste Punkt, der wieder auf der Geraden l liegt r p da ansonsten P nur zwei Schnittpunkte mit l hätte die tiefste Ecke der wir auf dem Weg von q nach r begegnet sind, muss somit eine MergeEckegewesen sein p=r q r Merge Ecke l 26

14 Idee zur Zerlegung in ymonotone Polygone Zerstöre alle Split und Merge Ecken von P arbeite die Ecken von P von oben nach unten ab füge von jeder SplitEcke eine Diagonale nach oben ein füge von jeder MergeEckeeine Diagonale nach unten ein diese Diagonalen dürfen sich nicht schneiden nach vorigem Lemma sind die einzelnen Stücke dann ymonoton 27 Beseitigung von SplitEcken Ziel: füge von jeder SplitEcke s eine Diagonale zu einer Ecke über s ein Sweeplinealgorithmus: Ereignispunkte: Ecken von P Ereignisdatenstruktur: nach y Koordinaten sortierte Liste der Ereignisse erreicht die Sweepline eine SplitEcke s, so wird die Diagonale zur Ecke Helfer(u) eingefügt (geht immer!); dabei ist Helfer(u) :=tiefste Ecke auf dem Polygonzug zwischen u, der linken Nachbarkante von s auf l, und v, der rechten Nachbarkante von s auf l u s Helfer(u) v l 28

15 Beseitigung von MergeEcken Ziel: füge von jeder MergeEcke m eine Diagonale zu einer Ecke unter m ein erreicht die Sweepline eine MergeEcke m gilt: m wird zu Helfer(u), wobei u die linke Nachbarkante von m auf l ist von m aus kann man immer eine Diagonale zur höchsten Ecke p zwischen u und v (der rechten Nachbarkante von s auf l) unterhalb von m eingefügen diese Ecke p ist noch nicht bekannt, wenn die Sweepline m erreicht hat sie kann aber leicht später entdeckt werden: p ist die Ecke, die m als Helfer(u) ablöst u m p v l 29 Sweeplinestatus enthält Liste der Kanten von P die die Sweepline schneiden und P auf ihrer rechten Seite haben, sortiert nach xkoordinaten der Schnittpunkte für jede Kante u einen Eintrag Helfer(u) erforderliche Operationen Einfügen und Löschen von Kanten Finden des linken Nachbarn Ändern der HelferInformation Implementierung: Variante von balancierten Suchbäumen Laufzeit: O(log n) für alle Operationen 30

16 Ereignisliste Prioritätswarteschlange auf den Ecken des Polygons p Priorität definiert durch ykoordinaten; bei gleicher y Koordinate entscheidet die xkoordinate (je kleiner, desto grösser die Priorität) alle Ereignisse stehen am Anfang des Algorithmus fest erforderliche Operationen Initialisieren Finden und Entfernen des nächsten Ereignisses Implementierung: MinHeap Laufzeit: O(n) für Initialisierung O(log n) für Extraktion des nächsten Ereignisses 31 Algorithmus Eingabe: P mit n Ecken in einer DCEL D Ausgabe: Eine Zerlegung von P in ymonotone Polygone in D v 1, v 2,, v n sei die Folge der Ecken von P (geordnet gegen den Uhrzeigersinn) e 1, e 2,, e n sei die Folge der Kanten von P mit e i =v i v i+1 Initialisiere die Ereignisdatenstruktur EPS mit den Ecken von P Initialisiere die Sweeplinedatenstruktur SLS while EPS nicht leer ist do Entferne die Ecke v i mit der höchsten Priorität aus EPS Behandle diese Eckeihrem Typ entsprechend 32

17 Ereignisbehandlung Helfer von Kanten werden geändert Diagonalen werden eingefügt Bei SplitEcken immer Wenn der Helfer einer Kante sich ändert und der alte Helfer eine MergeEckewar Der Status der Sweepline wird geändert 33 Behandlung von StartEcken HandleStartVertex(v i ) Füge e i in SLS ein Setze Helfer(e i )= v i v 5 e 5 34

18 Behandlung von regulären Ecken HandleRegularVertex(v i ) if das Innere von P liegt rechts von v i then if Helfer(e i1 ) ist eine MergeEcke then Füge die Diagonale zwischen v i und Helfer(e i1 ) in D ein Entferne e i1 aus SLS Füge e i in SLS ein Setze Helfer(e i )= v i else Suche in SLS die Kante u links von v i if Helfer(u) ist eine MergeEcke then Füge die Diagonale zwischen v i und Helfer(u) in D ein Setze Helfer(u)= v i v 6 35 Behandlung von MergeEcken HandleMergeVertex(v i ) if Helfer(e i1 ) ist eine MergeEcke then Füge die Diagonale zwischen v i und Helfer(e i1 ) in D ein Entferne e i1 aus SLS Suche in SLS die Kante u links von v i if Helfer(u) ist eine MergeEcke then Füge die Diagonale zwischen v i und Helfer(u) in D ein Setze Helfer(u)= v i u=e 9 v 8 e 7 Helfer(e 7 ) 36

19 Behandlung von SplitEcken HandleSplitVertex(v i ) Suche in SLS die Kante u links von v i Füge die Diagonale zwischen v i und Helfer(u) in D ein Setze Helfer(u)= v i Füge e i in SLS ein Setze Helfer(e i )= v i u=e 9 Helfer(e 9 ) v e 37 Behandlung von EndEcken HandleEndVertex(v i ) if Helfer(e i1 ) ist eine MergeEcke then Füge die Diagonale zwischen v i und Helfer(e i1 ) in D ein Entferne e i1 aus SLS Helfer(e ) e v 15 38

20 Beispiel Beispiel HandleStartVertex(v i ) Füge e i in SLS ein Setze Helfer(e i )= v i

21 Beispiel HandleStartVertex(v i ) Füge e i in SLS ein Setze Helfer(e i )= v i Beispiel HandleMergeVertex(v i ) if Helfer(e i1 ) ist eine MergeEckethen Füge die Diagonale zwischen v i und Helfer(e i 1 ) in D ein Entferne e i 1 aus SLS Suche in SLS die Kante u links von v i if Helfer(u) ist einemergeeckethen Füge die Diagonale zwischen v i und Helfer(u) in D ein Setze Helfer(u)= v i

22 Beispiel HandleRegularVertex(v i ) if das Innere von P liegt rechts von v i then if Helfer(e i 1 ) ist eine MergeEckethen Füge die Diagonale zwischen v i und Helfer(e i 1 ) in D ein Entferne e i 1 aus SLS Füge e i in SLS ein Setze Helfer(e i )= v i else Suche in SLS die Kante u links von v i if Helfer(u) ist einemergeeckethen Füge die Diagonale zwischen v i und Helfer(u) in D ein Setze Helfer(u)= v i Beispiel HandleRegularVertex(v i ) if das Innere von P liegt rechts von v i then if Helfer(e i 1 ) ist eine MergeEckethen Füge die Diagonale zwischen v i und Helfer(e i 1 ) in D ein Entferne e i 1 aus SLS Füge e i in SLS ein Setze Helfer(e i )= v i else Suche in SLS die Kante u links von v i if Helfer(u) ist einemergeeckethen Füge die Diagonale zwischen v i und Helfer(u) in D ein Setze Helfer(u)= v i

23 Beispiel HandleStartVertex(v i ) Füge e i in SLS ein Setze Helfer(e i )= v i Beispiel HandleStartVertex(v i ) Füge e i in SLS ein Setze Helfer(e i )= v i

24 Beispiel HandleMergeVertex(v i ) if Helfer(e i1 ) ist eine MergeEckethen Füge die Diagonale zwischen v i und Helfer(e i 1 ) in D ein Entferne e i 1 aus SLS Suche in SLS die Kante u links von v i if Helfer(u) ist einemergeeckethen Füge die Diagonale zwischen v i und Helfer(u) in D ein Setze Helfer(u)= v i Beispiel HandleMergeVertex(v i ) if Helfer(e i1 ) ist eine MergeEckethen Füge die Diagonale zwischen v i und Helfer(e i 1 ) in D ein Entferne e i 1 aus SLS Suche in SLS die Kante u links von v i if Helfer(u) ist einemergeeckethen Füge die Diagonale zwischen v i und Helfer(u) in D ein Setze Helfer(u)= v i

25 Beispiel HandleSplitVertex(v i ) Suche in SLS die Kante u links von v i Füge die Diagonale zwischen v i und Helfer(u) in D ein Setze Helfer(u)= v i Füge e i in SLS ein Setze Helfer(e i )= v i 49 Beispiel HandleEndVertex(v i ) if Helfer(e i1 ) ist eine MergeEckethen Füge die Diagonale zwischen v i und Helfer(e i 1 ) in D ein Entferne e i 1 aus SLS

26 Beispiel HandleRegularVertex(v i ) if das Innere von P liegt rechts von v i then if Helfer(e i 1 ) ist eine MergeEckethen Füge die Diagonale zwischen v i und Helfer(e i 1 ) in D ein Entferne e i 1 aus SLS Füge e i in SLS ein Setze Helfer(e i )= v i else Suche in SLS die Kante u links von v i if Helfer(u) ist einemergeeckethen Füge die Diagonale zwischen v i und Helfer(u) in D ein Setze Helfer(u)= v i Beispiel HandleSplitVertex(v i ) Suche in SLS die Kante u links von v i Füge die Diagonale zwischen v i und Helfer(u) in D ein Setze Helfer(u)= v i Füge e i in SLS ein Setze Helfer(e i )= v i 52

27 Beispiel HandleEndVertex(v i ) if Helfer(e i1 ) ist eine MergeEckethen Füge die Diagonale zwischen v i und Helfer(e i 1 ) in D ein Entferne e i 1 aus SLS Beispiel HandleEndVertex(v i ) if Helfer(e i1 ) ist eine MergeEckethen Füge die Diagonale zwischen v i und Helfer(e i 1 ) in D ein Entferne e i 1 aus SLS

28 Beispiel Korrektheit Satz: der Algorithmus beseitigt alle Merge und SplitEcken die eingefügten Diagonalen sind gültig schneiden keine Kanten von P schneiden sich nicht Beweis: der Algorithmus beseitigt alle Merge und SplitEcken folgt aus vorigen Überlegungen die eingefügten Diagonalen sind gültig wir zeigen: wenn eine neue Diagonale d eingefügt wird schneidet sie keine Kante von P schneidet sie keine der vorher eingefügten Diagonalen 56

29 Korrektheit angenommen die Diagonale d=pq wird in der Prozedur HandleSplitVertex(p) eingefügt sei u die Kante links von p und v die Kante rechts von p und somit Helfer(u)=q sei Q das Viereck, das durch die Kanten u und v sowie die beiden horizontalen Geraden durch p und q beschränkt ist; da Helfer(u)=q, enthält Q keine Ecken von P d schneidet keine Kante von P: angenommen, eine Kante w schneidet die Diagonale d da die Ecken von w nicht in Q liegen können und sich die Ecken von P nicht schneiden, muss w den oberen oder unteren Rand von Q links von d schneiden das steht im Widerspruch dazu, dass u der linke Nachbar von p und q ist u u Q Q q p q p w v v 57 Korrektheit angenommen die Diagonale d=pq wird in der Prozedur HandleSplitVertex(p) eingefügt sei u die Kante links von p und v die Kante rechts von p und somit Helfer(u)=q sei Q das Viereck, das durch die Kanten u und v sowie die beiden horizontalen Geraden durch p und q beschränkt ist; da Helfer(u)=q, enthält Q keine Ecken von P d schneidet keine der vorher eingefügten Diagonalen: jede bisher eingefügte Diagonale hat beiden Endpunkte über p in Q gibt es keine Ecken von P u Q p q v 58

30 Korrektheit analog zeigt man, dass Diagonalen die in den Prozeduren HandleStartVertex(), HandleEndVertex(), HandleRegularVertex(), und HandleMergeVertex() eingefügt werden keine der Kante von P schneiden und keine der vorher eingefügten Diagonalen schneiden 59 Analyse Satz: Der Algorithmus läuft in O(n log n) Zeit Beweis: Initialisierung der Ereignisdatenstruktur: O(n) Behandlung aller Ereignisse (ohne Manipulation von D): O(n log n) es gibt genau n Ereignisse ein Ereignis kann in O(log n) behandelt werden entfernen des nächsten Ereignisses: O(log n) O(1) Operationen auf SLS: O(log n) Gesamtkosten für Einfügen der Diagonalen: O(n) pro Ereignis maximal 2 Kanten in D eingefügt: O(Größe der kleineren Facette) Kosten pro Diagonale jede Diagonale d trennt eine Facette ab bis auf d werden deren Kanten beim Einfügen neuer Diagonalen nicht wieder durchlaufen d wird höchstens noch ein Mal durchlaufen, wenn seine gegenüberliegende Facette durch eine weitere Diagonale abgetrennt wird 60

31 Triangulieren streng ymonotoner Polygone Idee arbeite die Ecken von oben nach unten ab (Ecken mit derselben ykoordinaten von links nach rechts) speichere in einem Stack die Ecken die bereits entdeckt, aber noch nicht für eine Diagonale verwendet wurden wenn eine neue Ecke entdeckt wird, dann füge von dort aus so viel Diagonalen wie möglich zu den Ecken, die auf dem Stack liegen ein jede Diagonale spaltet ein Dreieck vom Polygon ab und entfernt eine Ecke vom Stack noch nicht trianguliert abgespaltene Dreiecke 61 Die Struktur der Ecken im Stack wir erhalten folgende Invariante aufrecht: das Stück F von P oberhalb der letzten (tiefsten) entdeckten Ecke das noch nicht trianguliert ist (also die Ecken im Stack), bildet einen Funnel eine Seite von F ist ein Polygonzug, der mit Ausnahme der tiefsten Ecke (= dem obersten Element auf dem Stack) nur aus Reflexecken (Winkel im Polygoninnern > 180º) besteht die andere Seite von F ist Teil einer Kante Funnel des Polygons (deren unterer Endpunkt noch Teilkante nicht entdeckt wurde) abgespaltene Dreiecke Reflexecken letzte entdeckte Ecke 62

32 Bearbeiten der nächsten Ecke: 1.Fall die nächste Ecke n liegt auf der gegenüberliegenden Seite der Reflexecken n ist der untere Endpunkt der Teilkante e des Funnel t sei oberer Endpunkt von e = höchste (und letzte) Ecke auf dem Stack aufgrund der FunnelStruktur können von n aus zu allen Reflexecken bis auf t Diagonalen eingefügt werden n e t 63 Bearbeiten der nächsten Ecke: 1. Fall Vorgehensweise: b sei die tiefste Reflexecke = erstes Element auf dem Stack entferne alle Reflexecken vom Stack und füge dabei die Diagonalen hinzu (ausser zu t) lege b und n auf den Stack die Ecken im Stack bilden wieder einen Funnel pop n e t pop pop pop/push b push 64

33 Bearbeiten der nächsten Ecke: 2. Fall die nächste Ecke n liegt auf der Seite der Reflexecken b sei tiefste Reflexecke (= erstes Element auf dem Stack), s sei das nächste Element auf dem Stack aufgrund der FunnelStruktur bilden die Reflexecken zu denen von n aus Diagonalen eingefügt werden können ein (evt. leeres) Anfangsstück des Stacks, angefangen mit s von n kann eine Diagonale zu v eingefügt werden, gdw. nuv ein Linksknick ist (u ist die vor v bearbeitete Reflexecke) v u n s b 65 Bearbeiten der nächsten Ecke: 2. Fall Vorgehensweise: entferne b vom Stack solange noch Reflexecken auf dem Stack liegen, prüfe, ob von der obersten Ecke im Stack eine Diagonale zu n eingefügt werden kann falls ja, füge diese Diagonale ein und entferne die oberste Ecke aus dem Stack lege die letzte Reflexecke die entfernt wurde zurück auf den Stack lege n auf den Stack v u n s b 66

34 Bearbeiten der nächsten Ecke: 2. Fall die Ecken im Stack bilden wieder einen Funnel s b pop/push push n pop/push v pop pop u s b pop n push 67 Überblick Algorithmus: Sweeplineverfahren Ereignisse : Endpunkte der Strecken Ereignisdatenstruktur: nach ykoordinaten sortierte Liste der Ereignisse Status der Sweepline: Folge der Ecken oberhalb der Sweepline die noch nicht für eine Diagonale verwendet wurden, nach ykoordinaten sortiert (Funnel) Datenstruktur für den Sweeplinestatus Stack 68

35 Algorithmus Eingabe: streng ymonotones Polygon P mit n Ecken in einer DCEL D Ausgabe: Triangulierung von P in der DCEL D Vorverarbeitung: Verschmelze den linken und rechten Rand von P zu einer nachaufsteigenden ykoordinaten sortierten Folge u 1, u 2,, u n von Ecken (wobei Ecken mit derselben y Koordinaten aufsteigend nachxkoordinaten sortiert werden) 69 Algorithmus Lege u 1 und u 2 auf den Stack S for j=3 to (n1) if (u j und top(s) sind auf verschiedenen Seiten von P) then Entferne alle Ecken aus S Füge in D die Diagonalen von u j zu allen aus S gelöschten Ecken ein (bis auf die letzte) Lege u j1 und u j auf den Stack S else Entferne die oberste Ecke von S Entferne jeweils die oberste Ecke von S und füge in D die Diagonale von u j zu der entfernten Ecke ein, solange diese Diagonale ganz in P liegt Lege die letzte aus S gelöschte Ecke und u j auf den Stack S Füge in D die Diagonalen von u n zu allen Ecken in S ein (bis auf die letzte und die erste) 70

36 71 Beispiel dab c d e f g h i Diagonalen Stack Ereignis a b c d e f g i h 72 Beispiel ab dabc c d e f g h i Diagonalen Stack Ereignis a b c d e f g i h

37 73 Beispiel ab abc c dc cdg d e f g h i Diagonalen Stack Ereignis a b c d e f g i h 74 Beispiel ab abc c dc,db cdg d e f g h i Diagonalen Stack Ereignis a b c d e f g i h

38 75 Beispiel ab abc c dc,db cd d ec ceg e f g h i Diagonalen Stack Ereignis a b c d e f g i h 76 Beispiel ab abc c dc,db cd d ec ce e fc cfg f g h i Diagonalen Stack Ereignis a b c d e f g i h

39 77 Beispiel ab abc c dc,db cd d ec ce e fc cf f gf hfg g h i Diagonalen Stack Ereignis a b c d e f g i h 78 Beispiel ab abc c dc,db cd d ec ce e fc cf f gf fg g hg gh h i Diagonalen Stack Ereignis a b c d e f g i h

40 Analyse Der Algorithmus läuft in O(n) Zeit die Initialisierung erfordert O(n) Zeit die Schleife erfordert O(n) Zeit die Laufzeit der Schleife ist proportional zur Anzahl der push und pop Operationen auf dem Stack in jedem Durchlauf der Schleife werden höchtens zwei Ecken auf den Stack gelegt die Anzahl der pop Operationen ist höchstens so gross wie die Anzahl der push Operationen das Hinzufügen von Diagonalen im letzten Schritt erfordert O(n) Zeit 79 Triangulieren ymonotoner Polygone Der Algorithmus funktioniert auch für ymonotone Polygone mit horizontalen Kanten 80

Vorlesung Algorithmische Geometrie. Streckenschnitte. Martin Nöllenburg 19.04.2011

Vorlesung Algorithmische Geometrie. Streckenschnitte. Martin Nöllenburg 19.04.2011 Vorlesung Algorithmische Geometrie LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 19.04.2011 Überlagern von Kartenebenen Beispiel: Gegeben zwei

Mehr

6. Algorithmen der Computer-Geometrie

6. Algorithmen der Computer-Geometrie 6. Algorithmen der Computer-Geometrie 1. Einführung 2. Schnitt von zwei Strecken 3. Punkt-in-Polygon-Test 4. Schnitt orthogonaler Strecken 5. Punkteinschlussproblem Geo-Informationssysteme 146 6.1 Computer-Geometrie

Mehr

Literatur. Dominating Set (DS) Dominating Sets in Sensornetzen. Problem Minimum Dominating Set (MDS)

Literatur. Dominating Set (DS) Dominating Sets in Sensornetzen. Problem Minimum Dominating Set (MDS) Dominating Set 59 Literatur Dominating Set Grundlagen 60 Dominating Set (DS) M. V. Marathe, H. Breu, H.B. Hunt III, S. S. Ravi, and D. J. Rosenkrantz: Simple Heuristics for Unit Disk Graphs. Networks 25,

Mehr

3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel

3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel 3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel EADS 3.1 Konstruktion von minimalen Spannbäumen 16/36

Mehr

4 Greedy-Algorithmen (gierige Algorithmen)

4 Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen werden oft für die exakte oder approximative Lösung von Optimierungsproblemen verwendet. Typischerweise konstruiert ein Greedy-Algorithmus eine

Mehr

Effiziente Algorithmen und Datenstrukturen I. Kapitel 9: Minimale Spannbäume

Effiziente Algorithmen und Datenstrukturen I. Kapitel 9: Minimale Spannbäume Effiziente Algorithmen und Datenstrukturen I Kapitel 9: Minimale Spannbäume Christian Scheideler WS 008 19.0.009 Kapitel 9 1 Minimaler Spannbaum Zentrale Frage: Welche Kanten muss ich nehmen, um mit minimalen

Mehr

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete Kapitel 4: Dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2012/13 Prof. Dr. Sándor Fekete 4.4 Binäre Suche Aufgabenstellung: Rate eine Zahl zwischen 100 und 114! Algorithmus 4.1 INPUT: OUTPUT:

Mehr

13. Binäre Suchbäume

13. Binäre Suchbäume 1. Binäre Suchbäume Binäre Suchbäume realiesieren Wörterbücher. Sie unterstützen die Operationen 1. Einfügen (Insert) 2. Entfernen (Delete). Suchen (Search) 4. Maximum/Minimum-Suche 5. Vorgänger (Predecessor),

Mehr

Algorithmentheorie. 13 - Maximale Flüsse

Algorithmentheorie. 13 - Maximale Flüsse Algorithmentheorie 3 - Maximale Flüsse Prof. Dr. S. Albers Prof. Dr. Th. Ottmann . Maximale Flüsse in Netzwerken 5 3 4 7 s 0 5 9 5 9 4 3 4 5 0 3 5 5 t 8 8 Netzwerke und Flüsse N = (V,E,c) gerichtetes Netzwerk

Mehr

Das Briefträgerproblem

Das Briefträgerproblem Das Briefträgerproblem Paul Tabatabai 30. Dezember 2011 Inhaltsverzeichnis 1 Problemstellung und Modellierung 2 1.1 Problem................................ 2 1.2 Modellierung.............................

Mehr

Abschnitt: Algorithmendesign und Laufzeitanalyse

Abschnitt: Algorithmendesign und Laufzeitanalyse Abschnitt: Algorithmendesign und Laufzeitanalyse Definition Divide-and-Conquer Paradigma Divide-and-Conquer Algorithmen verwenden die Strategien 1 Divide: Teile das Problem rekursiv in Subproblem gleicher

Mehr

Computer Graphik I Polygon Scan Conversion

Computer Graphik I Polygon Scan Conversion 11/23/09 lausthal omputer raphik I Polygon Scan onversion. Zachmann lausthal University, ermany zach@in.tu-clausthal.de Klassifikation der Polygone Konvex Für jedes Punktepaar in einem konvexen Polygon

Mehr

Datenstruktur, die viele Operationen dynamischer Mengen unterstützt

Datenstruktur, die viele Operationen dynamischer Mengen unterstützt Algorithmen und Datenstrukturen 265 10 Binäre Suchbäume Suchbäume Datenstruktur, die viele Operationen dynamischer Mengen unterstützt Kann als Wörterbuch, aber auch zu mehr eingesetzt werden (Prioritätsschlange)

Mehr

Algorithmen und Datenstrukturen (WS 2007/08) 63

Algorithmen und Datenstrukturen (WS 2007/08) 63 Kapitel 6 Graphen Beziehungen zwischen Objekten werden sehr oft durch binäre Relationen modelliert. Wir beschäftigen uns in diesem Kapitel mit speziellen binären Relationen, die nicht nur nur besonders

Mehr

Der linke Teilbaum von v enthält nur Schlüssel < key(v) und der rechte Teilbaum enthält nur Schlüssel > key(v)

Der linke Teilbaum von v enthält nur Schlüssel < key(v) und der rechte Teilbaum enthält nur Schlüssel > key(v) Ein Baum T mit Knotengraden 2, dessen Knoten Schlüssel aus einer total geordneten Menge speichern, ist ein binärer Suchbaum (BST), wenn für jeden inneren Knoten v von T die Suchbaumeigenschaft gilt: Der

Mehr

Wie löst man Mathematikaufgaben?

Wie löst man Mathematikaufgaben? Wie löst man Mathematikaufgaben? Manfred Dobrowolski Universität Würzburg Wie löst man Mathematikaufgaben? 1 Das Schubfachprinzip 2 Das Invarianzprinzip 3 Das Extremalprinzip Das Schubfachprinzip Verteilt

Mehr

S=[n] Menge von Veranstaltungen J S kompatibel mit maximaler Größe J

S=[n] Menge von Veranstaltungen J S kompatibel mit maximaler Größe J Greedy-Strategie Definition Paradigma Greedy Der Greedy-Ansatz verwendet die Strategie 1 Top-down Auswahl: Bestimme in jedem Schritt eine lokal optimale Lösung, so dass man eine global optimale Lösung

Mehr

Praktikum Planare Graphen

Praktikum Planare Graphen 1 Praktikum Planare Graphen Michael Baur, Martin Holzer, Steffen Mecke 10. November 2006 Einleitung Gliederung 2 Grundlagenwissen zu planaren Graphen Themenvorstellung Gruppeneinteilung Planare Graphen

Mehr

Algorithmen II Vorlesung am 15.11.2012

Algorithmen II Vorlesung am 15.11.2012 Algorithmen II Vorlesung am 15.11.2012 Kreisbasen, Matroide & Algorithmen INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales

Mehr

Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen

Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen Was bisher geschah abstrakter Datentyp : Signatur Σ und Axiome Φ z.b. ADT Menge zur Verwaltung (Finden, Einfügen, Entfernen) mehrerer Elemente desselben Typs Spezifikation einer Schnittstelle Konkreter

Mehr

Modelle und Statistiken

Modelle und Statistiken Kapitel 4 Modelle und Statistiken In letzter Zeit werden vermehrt Parameter (Gradfolgen, Kernzahlfolgen, etc.) empirischer Graphen (Internet, WWW, Proteine, etc.) berechnet und diskutiert. Insbesondere

Mehr

5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c)

5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c) 5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c) mit V = {1,...,n} und E {(v, w) 1 apple v, w apple n, v 6= w}. c : E!

Mehr

8 Diskrete Optimierung

8 Diskrete Optimierung 8 Diskrete Optimierung Definition 8.1. Ein Graph G ist ein Paar (V (G), E(G)) besteh aus einer lichen Menge V (G) von Knoten (oder Ecken) und einer Menge E(G) ( ) V (G) 2 von Kanten. Die Ordnung n(g) von

Mehr

Algorithmen und Datenstrukturen. Große Übung vom 29.10.09 Nils Schweer

Algorithmen und Datenstrukturen. Große Übung vom 29.10.09 Nils Schweer Algorithmen und Datenstrukturen Große Übung vom 29.10.09 Nils Schweer Diese Folien Braucht man nicht abzuschreiben Stehen im Netz unter www.ibr.cs.tu-bs.de/courses/ws0910/aud/index.html Kleine Übungen

Mehr

Punktbeschriftung in Dynamischen Karten

Punktbeschriftung in Dynamischen Karten Vorlesung Algorithmische Kartografie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Benjamin Niedermann Martin Nöllenburg 28.05.2015 1 Übungen Nachtrag 1) Überlegen Sie sich, wie man den

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Binäre Suchbäume Einführung und Begriffe Binäre Suchbäume 2 Binäre Suchbäume Datenstruktur für dynamische Mengen

Mehr

Sortierte Folgen 250

Sortierte Folgen 250 Sortierte Folgen 250 Sortierte Folgen: he 1,...,e n i mit e 1 apple applee n kennzeichnende Funktion: M.locate(k):= addressof min{e 2 M : e k} Navigations Datenstruktur 2 3 5 7 11 13 17 19 00 Annahme:

Mehr

Teil III: Routing - Inhalt I. Literatur. Geometric Routing. Voraussetzungen. Unit Disk Graph (UDG) Geometric Routing 29

Teil III: Routing - Inhalt I. Literatur. Geometric Routing. Voraussetzungen. Unit Disk Graph (UDG) Geometric Routing 29 1 29 Teil III: Routing - Inhalt I Literatur Compass & Face Routing Bounded & Adaptive Face Routing Nicht Ω(1) UDG E. Kranakis, H. Singh und Jorge Urrutia: Compass Routing on Geometric Networks. Canadian

Mehr

Graphen: Datenstrukturen und Algorithmen

Graphen: Datenstrukturen und Algorithmen Graphen: Datenstrukturen und Algorithmen Ein Graph G = (V, E) wird durch die Knotenmenge V und die Kantenmenge E repräsentiert. G ist ungerichtet, wenn wir keinen Start- und Zielpunkt der Kanten auszeichnen.

Mehr

Guten Morgen und Willkommen zur Saalübung!

Guten Morgen und Willkommen zur Saalübung! Guten Morgen und Willkommen zur Saalübung! 1 Wie gewinnt man ein Spiel? Was ist ein Spiel? 2 Verschiedene Spiele Schach, Tic-Tac-Toe, Go Memory Backgammon Poker Nim, Käsekästchen... 3 Einschränkungen Zwei

Mehr

- k Maximalwerte aus Menge mit n >> k Elementen (Rangfolgebestimmung von Suchmaschinen!) Die typische Operationen:

- k Maximalwerte aus Menge mit n >> k Elementen (Rangfolgebestimmung von Suchmaschinen!) Die typische Operationen: 6 Partiell geordnete binäre Bäume: Heap (Haufen) Motivation für manchen Anwendungen nur partielle Ordnung der Elemente statt vollständiger nötig, z.b. - Prioritätsschlange: nur das minimale (oder maximale)

Mehr

Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis

Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 13./14. VO DAP2 SS 2009 2./4. Juni 2009 1 2. Übungstest

Mehr

Seminararbeit für das SE Reine Mathematik- Graphentheorie

Seminararbeit für das SE Reine Mathematik- Graphentheorie Seminararbeit für das SE Reine Mathematik- Graphentheorie Der binäre Rang, der symplektische Graph, die Spektralzerlegung und rationale Funktionen Vortrag am 24.01.2012 Heike Farkas 0410052 Inhaltsverzeichnis

Mehr

14 Teiler verschieben

14 Teiler verschieben 14 Teiler verschieben In diesem Werkzeug sind alle Funktionen zusammengefasst, die Sie zum Verschieben, Ausrichten oder Drehen von Teilern benötigen. Als Teiler werden in diesem Zusammenhang Pfosten, Riegel,

Mehr

16. All Pairs Shortest Path (ASPS)

16. All Pairs Shortest Path (ASPS) . All Pairs Shortest Path (ASPS) All Pairs Shortest Path (APSP): Eingabe: Gewichteter Graph G=(V,E) Ausgabe: Für jedes Paar von Knoten u,v V die Distanz von u nach v sowie einen kürzesten Weg a b c d e

Mehr

Grundlagen der Programmierung 2. Bäume

Grundlagen der Programmierung 2. Bäume Grundlagen der Programmierung 2 Bäume Prof. Dr. Manfred Schmidt-Schauÿ Künstliche Intelligenz und Softwaretechnologie 24. Mai 2006 Graphen Graph: Menge von Knoten undzugehörige (gerichtete oder ungerichtete)

Mehr

Grundregeln der Perspektive und ihre elementargeometrische Herleitung

Grundregeln der Perspektive und ihre elementargeometrische Herleitung Vortrag zu Mathematik, Geometrie und Perspektive von Prof. Dr. Bodo Pareigis am 15.10.2007 im Vorlesungszyklus Naturwissenschaften und Mathematische Wissenschaften im Rahmen des Seniorenstudiums der LMU.

Mehr

Algorithmen und Datenstrukturen Suchbaum

Algorithmen und Datenstrukturen Suchbaum Algorithmen und Datenstrukturen Suchbaum Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Motivation Datenstruktur zur Repräsentation dynamischer Mengen

Mehr

9.4 Binäre Suchbäume. Xiaoyi Jiang Informatik II Datenstrukturen und Algorithmen

9.4 Binäre Suchbäume. Xiaoyi Jiang Informatik II Datenstrukturen und Algorithmen 9.4 Binäre Suchbäume Erweiterung: Einfügen an der Wurzel Standardimplementierung: Der neue Schlüssel wird am Ende des Suchpfades angefügt (natürlich, weil zuerst festgestellt werden muss, ob der Schlüssel

Mehr

WS 2009/10. Diskrete Strukturen

WS 2009/10. Diskrete Strukturen WS 2009/10 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws0910

Mehr

Um Übergänge, Ein- und Ausblendung zu gestalten, kann man hier eine Leere vor oder nach einem Clip einfügen. Ein Clip ist ein einzelner Film.

Um Übergänge, Ein- und Ausblendung zu gestalten, kann man hier eine Leere vor oder nach einem Clip einfügen. Ein Clip ist ein einzelner Film. Hier fügt man eine Videodatei (z.b. mp4) hinzu. Man wählt die gewünschte Datei aus und drückt auf öffnen. Um Übergänge, Ein- und Ausblendung zu gestalten, kann man hier eine Leere vor oder nach einem Clip

Mehr

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Entscheidungsbäume Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Definition Entscheidungsbaum Sei T ein Binärbaum und A = {a 1,..., a n } eine zu sortierenden Menge. T ist ein Entscheidungsbaum

Mehr

Gliederung. Definition Wichtige Aussagen und Sätze Algorithmen zum Finden von Starken Zusammenhangskomponenten

Gliederung. Definition Wichtige Aussagen und Sätze Algorithmen zum Finden von Starken Zusammenhangskomponenten Gliederung Zusammenhang von Graphen Stark Zusammenhängend K-fach Zusammenhängend Brücken Definition Algorithmus zum Finden von Brücken Anwendung Zusammenhangskomponente Definition Wichtige Aussagen und

Mehr

Suchen und Sortieren Sortieren. Heaps

Suchen und Sortieren Sortieren. Heaps Suchen und Heaps (Folie 245, Seite 63 im Skript) 3 7 21 10 17 31 49 28 14 35 24 42 38 Definition Ein Heap ist ein Binärbaum, der die Heapeigenschaft hat (Kinder sind größer als der Vater), bis auf die

Mehr

AVL-Bäume Analyse. Theorem Ein AVL-Baum der Höhe h besitzt zwischen F h und 2 h 1 viele Knoten. Definition Wir definieren die nte Fibonaccizahl:

AVL-Bäume Analyse. Theorem Ein AVL-Baum der Höhe h besitzt zwischen F h und 2 h 1 viele Knoten. Definition Wir definieren die nte Fibonaccizahl: AVL-Bäume Analyse (Folie 85, Seite 39 im Skript) Theorem Ein AVL-Baum der Höhe h besitzt zwischen F h und 2 h 1 viele Knoten. Definition Wir definieren die nte Fibonaccizahl: 0 falls n = 0 F n = 1 falls

Mehr

Methoden des Algorithmenentwurfs Kapitel 2.2: Randomisierte Online Algorithmen

Methoden des Algorithmenentwurfs Kapitel 2.2: Randomisierte Online Algorithmen Methoden des Algorithmenentwurfs Kapitel 2.2: Randomisierte Online Algorithmen Christian Scheideler SS 2009 16.07.2009 Kapitel 2 1 Übersicht Notation Paging Selbstorganisierende Suchstrukturen Finanzielle

Mehr

Lernziele: Ausgleichstechniken für binäre Bäume verstehen und einsetzen können.

Lernziele: Ausgleichstechniken für binäre Bäume verstehen und einsetzen können. 6. Bäume Lernziele 6. Bäume Lernziele: Definition und Eigenschaften binärer Bäume kennen, Traversierungsalgorithmen für binäre Bäume implementieren können, die Bedeutung von Suchbäumen für die effiziente

Mehr

Computer Graphik II Tesselierung impliziter Kurven und Flächen

Computer Graphik II Tesselierung impliziter Kurven und Flächen Computer Graphik II impliziter Kurven und Flächen 1 impliziter Flächen Problem: Nullstellenmenge kann nicht explizit berechnet werden! Lösung: ApproximaCon der Fläche auf Zellen Beispiel 2D: f p ( )

Mehr

Darstellende Geometrie Übungen. Tutorial. Übungsblatt: Perspektive - Rekonstruktion

Darstellende Geometrie Übungen. Tutorial. Übungsblatt: Perspektive - Rekonstruktion Darstellende Geometrie Übungen Institut für Architektur und Medien Tutorial Übungsblatt: Perspektive - Rekonstruktion Gegeben sind ein Foto von einem quaderförmigen Objekt sowie die Abmessungen des Basisrechteckes.

Mehr

Kap. 4.2: Binäre Suchbäume

Kap. 4.2: Binäre Suchbäume Kap. 4.2: Binäre Suchbäume Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 11. VO DAP2 SS 2009 26. Mai 2009 1 Zusätzliche Lernraumbetreuung Morteza Monemizadeh:

Mehr

Expander Graphen und Ihre Anwendungen

Expander Graphen und Ihre Anwendungen Expander Graphen und Ihre Anwendungen Alireza Sarveniazi Mathematisches Institut Universität Göttingen 21.04.2006 Alireza Sarveniazi (Universität Göttingen) Expander Graphen und Ihre Anwendungen 21.04.2006

Mehr

Computer Graphik I Polygon Scan Conversion

Computer Graphik I Polygon Scan Conversion omputer raphik I Polygon Scan onversion lausthal Klassifikation der Polygone Konvex Für jedes Punktepaar in einem konvexen Polygon liegt die Verbindung auch innerhalb des Polygons. Zachmann lausthal University,

Mehr

5. Verschiedene Repräsentanten

5. Verschiedene Repräsentanten 5. Verschiedene Repräsentanten 5.1. Die Sätze Hall und König Sei I := {1,...,n}, und sei A(I) = (A 1,...,A n ) eine Familie von Teilmengen einer endlichen Menge E. Zu K I seien A(K) := (A i : i K) und

Mehr

Abiturprüfung Mathematik 2008 (Baden-Württemberg) Berufliche Gymnasien ohne TG Analysis, Aufgabe 1

Abiturprüfung Mathematik 2008 (Baden-Württemberg) Berufliche Gymnasien ohne TG Analysis, Aufgabe 1 Abiturprüfung Mathematik (Baden-Württemberg) Berufliche Gymnasien ohne TG Analysis, Aufgabe Für jedes t f t () + t R ist die Funktion f t gegeben durch = mit R. Das Schaubild von f t heißt K t.. (6 Punkte)

Mehr

Repetitionsaufgaben: Lineare Funktionen

Repetitionsaufgaben: Lineare Funktionen Kantonale Fachschaft Mathematik Repetitionsaufgaben: Lineare Funktionen Zusammengestellt von Irina Bayer-Krakvina, KSR Lernziele: - Wissen, was ein Steigungsdreieck einer Geraden ist und wie die Steigungszahl

Mehr

Das Falten-und-Schneiden Problem

Das Falten-und-Schneiden Problem Das Falten-und-Schneiden Problem Kristian Bredies Uttendorf, 14. Februar 2005 Inhalt Einleitung Origami Das Falten-und-Schneiden Problem Mathematische Analyse Flaches Origami Lokale Eigenschaften Faltbarkeit

Mehr

Teil 2 - Softwaretechnik. Modul: Programmierung B-PRG Grundlagen der Programmierung 1 Teil 2. Übersicht. Softwaretechnik

Teil 2 - Softwaretechnik. Modul: Programmierung B-PRG Grundlagen der Programmierung 1 Teil 2. Übersicht. Softwaretechnik Grundlagen der Programmierung 1 Modul: Programmierung B-PRG Grundlagen der Programmierung 1 Teil 2 Softwaretechnik Prof. Dr. O. Drobnik Professur Architektur und Betrieb verteilter Systeme Institut für

Mehr

WS 2013/14. Diskrete Strukturen

WS 2013/14. Diskrete Strukturen WS 2013/14 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws1314

Mehr

Algorithmen & Datenstrukturen 1. Klausur

Algorithmen & Datenstrukturen 1. Klausur Algorithmen & Datenstrukturen 1. Klausur 7. Juli 2010 Name Matrikelnummer Aufgabe mögliche Punkte erreichte Punkte 1 35 2 30 3 30 4 15 5 40 6 30 Gesamt 180 1 Seite 2 von 14 Aufgabe 1) Programm Analyse

Mehr

SOI 2013. Die Schweizer Informatikolympiade

SOI 2013. Die Schweizer Informatikolympiade SOI Die Schweizer Informatikolympiade Lösung SOI Wie schreibe ich eine gute Lösung? Bevor wir die Aufgaben präsentieren, möchten wir dir einige Tipps geben, wie eine gute Lösung für die theoretischen

Mehr

Graphentheorie. Organisatorisches. Organisatorisches. Organisatorisches. Rainer Schrader. 23. Oktober 2007

Graphentheorie. Organisatorisches. Organisatorisches. Organisatorisches. Rainer Schrader. 23. Oktober 2007 Graphentheorie Rainer Schrader Organisatorisches Zentrum für Angewandte Informatik Köln 23. Oktober 2007 1 / 79 2 / 79 Organisatorisches Organisatorisches Dozent: Prof. Dr. Rainer Schrader Weyertal 80

Mehr

Algorithmen und Datenstrukturen Balancierte Suchbäume

Algorithmen und Datenstrukturen Balancierte Suchbäume Algorithmen und Datenstrukturen Balancierte Suchbäume Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Überblick Einführung Einfügen und Löschen Einfügen

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2 Algorithmen und Datenstrukturen 2 Sommersemester 2007 4. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de Traversierung Durchlaufen eines Graphen, bei

Mehr

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.

Mehr

Seminar Komplexe Objekte in Datenbanken

Seminar Komplexe Objekte in Datenbanken Seminar Komplexe Objekte in Datenbanken OPTICS: Ordering Points To Identify the Clustering Structure Lehrstuhl für Informatik IX - Univ.-Prof. Dr. Thomas Seidl, RWTH-Aachen http://www-i9.informatik.rwth-aachen.de

Mehr

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie Gliederung 1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. äume / Graphen 5. Hashing 6. Algorithmische Geometrie 4/5, olie 1 2014 Prof. Steffen Lange - HDa/bI

Mehr

Sortierverfahren für Felder (Listen)

Sortierverfahren für Felder (Listen) Sortierverfahren für Felder (Listen) Generell geht es um die Sortierung von Daten nach einem bestimmten Sortierschlüssel. Es ist auch möglich, daß verschiedene Daten denselben Sortierschlüssel haben. Es

Mehr

Balancierte Bäume. Martin Wirsing. in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer. http://www.pst.ifi.lmu.de/lehre/ss06/infoii/ SS 06

Balancierte Bäume. Martin Wirsing. in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer. http://www.pst.ifi.lmu.de/lehre/ss06/infoii/ SS 06 Balancierte Bäume Martin Wirsing in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer http://www.pst.ifi.lmu.de/lehre/ss06/infoii/ SS 06 2 Ziele AVL-Bäume als einen wichtigen Vertreter balancierter

Mehr

Property Testing in Graphen mit beschränktem Maximalgrad

Property Testing in Graphen mit beschränktem Maximalgrad Property Testing in Graphen mit beschränktem Maximalgrad Björn Schümann Seminar Graphentheorie und Kombinatorik WS 2007-08 Inhaltsverzeichnis 1 Einleitung 2 2 Allgemeine Aussagen zum Property Testing 3

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Vorlesung am 12.01.2012 INSTITUT FÜR THEORETISCHE 0 KIT 12.01.2012 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der Informatik

Mehr

w a is die Anzahl der Vorkommen von a in w Beispiel: abba a = 2

w a is die Anzahl der Vorkommen von a in w Beispiel: abba a = 2 1 2 Notation für Wörter Grundlagen der Theoretischen Informatik Till Mossakowski Fakultät für Informatik Otto-von-Guericke Universität Magdeburg w a is die Anzahl der Vorkommen von a in w Beispiel: abba

Mehr

Gegeben ist die Funktion f durch. Ihr Schaubild sei K.

Gegeben ist die Funktion f durch. Ihr Schaubild sei K. Aufgabe I 1 Gegeben ist die Funktion f durch. Ihr Schaubild sei K. a) Geben Sie die maximale Definitionsmenge D f an. Untersuchen Sie K auf gemeinsame Punkte mit der x-achse. Bestimmen Sie die Intervalle,

Mehr

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder Programmieren in PASCAL Bäume 1 1. Baumstrukturen Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder 1. die leere Struktur oder 2. ein Knoten vom Typ Element

Mehr

Visual Basic Basisbefehle Hinweis: Der Text in eckigen Klammern [ ] ist variabel, z.b. [var] => 5.3. Eckige Klammern sind stets wegzulassen!

Visual Basic Basisbefehle Hinweis: Der Text in eckigen Klammern [ ] ist variabel, z.b. [var] => 5.3. Eckige Klammern sind stets wegzulassen! Visual Basic Basisbefehle Hinweis: Der Text in eckigen Klammern [ ] ist variabel, z.b. [var] => 5.3. Eckige Klammern sind stets wegzulassen! Grundstrukturen: Sub [name]([übergabe]) End Sub [Übergabe] ist

Mehr

3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1

3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1 3.2 Binäre Suche Beispiel 6.5.1: Intervallschachtelung (oder binäre Suche) (Hier ist n die Anzahl der Elemente im Feld!) Ein Feld A: array (1..n) of Integer sei gegeben. Das Feld sei sortiert, d.h.: A(i)

Mehr

Lenstras Algorithmus für Faktorisierung

Lenstras Algorithmus für Faktorisierung Lenstras Algorithmus für Faktorisierung Bertil Nestorius 9 März 2010 1 Motivation Die schnelle Faktorisierung von Zahlen ist heutzutage ein sehr wichtigen Thema, zb gibt es in der Kryptographie viele weit

Mehr

Ein Algorithmus für die

Ein Algorithmus für die VGG 1 Ein Algorithmus für die Visualisierung gerichteter Graphen in der Ebene (2D) Seminar Graph Drawing SS 2004 bei Prof. Bischof (Lehrstuhl für Hochleistungsrechnen) Gliederung VGG 2 Einleitung Motivation

Mehr

6-1 A. Schwill Grundlagen der Programmierung II SS 2005

6-1 A. Schwill Grundlagen der Programmierung II SS 2005 6-1 A. Schwill Grundlagen der Programmierung II SS 25 6. Suchen Suchen = Tätigkeit, in einem vorgegebenen Datenbestand alle Objekte zu ermitteln, die eine best. Bedingung, das Suchkriterium, erfüllen und

Mehr

Datenstrukturen und Algorithmen

Datenstrukturen und Algorithmen Datenstrukturen und Algorithmen VO 708.031 Bäume robert.legenstein@igi.tugraz.at 1 Inhalt der Vorlesung 1. Motivation, Einführung, Grundlagen 2. Algorithmische Grundprinzipien 3. Sortierverfahren 4. Halden

Mehr

Microsoft Visio 2007-Programmierung

Microsoft Visio 2007-Programmierung René Martin Microsoft Visio 2007-Programmierung ISBN-10: 3-446-41084-8 ISBN-13: 978-3-446-41084-8 Leseprobe Weitere Informationen oder Bestellungen unter http://www.hanser.de/978-3-446-41084-8 sowie im

Mehr

Über Kommentare und Ergänzungen zu diesen Lösungsbeispielen freuen wir uns!

Über Kommentare und Ergänzungen zu diesen Lösungsbeispielen freuen wir uns! Aufgaben und Lösungen. Runde 04 Über Kommentare und Ergänzungen zu diesen n freuen wir uns!» KORREKTURKOMMISSION KARL FEGERT» BUNDESWETTBEWERB MATHEMATIK Kortrijker Straße, 577 Bonn Postfach 0 0 0, 5 Bonn

Mehr

VHDL Verhaltensmodellierung

VHDL Verhaltensmodellierung VHDL Verhaltensmodellierung Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2008/2009 VHDL Verhaltensmodellierung 1/26 2008-10-20

Mehr

Scheduling und Lineare ProgrammierungNach J. K. Lenstra, D. B. Shmoys und É.

Scheduling und Lineare ProgrammierungNach J. K. Lenstra, D. B. Shmoys und É. Scheduling und Lineare ProgrammierungNach J. K. Lenstra, D. B. Shmoys und É. Tardos Janick Martinez Esturo jmartine@techfak.uni-bielefeld.de xx.08.2007 Sommerakademie Görlitz Arbeitsgruppe 5 Gliederung

Mehr

Fully dynamic algorithms for the single source shortest path problem.

Fully dynamic algorithms for the single source shortest path problem. Fully dynamic algorithms for the single source shortest path problem. Michael Baur Wintersemester 2001/2002 Zusammenfassung Im folgenden Paper werde ich Algorithmen für das dynamische Kürzeste-Wege-Problem

Mehr

Codierung. Auszug aus dem Skript von Maciej Liśkiewicz und Henning Fernau

Codierung. Auszug aus dem Skript von Maciej Liśkiewicz und Henning Fernau Codierung Auszug aus dem Skript von Maciej Liśkiewicz und Henning Fernau Ein bisschen Informationstheorie Betrachten wir das folgende Problem: Wie lautet eine sinnvolle Definition für das quantitative

Mehr

12. Modelle für 3D-Objekte und -Szenen

12. Modelle für 3D-Objekte und -Szenen 12. Modelle für 3D-Objekte und -Szenen Modell: Abbild der Realität, welches bestimmte Aspekte der Realität repräsentiert (und andere ausblendet) mathematische Modelle symbolische Modelle Datenmodelle Experimentalmodelle

Mehr

A(3/1/2) B(6/2/2) C(5/9/4) D(1/4/3)

A(3/1/2) B(6/2/2) C(5/9/4) D(1/4/3) Ein Raumviereck ABCD kann eben sein oder aus zwei gegeneinander geneigten Dreiecken bestehen. In einem ebenen Viereck schneiden sich die Diagonalen. Überprüfen Sie, ob die gegebenen Vierecke eben sind.

Mehr

Vorlesung Informatik 2 Algorithmen und Datenstrukturen. (20 Graphen) T. Lauer

Vorlesung Informatik 2 Algorithmen und Datenstrukturen. (20 Graphen) T. Lauer Vorlesung Informatik 2 Algorithmen und Datenstrukturen (20 Graphen) T. Lauer 1 Motivation Wie komme ich am besten von Freiburg nach Ulm? Was ist die kürzeste Rundreise durch eine gegebene Menge von Städten?

Mehr

Grundlegende Datentypen

Grundlegende Datentypen Foliensatz 4 Michael Brinkmeier Technische Universität Ilmenau Institut für Theoretische Informatik Sommersemester 2009 TU Ilmenau Seite 1 / 50 Grundlegende Datentypen TU Ilmenau Seite 2 / 50 Atomare Datentypen

Mehr

3. Zusammenhang. 22 Andreas Gathmann

3. Zusammenhang. 22 Andreas Gathmann 22 Andreas Gathmann 3. Zusammenhang Eine der anschaulichsten Eigenschaften eines topologischen Raumes ist wahrscheinlich, ob er zusammenhängend ist oder aus mehreren Teilen besteht. Wir wollen dieses Konzept

Mehr

Suchbäume. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Suchbäume. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung Suchbäume Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative

Mehr

Tutorium Algorithmen & Datenstrukturen

Tutorium Algorithmen & Datenstrukturen June 16, 2010 Binärer Baum Binärer Baum enthält keine Knoten (NIL) besteht aus drei disjunkten Knotenmengen: einem Wurzelknoten, einem binären Baum als linken Unterbaum und einem binären Baum als rechten

Mehr

Anmerkungen zur Übergangsprüfung

Anmerkungen zur Übergangsprüfung DM11 Slide 1 Anmerkungen zur Übergangsprüfung Aufgabeneingrenzung Aufgaben des folgenden Typs werden wegen ihres Schwierigkeitsgrads oder wegen eines ungeeigneten fachlichen Schwerpunkts in der Übergangsprüfung

Mehr

Falten regelmäßiger Vielecke

Falten regelmäßiger Vielecke Blatt 1 Gleichseitige Dreiecke Ausgehend von einem quadratischen Stück Papier kann man ohne weiteres Werkzeug viele interessante geometrische Figuren nur mit den Mitteln des Papierfaltens (Origami) erzeugen.

Mehr

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Divide-and-Conquer. Vorlesung 9: Quicksort (K7)

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Divide-and-Conquer. Vorlesung 9: Quicksort (K7) Datenstrukturen und Algorithmen Vorlesung 9: (K7) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://www-i2.rwth-aachen.de/i2/dsal0/ Algorithmus 8. Mai 200 Joost-Pieter

Mehr

15 Optimales Kodieren

15 Optimales Kodieren 15 Optimales Kodieren Es soll ein optimaler Kodierer C(T ) entworfen werden, welcher eine Information (z.b. Text T ) mit möglichst geringer Bitanzahl eindeutig überträgt. Die Anforderungen an den optimalen

Mehr

H. Gruber, R. Neumann. Erfolg im Mathe-Abi. Übungsbuch für die optimale Vorbereitung in Analysis, Geometrie und Stochastik mit verständlichen Lösungen

H. Gruber, R. Neumann. Erfolg im Mathe-Abi. Übungsbuch für die optimale Vorbereitung in Analysis, Geometrie und Stochastik mit verständlichen Lösungen H. Gruber, R. Neumann Erfolg im Mathe-Abi Übungsbuch für die optimale Vorbereitung in Analysis, Geometrie und Stochastik mit verständlichen Lösungen Inhaltsverzeichnis Inhaltsverzeichnis Analysis Von der

Mehr

(4) Der Hauptpreis befindet sich im ersten oder im zweiten Umschlag.

(4) Der Hauptpreis befindet sich im ersten oder im zweiten Umschlag. 49. Mathematik-Olympiade Regionalrunde Olympiadeklasse 6 c 2013 nausschuss des Mathematik-Olympiaden e.v. Barbara ist Kandidatin in einer mathematischen Quizshow und hat bis jetzt alle n richtig gelöst.

Mehr

Institut für Informatik

Institut für Informatik Technische Universität München Institut für Informatik Lehrstuhl für Computer Graphik & Visualisierung WS 2010 Praktikum: Grundlagen der Programmierung Lösungsblatt 7 Prof. R. Westermann, A. Lehmann, R.

Mehr

Kapitel MK:IV. IV. Modellieren mit Constraints

Kapitel MK:IV. IV. Modellieren mit Constraints Kapitel MK:IV IV. Modellieren mit Constraints Einführung und frühe Systeme Konsistenz I Binarization Generate-and-Test Backtracking-basierte Verfahren Konsistenz II Konsistenzanalyse Weitere Analyseverfahren

Mehr