Die Berechnung der Triangulation eines Polygons in fast-linearer Zeit.

Größe: px
Ab Seite anzeigen:

Download "Die Berechnung der Triangulation eines Polygons in fast-linearer Zeit."

Transkript

1 Die Berechnung der Triangulation eines Polygons in fast-linearer Zeit. Ausarbeitung zum Vortrag von Adrian Polko Anhand des Papers von Raimund Seidel: A Simple and Fast Incremental Randomized Algorithm for Computing Trapezoidal Decompositions and for Triangulating Polygons Im Rahmen des Informatik A-Seminars WS 2001/2002 Algorithmische Geometrie und Bewegungsplanung für Roboter Rheinische Friedrich-Wilhelms-Universität Bonn, Institut für Informatik I

2 1 1 Einführung Die Triangulation von Polygonen findet in vielen Bereichen Anwendung, deshalb war die Berechenbarkeit dieses Problems schon früher von großer Bedeutung. Trotzdem blieb diese Berechenbarkeit bis vor einem Jahrzehnt ungelöst. Das Problem kann wie folgt näher spezifiziert werden: Problem: Gegeben seien die Koordinaten von n aufeinander folgenden Ecken eines einfachen Polygons P. Gesucht werden n 3 Diagonalen, die P in n 2 Dreiecke teilen. Eine kurze Geschichte: 1978 veröffentlichte Garey ein Verfahren mit der Komplexität O(n log n), welches auf einem Sweep basierte. Vier Jahre später präsentierte Chazelle einen Algorithmus mit gleicher Komplexität. Die O(n log n) Grenze wurde dann von O(n log C P ) unterboten, wobei C P den shape Parameter beschreibt, der nicht größer als n ist und vom Polygon P abhängt. Tarjan und Van Wyk machten 1986 einen Durchbruch mit einem O(n log log n) Algorithmus. Drei Jahre später erreichte auch ein einfacheres Verfahren von Kirkpatrick diese Zeitschranke. Zwischenzeitlich präsentierte Clarkson einen randomisierten Algorithmus mit der erwarteten Laufzeit O(log n). Schließlich entdeckte Chazelle ein deterministisches Verfahren mit linearer Laufzeit, welches die Frage der Komplexität dieses Problems beantwortete. Diese Ausarbeitung stellt einen randomisierten Algorithmus mit der erwarteten Laufzeit O(n log n) vor. Die Tugend des Verfahrens liegt in der Einfachheit. Außerdem ist dieser Algorithmus praktisch und läßt sich leicht implementieren, was man von den meisten o.g. Algorithmen nicht behaupten kann. Wie die meisten Vorgänger, kann unserer Algorithmus ein Polygon P nicht direkt triangulieren. Zunächst wird eine Struktur berechnet, die als Trapezzerlegung von P bezeichnet wird. Fournier und Montuno stellten fest, dass sich die Triangulation von P aus dieser Struktur in linearer Zeit ableiten läßt.

3 2 2 Trapezzerlegung In diesem und folgenden Abschnitten arbeiten wir in der euklidischen Ebene mit dem üblichen x-y Koordinatensystem. Definition 1 Zwei Liniensegmente in der Ebene heißen kreuzungsfrei, falls ihre Schnittmenge leer ist, oder aus einem gemeinsamen Endpunkt besteht. Definition 2 Sei S eine Menge von n kreuzungsfreien und nicht-horizontalen Liniensegmenten in der Ebene. Für jedes Segment aus S und jeden Endpunkt p eines Liniensegments zeichnen wir zwei horizontale Strahlen, die sich nach rechts und links von p erstrecken, bis sie auf andere Liniensegmente in S stoßen. Für jeden Endpunkt p eines Liniensegments bezeichnen wir die zwei horizontalen Strahlen, die durch p verlaufen, als horizontale Erweiterung durch p. Definition 3 Die Liniensegmente in S bilden zusammen mit ihren horizontalen Erweiterungen einen planaren Graphen, den wir Trapezzerlegung von S, oder kurz T (S) nennen. Abbildung 1: Trapezzerlegung von 5 Liniensegmenten

4 3 Da jede Fläche von T (S) aus zwei horizontalen Seiten besteht, (wobei eine die Länge 0 haben kann - wie in der Abbildung 1 -) werden diese Flächen Trapeze genannt. Was ist die Komplexität von T (S)? Falls S aus n Liniensegmenten besteht, gibt es höchstens 2n verschiedene Endpunkte. Zu jedem Endpunkt gehört die horizontale Erweiterung, die höchtens zwei Knoten in T (S) verursacht. T (S) hat deshalb höchstens 6n Knoten. Außerdem ist dieser Graph planar und hat deshalb T (S) O(n) Kanten und Flächen. Unserer Algorithmus erfordert, dass jedes Trapez in T (S) höchstens mit jeweils zwei Trapezen oberhalb und unterhalb benachbart ist. Wir bezeichnen ein Trapez als nicht degeneriert, wenn seine Ober- bzw. Unterseite sich höchstens über zwei andere Trapezunter- bzw. oberseiten erstreckt. Diese Eigenschaft wird automatisch eingehalten, wenn die Endpunkte der Liniensegmente in S unterschiedliche y-koordinaten haben. Von nun an nehmen wir an, dass S diese Eigenschaft besitzt. Wie auch in [CTV] erwähnt, ist diese Eigenschaft keine Einschränkung der Allgemeinheit, da diese Eigenschaft durch eine kleine Drehung des Koordinatensystems erzielt werden kann. Die Drehung kann auch durch ein lexikoographische Anordnung simuliert werden: Haben zwei verschiedene Endpunkte gleiche y-koordinaten, dann liegt der Punkt mit der kleineren x-koordinate tiefer. Abbildung 2: Degenerierte Menge von Liniensegmenten Die degenerierte Menge von Liniensegmenten (Abbildung 2) kann durch Drehung des Koordinatensystems oder durch lexikographische Anordnung zu einem nicht degenerierten System umgewandelt werden (Abbildung 3). Abbildung 3: Degeneration wurde durch Drehung oder lexikographische Anordnung behoben.

5 4 Schließlich wollen wir noch die Beziehung zwischen der Trapezzerlegung und der Triangulation eines einfachen Polygons herstellen. Diese Beziehung wurde bereits in [FM] und [CI] entdeckt. Sei S = {s 0,s 1,...,s n 1 } eine Menge von Liniensegmenten, die eine geschlossene Polygonhülle bilden. Dabei haben s i und s i+1 einen gemeinsamen Endpunkt. Für zwei Liniensegmente s i,s j S gilt foldende Bedingung : s i s j =, falls i j > 1 (wir betrachten alle Indizes modulo n). Die Hülle bildet nun ein einfaches Polygon P mit n Ecken. Um P zu triangulieren, müssen wir n 3 kreuzugsfreie Diagonalen finden, die P in n 2 Dreicke teilen. Lemma 1 Sei S = {s 0,s 1,...,s n 1 } eine Menge von Ecken auf der Hülle eines einfachen Polygons P.IstT (S) bekannt, dann kann die Triangulation von P in Zeit O(n) berechnet werden. Beweis : Wir nehmen an, dass P keine Ecken mit gleicher y-koordinate hat. Wie bereits erwähnt, lässt sich diese Bedingung ohne Weiteres herstellen, so dass die Allgemeinheit uneingeschränkt bleibt. Die Berechnung der Triangulation des Polygons P, ausgehend von T (S), geschieht in drei Schritten: Im ersten Schritt werden alle Trapeze entfernt, die außerhalb von P liegen. Abbildung 4: T (S) nach dem die äußeren Trapeze entfernt wurden. Überprüfe, ob T (S) Trapeze enthält, die zwei Ecken von P auf verschiedenen Seiten beinhalten. Falls ein solches Paar existiert, zeichne eine Diagonale zwischen den Ecken. Abbildung 5: Einführung der Diagonalen in die Trapeze. Die eingezeichneten Diagonalen, teilen P in y-monotone Unterpolygone auf.

6 5 Abbildung 6: Aufteilung von P in Polygone, die leicht zu triangulieren sind. Diese Klasse von Polygonen lässt sich in Zeit O(n) triangulieren. Die Verfahrensweise wird in [FM] und [CI] näher erläutert. 3 Algorithmus Für unsere Zwecke setzen wir eine Datenstruktur für die Tarpezzerlegung T (S) voraus, die für jedes Trapez τ T(S) einen Zugriff auf die benachbarten Trapeze in konstanter Zeit ermöglicht. Weiterhin wird vorausgesetzt, dass T (S) nicht degeneriert ist. Wie auch schon im letzten Abschnitt erwähnt, ist diese Eigenschaft eingehalten, wenn zwei verschiedene Endpunkte der Liniensegmente verschiedene y- Koordinaten haben. Dadurch ist gewährleistet, dass jedes Trapez in T (S) höchstens zwei obere bzw. untere Nachbarn hat. Eine derartige Datenstruktur erlaubt uns eine effiziente Navigation durch T (S), d. h. wir können eine Kurve C durch T (S) günstig verfolgen. Die Kosten, die dabei anfallen, sind proportional zur Komplexität von C plus der Anzahl der Trapeze, die man bei dieser Tour durchläuft. Wir halten fest, dass die Größe dieser Datenstruktur linear zur Anzahl der Liniensegmente in S ist. Zusätzlich führen wir eine Suchstruktur Q(S) mit.q(s) soll uns helfen, für einen beliebigen Punkt p das Trapez zu finden, das p enthält. Im Allgemeinen ist Q(S) ein gerichteter, azyklischer Graph mit einem Wurzelknoten und genau einer Senke für jedes Trapez aus T (S). Jeder Knoten, der keine Senke ist, hat zwei ausgehende Kanten und ist entweder mit dem Etikett X oder Y versehen. Ist ein Knoten mit X gekennzeichnet, ist der Schlüssel dieses Knotens ein Liniensegment aus S. Falls der Knoten mit Y versehen ist, hat er eine reelle Zahl als Schlüssel, die für die y-koordinate eines Endpunktes eines Liniensegments aus S steht (mit anderen Worten: Es ist die horizontale Erweiterung durch diesen Endpunkt). Falls wir nun zu einen beliebigen Punkt q das Trapez aus T (S) suchen, das q enthält, verfahren wir

7 6 a 1 a y 2 s 3 b y 1 4 s b Abbildung 7: Trapezzerlegung für das Liniensegment s und die dazugehörige Suchstruktur Q({s}). wie folgt: Wir beginnen an der Wurzel von Q(S) und bewegen uns entlang eines Pfades bis zu einer Senke, die bekanntlich einem Trapez aus T (S) entspricht. An jedem Knoten auf dem Pfad erfolgt ein Vergleich mit dem Schlüssel des Knotens. An einem X-Knoten stellen wir fest, ob q sich links oder rechts von dem Liniensegment befindet, welches der Schlüssel dieses Knotens ist. Liegt q links davon, folgen wir der linken Kante. Wenn q rechts vom Schlüsselsegment liegt, folgen wir der rechten Kante. Der Fall, dass q auf dem Schlüsselsegment liegt kann vernachlässigt werden, da dieser für unsere Zwecke nicht relevant ist. Kommen wir an einem Y -Knoten an, vergleichen wir die y-koordinate von q mit dem Schlüssel des Knotens, der bekanntlich eine horizontale Erweiterung eines Endpunktes aus S repräsentiert. Liegt q oberhalb der horizontalen Erweiterung, wird der rechten Kante gefolgt. Wenn q unterhalb der horizontalen Erweiterung liegt, wird der linken Kante gefolgt. Da wir ein nichtdegeneriertes System vorfinden (laut Annahme) ist der Fall, dass q auf der horizontalen Erweiterung liegt, irrelevant. Weiterhin nehmen wir an, dass die Trapeze in T (S) mit den Senken in Q(S) fest verdrahtet sind, d. h. für jedes Trapez aus T (S) können wir in konstanter Zeit die entsprechende Senke in Q(S) bestimmen. Gleiches gilt für die und umgekehrte Richtung. Sei nun s ein nicht-horizontales Liniensegment mit dem oberen Endpunkt a und dem unteren Endpunkt b, das keine Liniensegmente aus S kreuzt. Sei S = S {s}. Im Folgenden möchten wir T (S ) und Q(S ) berechnen, wenn T (S) und Q(S) gegeben sind. Falls der obere Endpunkt a kein Endpunkt der Liniensegmente aus S ist, benutzen wir Q(S) um das Trapez τ a, welches a enthält, zu lokalisieren. Das Trapez τ a wird mit einer horizontalen Linie, die durch a verläuft, geteilt und wir erhalten damit eine neue Trapezzerlegung T. Die Senke aus Q(S), die τ a entspricht, verwandelt sich zu einem Y -Knoten, dessen Schlüssel die y-koordinate von a ist. Die Kinderknoten sind die zwei neuen Trapeze, die wir durch Teilung des Trapezes τ a erzeugt haben. Damit haben wir die Strukturen T und Q. Ist a ein Endpunkt eines Liniensegments aus S, setzt man T = T und Q = Q.

8 7 Wir wollen mit dem unteren Endpunkt b ähnlich verfahren und die Trapezzerlegung T sowie die Suchstruktur Q aus T bzw. Q ableiten. Nun fädeln 1 wir das Liniensegment s durch T, indem wir alle Trapeze bestimmen, die von s durchschnitten werden. Diese Trapeze werden in zweigeteilt und auf jeder Seite verschmelzen wir die horizontalen Erweiterungen aus T mit s. SoerhaltenwirT (S ). Die Suchstruktur Q(S ) erhalten wir wie folgt: Für jedes neue Trapez aus T (S ) erzeugen wir die entsprechende Senke in der Suchstruktur. Jede Senke aus Q,dievons zerschnitten wurde, wird zu einem X-Knoten mit dem Schlüssel s und den zwei neuerzeugten Senken als Kinderknoten. Das Trapez aus T,dasb enthält, bekommt noch einen Y -Knoten, da es zusätzlich durch die horizontale Erweiterung, die durch b verläuft, geteilt wird. DieZeit,diewirbenötigen um T (S ) und Q(S )aust (S) bzw.q(s) abzuleiten, setzt sich aus der Zeit für die Lokalisirung der beiden Endpunkte und der threading -Zeit zusammen. Letzteres ist proportional zur der Anzahl der horizontalen Erweiterungen aus T (S), die s schneiden, oder der Anzahl der horizontalen Erweiterungen aus T (S ), die in s münden. Wieviel Zeit brauchen wir um T (S) zu erzeugen, wenn wir die Liniensegmente nacheinander einfügen, beginnend mit leeren Strukturen? Offensichtlich ist dies abhängig von der Einfügereihenfolge. Zwar ist T (S) von dieser Reihenfolge unabhängig, Q(S) und die Zeit um einen Punkt zu lokalisieren, hängen aber sehr stark von dieser Reihenfolge ab. Schlechte Beispiele sind schnell gefunden: Stellen wir uns eine Menge S vor, mit n vertikalen Liniensegmenten, die die x-achse schneiden. Werden die Liniensegmente nach der steigenden x-koordinate eingefügt, dann werden die Pfade von der Wurzel zur Senke in Q(S) lang. Wollen wir nun einen Punkt lokalisieren, der auf der x-achse liegt und sich rechts von allen Liniensegmenten befindet, dann benötigen wir O(n) Zeit. Künftig argumentieren wir, dass wenn die Liniensegmente in zufälliger Reihenfolge eingefügt werden, wobei jede Anordnung mit gleicher Wahrscheinlichkeit vorkommt, verhält sich Q(S) inerwartung besser. Dadurch wird die erwartete Zeit für die Konstruktion der Strukturen auch angemessen, die sich bekanntlich aus der erwarteten Zeit für die Lokalisierung der Punkte und der erwarteten threading -Zeit zusammensetzt. Die folgenden Lemmata geben Auskunft über diese Zeiten. Lemma 2 Sei s 1,...,s n eine zufällige Reihenfolge der Liniensegmente aus S, unds i = {s 1,...,s i } mit 0 i n. Für 1 <i n ist die erwartete Anzahl der horizontalen Erweiterungen aus T (S i 1 ), die von s i geschnitten werden, höchstens 4. Beweis : Für ein Liniensegment s S bezeichne deg(s, T (S i )) die Anzahl der horizontalen Erweiterungen aus T (S i ), die im Inneren von s enden. Als nächtes betrachten wir die Anzahl der horizontalen Erweiterungen, die in s i enden. Da dieser Wert in T (S i 1 ) und T (S i ) gleich ist, interessiert uns Exp(deg(s i, T (S i ))). Da T (S i )höchstens 2i horizontale Erweiterungen hat und jede Erweiterung in höchstens zwei Liniensegmenten endet, folgt s S i deg(s, T (S i )) 4i. Weil wir eine zufällige Reihenfolge der Liniensegmente angenommen haben, ist s i irgendein Segment aus S i mit gleicher Wahrscheinlichkeit. Daraus folgt unmittelbar Exp(deg(s i, T (S i ))) 4. Sei H n =1+1/2+1/ /n. Wirbemerken,dassH n =Θ(logn). Genauer gilt für n>1, log n<h n < 1+logn. 1 threading ist der Fachausdruck für diese Prozedur.

9 8 Lemma 3 Sei s 1,...,s n eine zufällige Reihenfolge der Liniensegmente aus S, unds i = {s 1,...,s i } mit 0 i n. Für 1 i n seien T (S i ) und Q(S i ) die Trapezzerlegung und Suchstruktur für S i, die aus T (S i 1 ) bzw. Q(S i 1 ) durch Einfügen von s i entstanden sind. Sei q ein Punkt, den man in T (S n ) mittels Q(S n ) lokalisieren möchte. Unter Berüchsichtigung aller Anordnungen von S beträgt die erwartete Anzahl von Schlüsselvergleichen 5H n O(log n). Beweis : Sei τ j das Trapez in T (S j ), das q enthält. Angenommen τ i 1 ist bekannt, was ist dann E i, die erwartete Anzahl von Vergleichen um, τ i zu finden? Mit anderen Worten: Wir kennen das Trapez aus T (S i 1 ), das q enthält. Was ist dann die erwartete Anzahl von Vergleichen, um das Trapez in T (S i ) zu finden, welches q enthält? Sind τ i 1 und τ i gleich, dann sind keine Vergleiche nötig. Falls die Trapeze verschieden sind, ist entweder eine der Seiten ein Teil des neuen Liniensegments s i oder die horizontalen Erweiterungen durch die Endpunkte von s i. Ist die rechte Seite von τ i ein Teil von s i,istexakteinx-vergleich zwischen q und s i nötig, um τ i zu identifizieren. zwischen q und s i. Wegen der zufälligen Anordnung ist die Wahrscheinlichkeit dafür, dass s i τ i von der rechten Seite eingrenzt, höchstens 1/i (τ i kann auch rechts unbegrenzt sein). Folglich beträgt der Erwartungswert für die Anzahl der Vergleiche zwischen q und der rechten Seite von τ i höchstens 1/i. Wegen der Symmetrie folgt das Gleiche für die linke Seite von τ i. Falls die obere Seite von τ i ein Teil der horizontalen Erweiterung durch einen Endpunkt von s i ist, ist ein zusätzlicher Vergleich nötig, nämlich ein Y -Vergleich zwischen q und der horizontalen Erweiterung. Wegen der zufälligen Reihenfolge der Liniensegmente tritt dieses Ereignis höchstens mit der Wahrscheinlichkeit 1/i auf. Gleiches gilt für die Unterseite von τ i. Die erwartete Anzahl von Vergleichen zwischen q und den Trapezseiten von τ i ist also höchstens 4/i. Mike Hohmeyer fand heraus, dass noch ein zusätzlicher Vergleich auftreten kann: Wir nehmen an, dass die obere Seite von τ i, ein Teil der horizontalen Erweiterung durch den tiefergelegenen Endpunkt von s i ist (was mit der Wahrscheinlichkeit 1/i auftreten kann). Weiterhin nehmen wir an, dass es keine horizontale Erweiterung gibt, die s i im Inneren schneidet, und dass kein anderes Liniensegment aus S i einen gemeinsamen Endpunkt mit s i hat. Zusammengefasst bedeutet dies, dass s i komplett in τ i 1 enthalten sein muß. Um q in τ i zu lokalisieren, mußzuerst ein Vergleich zwischen q und der horizontalen Erweiterung des oberen Endpunktes stattfinden. Wenn also diese spezielle Konfiguration auftaucht, ist ein weiterer Vergleich mit der Wahrscheinlichkeit von höchstens 1/i nötig. Falls wir das Trapez τ i i, welches q enhielt kennen, müssen wir in Erwartung 5/i Vergleiche anstellen, um das Trapez τ i zu finden, das nach Einfügen von s i den Punkt q enthält. Es gilt deshalb E i =5/i. Um das Lemma zu beweisen genügt es, die gesamte erwartete Anzahl von Vergleichen zu betrachten 1 i n E i. Aus den Lemmata 2 und 3 und der davor geführten Diskussion folgt unmittelbar: Theorem 1 Sei S eine Menge von n kreuzungsfreien, nicht-horizontalen Liniensegmenten in der Ebene. Seien T (S) die Trapezzerlegung und Q(S) die Suchstruktur von S, die durch inkrementelles Einfügen der Liniensegmente aus S in zufälliger Reihenfolge entstanden sind. 1. T (S) und Q(S) können in der erwarteten Zeit O(n log n) aufgebaut werden. 2. Die erwartete Größe von Q(S) ist O(n). 3. Für einen beliebigen Punkt q brauchen wir in Erwartung O(log n) Zeit, um q in T (S) mittels Q(S) zu lokalisieren. (Die Erwartungswerte gelten hinsichtlich der zufälligen Anordnung der Liniensegmente aus S, wobei jede Permutation von S mit gleicher Wahrscheinlichkeit vorkommt.)

10 9 Im Folgenden zeigen wir, dass wenn S Liniensegmente enthält, die eine einfache polygonale Kette bilden, können T (S) und Q(S) noch schneller aufgebaut werden. Der kostenintensive Teil beim Einfügen eines Segments scheint die Lokalisierung der Endpunkte zu sein. Falls nun S aus einer polygonalen Kette C besteht, kommt der Gedanke auf, die Liniensegmente der Reihe nach entlang C einzufügen. Beim Einfügen eines Liniensegments s i erspart man sich die Lokalisierung des gemeinsamen Endpunktes von s i und s i 1, der bereits beim Einfügen von s i 1 lokalisiert wurde. Die Position des anderen Endpunktes kann beim threading ermittelt werden. Leider verzichtet diese Strategie auf Randomisierung und man kann nicht mehr von konstanten Kosten beim treading ausgehen. Tatsächlich kann man schnell Beispiele finden, wo der threading - Vorgang O(i) Zeitfür n/2 i n benötigt, was dann zu einem Algorithmus mit der Laufzeit O(n 2 ) führt. Wir verfolgen die folgende Strategie: Die Liniensegmente werden weiterhin in zufälliger Reihenfolge eingefügt. Gelegentlich halten wir aber an, um alle Endpunkte in der vorhandenen Trapezzerlegung zu lokalisieren, indem wir uns entlang C bewegen. Um die Effizienz dieses Verfahrens zu zeigen, brauchen wir zwei Lemmata. Das erste Lemma sagt uns, wie uns die gewonnen Informationen über die zwischenzeitliche Lokalisierung der Endpunkte weiterhelfen, das andere hingegen gibt Auskunft über die Kosten der Verfolgung von C durch die Trapezzerlegung. Lemma 4 Sei s 1,...,s n eine zufällige Reihenfolge der Liniensegmente aus S, unds i = {s 1,...,s i } mit 0 i n. Sei 1 j k n. Istq ein Punkt, dessen Position in T (S j ) bekannt ist, dann kann q mit Hilfe von Q(S k ) in T (S k ) innerhalb der erwarteten Zeit 5(H k H j ) O(log(k/j)) lokalisiert werden. Beweis : Wir verfahren wie im Beweis von Lemma 3. In diesem Fall beträgt die erwartete Lokalisierungszeit j<i k E i. Lemma 5 Sei S eine Menge von kreuzungsfreien, nicht-horizontalen Liniensegmenten in der Ebene und R eine beliebige Teilmenge von S der Größe r. SeiZ die erwartete Anzahl von Schnitten zwischen den horizontalen Trapezseiten aus T (R) und den Liniensegmenten aus S\R. Der Erwartungswert für Z ist höchstens 4(n r), wobei die Erwartung sich auf alle Untermengen R von S mit R = r bezieht. Beweis : Für T S und s T bezeichne deg(s, T (T )) die Anzahl der horizontalen Erweiterungen in T (T ), die im Inneren von s enden. Da jede horizontale Erweiterung höchstens in zwei verschiedenen Liniensegmenten endet, gilt s T deg(s, T (T )) 4 T. Für R S und s / R beträgt die Anzahl der horizontalen Trapezseiten in T (R), die von s geschnitten werden, genau deg(s, T (R {s}). Uns interessiert aber 1 ( n ) r R S R =r s S\R deg(s, T (R {s})). Setzen wir nun R = R {s}. Wenn wir die Doppelsumme etwas anders ausdrücken, erhalten wir ( 1 n ) ( n ( n 4 R r) r) r+1 =4(r +1) ( n =4(n r). r) R S R =r+1 s S deg(s, T (R )) 1 R S R =r+1

11 10 Bevor wir den Algorithmus präsentieren, müssen wir noch ein paar Worte zur Notation verlieren. Im Folgenden bezeichnet log (i) den i-ten iterierten Logarithmus, d.h. log (0) n = n und für i>0 gilt log (i) n = log(log (i 1) n). Für n>0 bezeichne log n die größte natürliche Zahl l, so dass log (l) n 1, und für n>0 und 0 h log n sei N(h) dieabkürzung für n/ log (h) n. WelcheGrößenordnung hat log n?nunfür praktische Werte von n kann log n als Konstante angesehen werden. So ist zum Beispiel log n 5für alle n Die Eingabe für den unteren Algorithmus ist eine einfache, polygonale Kette C bestehend aus n aufeinanderfolgenden Liniensegmenten entlang C. 1. Erzeuge s 1,...,s n eine zufällige Reihenfolge der Liniensegmente aus C. 2. Erzeuge die Trapezzerlegung T 1 und die dazugehörige Suchstruktur Q 1 für die Menge {s 1 }. 3. for h =1to log n do 3.1. for N(h 1) <i N(h) do Ermittle die Trapezzerlegung T i und die Suchstruktur Q i aus T i 1 und Q i 1, durch Einfügen des Liniensegments s i Verfolge C entlang T N(h),umfür jeden Endpunkt der noch nicht eingefügten Liniensegmente das zugehörigetrapezint N(h). 4. for N(log n) <i n do 4.1. Ermittle die Trapezzerlegung T i und die Suchstruktur Q i aus T i 1 und Q i 1, durch Einfügen des Liniensegments s i. Was ist die erwartete Laufzeit dieses Algorithmus? Wir nehmen an, Schritt 1 kann in linearer Zeit ausgeführt werden. Schritt 2 benötigt konstante Zeit. Für Schritt 3 betrachten wir die h, mit 1 h log n. Lemma 5 sagt aus, dass der Schritt 3.2 in der erwarteten Zeit O(n) ausgeführt werden kann. Wieviel Zeit brauchen wir für Schritt 3.1? Die erwarteten Kosten vom Schritt setzen sich aus den erwarteten Kosten um die Endpunkte von s i zu lokalisieren und den erwarteten Kosten für das threading von s i durch T i 1 zusammen. Durch Lemma 2 wissen wir, dass Letzteres konstante Kosten verursacht. Da die Endpunkte von s i in T N(h 1) schon lokalisiert sind, wissen wir durch Lemma 4, dass die Lokalisierung in Erwartung nur O(log(i/N(h 1))) Zeit benötigt. Da i n und N(h 1) = n/ log (h 1) n, liegt dieser Wert in O(log (h) n). Für einen festen Wert von h wird der Schritt höchstens N(h) = n/ log (h) n Mal ausgeführt. Zusammengefasst verursacht Schritt 3 lineare Kosten für einen festen Wert von h. DaSchritt3insgesamtlog h mal ausgeführt wird, ergibt sich die erwartete Laufzeit von O(n log n). Schritt 4 läßt sich ähnlich wie Schritt 3.1 analysieren. Dabei sei zu beachten, dass N(log n) n/e und damit die erwarteten Lokalisierungskosten konstant sind. Folglich benötigt Schritt 4 in Erwartung O(n) Zeit.Damit hätten wir folgendes bewiesen: Theorem 2 Sei S eine Menge von kreuzungsfreien Liniensegmenten in der Ebene, die eine einfache polygonale Kette C bilden. Der oben beschriebene Algorithmus berechnet die Trapezzerlegung T (S) und die dazugehörige Suchstruktur Q(S) in der erwarteten Zeit O(n log n). Die Suchstruktur benötigt in Erwartung O(n) Platz und erledigt Suchanfragen in der erwarteten Zeit O(log n).

12 11 Dieses Theorem lässt sich leicht verallgemeinern. Schließlich setzt der Algorithmus nur eine Eigenschaft voraus, nämlich dass C eine Zusammenhangskomponente repräsentiert. Stellt C einen verbundenen, planaren Graphen G dar, würde sich dieses Ergebnis weiterhin bestätigen. Schritt 3.2 müßte folglich modifiziert werden. In diesem Fall würden wir den kompletten Graphen durchlaufen, indem wir einen Algorithmus zur Graphdurchmusterung verwenden würden. Wenn wir jetzt noch erlauben, dass G aus mehreren Zusammenhangskomponenten besteht, lassen sich die Theoreme 1 und 2 wie folgt vereinigen: Theorem 3 Sei S eine Menge von kreuzungsfreien Liniensegmenten in der Ebene, die einen planaren Graphen mit k Zusammenhangskomponenten repräsentiert. Weiterhin sei T (S) die Trapezzerlegung von S. Die Trapezzerlegung T (S) und die dazugehörige Suchstruktur Q(S) können in der Zeit O(n log n + k log n) aufgebaut werden. Die ewartete Größe von Q(S) ist O(n). Die erwartete Lokalisierungszeit für einen beliebigen Punkt q beträgt O(log n). Beweis : Wir benutzen weiterhin den oben beschriebenen Algorithmus, ändern jedoch den Schritt 3.2 so ab, dass die Liniensegmente jeder Zusammenhangskomponente des Graphen in der Reihenfolge einer Graphdurchmusterung (z.b. Tiefensuche) abgelaufen werden. Bei diesem Schritt werden die Zusammenhangskomponenten nacheinander abgearbeitet und die Endpunkte der noch nicht eingefügten Liniensegmente müssten dann noch lokalisiert werden. Lemma 3 sagt aus, dass die Lokalisierungszeit für jede Zusammenhagskomponente in Erwartung O(log n) beträgt.

13 12 Literatur [C82] Chazelle, B. A theorem on polygon cutting with applications, Proc. 23rd Annual IEEE on Found. of Comput. Sci. (1982), [C90] Chazelle, B. Triangulating a simple polygon in linear time, Princeton Univ. Computer Science Tech. Rep. CS-TR ; to appear in Proc. 31st Annual IEEE Symp. on Found. of Comput. Sci. (1990) [CI] Chazelle, B., Incerpi, J. Triangulation and shape-complexity, ACM Trans. on Graphics 3 (1984), [CC] Clarkson, K. and Cole, R. Private Communication. [CTV] Clarkson, K., Tarjan, R.E., Van Wyk, C.J. A fast Las Vegas algorithm for triangulating a simple polygon, Disc. and Comput.Geom. 4(5) (1989), [FM] Fournier, A., Montuno, D.Y. Triangulating simple polygons and equivalent problems, ACM Trans. on Graphics 3. (1984), [GJPT] Garey, M.R., Johnson, D.S., Preparata, F.P., Tarjan, R.E. Triangulating a simple polygon, Inform. Process. Lett. 7 (1978), [HM] Hertel, S., Mehlhorn, K. Fast triangulation of a simple polygon, Proc. Conf. Found. Comput. Theory, New York, Lecture Notes on Computer Science 158 (1983), [HMRT] Hoffman, K., Mehlhorn, K., Rosenstiehl, P., Tarjan, R.E. Sorting Jordan sequences in linear time using level-linked search trees, Infor. and Control 68 (1986), [KKT] Kirkpatrick, D.G., Klawe, M.M, Tarjan, R.E. O(n log log n) polygon triangulation with simple data structures, Proc. 6th Annual ACM Symp. Comput. Geom. (1990), [TA82] Toussaint, G. and Avis, D. On a convex hull algorithm for convex polygons and its applications to triangulation problems, Pattern Recognition 15,1 (1982), [TV] Tarjan, R.E., Van Wyk, C.J. An O(n log log n)-time algorithm for triangulating a simple polygon, SIAM J. Comput. 17 (1988), [T88] Toussaint, G. An aoutput-complexity-sensitive polygon triangulation algorithm, ReportSICS- 86.3, McGil. University, Montreal, 1988.

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

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

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

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

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

Zeichnen von Graphen. graph drawing

Zeichnen von Graphen. graph drawing Zeichnen von Graphen graph drawing WS 2006 / 2007 Gruppe: D_rot_Ala0607 Christian Becker 11042315 Eugen Plischke 11042351 Vadim Filippov 11042026 Gegeben sei ein Graph G = (V; E) Problemstellung V E =

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

22. Algorithmus der Woche Partnerschaftsvermittlung Drum prüfe, wer sich ewig bindet

22. Algorithmus der Woche Partnerschaftsvermittlung Drum prüfe, wer sich ewig bindet 22. Algorithmus der Woche Partnerschaftsvermittlung Drum prüfe, wer sich ewig bindet Autor Volker Claus, Universität Stuttgart Volker Diekert, Universität Stuttgart Holger Petersen, Universität Stuttgart

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

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

NP-Vollständigkeit. Krautgartner Martin (9920077) Markgraf Waldomir (9921041) Rattensberger Martin (9921846) Rieder Caroline (0020984)

NP-Vollständigkeit. Krautgartner Martin (9920077) Markgraf Waldomir (9921041) Rattensberger Martin (9921846) Rieder Caroline (0020984) NP-Vollständigkeit Krautgartner Martin (9920077) Markgraf Waldomir (9921041) Rattensberger Martin (9921846) Rieder Caroline (0020984) 0 Übersicht: Einleitung Einteilung in Klassen Die Klassen P und NP

Mehr

Information Systems Engineering Seminar

Information Systems Engineering Seminar Information Systems Engineering Seminar Algorithmische Prüfung der Planarität eines Graphen Marcel Stüttgen, 22.10.2012 FH AACHEN UNIVERSITY OF APPLIED SCIENCES 1 Planarität - Definition Ein Graph heißt

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

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

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

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

Undirected Single-Source Shortest Paths with Positive Integer Weights in Linear Time

Undirected Single-Source Shortest Paths with Positive Integer Weights in Linear Time Universität Konstanz Mathematisch-naturwissenschaftliche Sektion Fachbereich Mathematik und Statistik Wintersemester 2001/02 Mikkel Thorup: Undirected Single-Source Shortest Paths with Positive Integer

Mehr

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12 Grundlagen: Folge 19 - Bäume 19.1 Binärbäume - Allgemeines Unter Bäumen versteht man in der Informatik Datenstrukturen, bei denen jedes Element mindestens zwei Nachfolger hat. Bereits in der Folge 17 haben

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

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

DATENSTRUKTUREN UND ZAHLENSYSTEME

DATENSTRUKTUREN UND ZAHLENSYSTEME DATENSTRUKTUREN UND ZAHLENSYSTEME RALF HINZE Institute of Information and Computing Sciences Utrecht University Email: ralf@cs.uu.nl Homepage: http://www.cs.uu.nl/~ralf/ March, 2001 (Die Folien finden

Mehr

Integration geometrischer und fotogrammetrischer Information zum Wiederfinden von Bildern

Integration geometrischer und fotogrammetrischer Information zum Wiederfinden von Bildern Integration geometrischer und fotogrammetrischer Information zum Wiederfinden von Bildern Björn Burow SE Mustererkennung in Bildern und 3D-Daten Lehrstuhl Graphische Systeme BTU Cottbus Inhaltsübersicht

Mehr

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005 Paradigmen im Algorithmenentwurf Problemlösen Problem definieren Algorithmus entwerfen

Mehr

KONSTRUKTION VON ROT-SCHWARZ-BÄUMEN

KONSTRUKTION VON ROT-SCHWARZ-BÄUMEN KONSTRUKTION VON ROT-SCHWARZ-BÄUMEN RALF HINZE Institut für Informatik III Universität Bonn Email: ralf@informatik.uni-bonn.de Homepage: http://www.informatik.uni-bonn.de/~ralf Februar, 2001 Binäre Suchbäume

Mehr

1 topologisches Sortieren

1 topologisches Sortieren Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung

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

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

Programmiertechnik II

Programmiertechnik II Bäume Symboltabellen Suche nach Werten (items), die unter einem Schlüssel (key) gefunden werden können Bankkonten: Schlüssel ist Kontonummer Flugreservierung: Schlüssel ist Flugnummer, Reservierungsnummer,...

Mehr

Konzepte der Informatik

Konzepte der Informatik Konzepte der Informatik Vorkurs Informatik zum WS 2011/2012 26.09. - 30.09.2011 17.10. - 21.10.2011 Dr. Werner Struckmann / Christoph Peltz Stark angelehnt an Kapitel 1 aus "Abenteuer Informatik" von Jens

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

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

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

Kombinatorische Optimierung

Kombinatorische Optimierung Juniorprof. Dr. Henning Meyerhenke 1 Henning Meyerhenke: KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Vorlesung 1 Programm des

Mehr

Approximationsalgorithmen

Approximationsalgorithmen Makespan-Scheduling Kapitel 4: Approximationsalgorithmen (dritter Teil) (weitere Beispiele und Illustrationen an der Tafel) Hilfreiche Literatur: Vazarani: Approximation Algorithms, Springer Verlag, 2001.

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

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

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

Steinerbäume. Seminarausarbeitung Hochschule Aalen Fakultät für Elektronik und Informatik Studiengang Informatik Schwerpunkt Software Engineering

Steinerbäume. Seminarausarbeitung Hochschule Aalen Fakultät für Elektronik und Informatik Studiengang Informatik Schwerpunkt Software Engineering Steinerbäume Seminarausarbeitung Hochschule Aalen Fakultät für Elektronik und Informatik Studiengang Informatik Schwerpunkt Software Engineering Verfasser Flamur Kastrati Betreuer Prof. Dr. habil. Thomas

Mehr

WS 2008/09. Diskrete Strukturen

WS 2008/09. Diskrete Strukturen WS 2008/09 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/ws0809

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens aw@awilkens.com Überblick Grundlagen Definitionen Elementare Datenstrukturen Rekursionen Bäume 2 1 Datenstruktur Baum Definition eines Baumes

Mehr

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

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

t r Lineare Codierung von Binärbbäumen (Wörter über dem Alphabet {, }) Beispiel code( ) = code(, t l, t r ) = code(t l ) code(t r )

t r Lineare Codierung von Binärbbäumen (Wörter über dem Alphabet {, }) Beispiel code( ) = code(, t l, t r ) = code(t l ) code(t r ) Definition B : Menge der binären Bäume, rekursiv definiert durch die Regeln: ist ein binärer Baum sind t l, t r binäre Bäume, so ist auch t =, t l, t r ein binärer Baum nur das, was durch die beiden vorigen

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

3 Quellencodierung. 3.1 Einleitung

3 Quellencodierung. 3.1 Einleitung Source coding is what Alice uses to save money on her telephone bills. It is usually used for data compression, in other words, to make messages shorter. John Gordon 3 Quellencodierung 3. Einleitung Im

Mehr

Kompakte Graphmodelle handgezeichneter Bilder

Kompakte Graphmodelle handgezeichneter Bilder Kompakte Graphmodelle handgezeichneter Bilder Einbeziehung in Authentizierung und Bilderkennung Inhaltsverzeichnis Seminar Mustererkennung WS 006/07 Autor: Stefan Lohs 1 Einleitung 1 Das graphische Modell.1

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

Tutoren Simon Andermatt Lukas Beck. Alexis Peter Thomas Ritter

Tutoren Simon Andermatt Lukas Beck. Alexis Peter Thomas Ritter UNIVERSITÄT BASEL Dozent Prof. Dr. Thomas Vetter Departement Informatik Assistenten Brian Amberg Andreas Forster Tutoren Simon Andermatt Lukas Beck Webseite http://informatik.unibas.ch/lehre/hs10/cs101/index.html

Mehr

Tutoren Jan Ebbe Pat Mächler Valentino Rugolo Sascha Scherrer. Grundlagen der Programmierung (CS101) - Blatt 8 Theorie [4 Punkte] - Praxis [12 Punkte]

Tutoren Jan Ebbe Pat Mächler Valentino Rugolo Sascha Scherrer. Grundlagen der Programmierung (CS101) - Blatt 8 Theorie [4 Punkte] - Praxis [12 Punkte] UNIVERSITÄT BASEL Dozent Prof. Dr. Thomas Vetter Departement Informatik Bernoullistrasse 16 CH 4056 Basel Assistenten Bernhard Egger Andreas Forster Tutoren Jan Ebbe Pat Mächler Valentino Rugolo Sascha

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

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5)

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5) Einführung 3 Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Univ.-Prof. Dr. Christoph Meinel Hasso-Plattner-Institut Universität Potsdam, Deutschland Hatten den Reduktionsbegriff

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

Programmierung 2. Dynamische Programmierung. Sebastian Hack. Klaas Boesche. Sommersemester 2012. hack@cs.uni-saarland.de. boesche@cs.uni-saarland.

Programmierung 2. Dynamische Programmierung. Sebastian Hack. Klaas Boesche. Sommersemester 2012. hack@cs.uni-saarland.de. boesche@cs.uni-saarland. 1 Programmierung 2 Dynamische Programmierung Sebastian Hack hack@cs.uni-saarland.de Klaas Boesche boesche@cs.uni-saarland.de Sommersemester 2012 2 Übersicht Stammt aus den Zeiten als mit Programmierung

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

Primzahlzertifikat von Pratt

Primzahlzertifikat von Pratt Primzahlzertifikat von Pratt Daniela Steidl TU München 17. 04. 2008 Primzahltests in der Informatik "Dass das Problem, die Primzahlen von den Zusammengesetzten zu unterscheiden und letztere in ihre Primfaktoren

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

Gibt es verschiedene Arten unendlich? Dieter Wolke

Gibt es verschiedene Arten unendlich? Dieter Wolke Gibt es verschiedene Arten unendlich? Dieter Wolke 1 Zuerst zum Gebrauch des Wortes unendlich Es wird in der Mathematik in zwei unterschiedlichen Bedeutungen benutzt Erstens im Zusammenhang mit Funktionen

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

Graphentheorie Mathe-Club Klasse 5/6

Graphentheorie Mathe-Club Klasse 5/6 Graphentheorie Mathe-Club Klasse 5/6 Thomas Krakow Rostock, den 26. April 2006 Inhaltsverzeichnis 1 Einleitung 3 2 Grundbegriffe und einfache Sätze über Graphen 5 2.1 Der Knotengrad.................................

Mehr

Graphische Datenverarbeitung und Bildverarbeitung

Graphische Datenverarbeitung und Bildverarbeitung Graphische Datenverarbeitung und Bildverarbeitung Hochschule Niederrhein Clippen in 2D und 3D Graphische DV und BV, Regina Pohle, 19. Clippen in 2D und 3D 1 Einordnung in die Inhalte der Vorlesung Einführung

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

Bachelorarbeit: Ein diskretes Modell für Finanzmärkte

Bachelorarbeit: Ein diskretes Modell für Finanzmärkte Bachelorarbeit: Ein diskretes Modell für Finanzmärkte Die Finanzmathematik ist momentan eine der wichtigsten Anwendungender. Hier soll ein grundlegendes Modell erörtert werden, das auf der Entwicklung

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

Algorithmen für Peer-to-Peer-Netzwerke Sommersemester 2004 04.06.2004 7. Vorlesung

Algorithmen für Peer-to-Peer-Netzwerke Sommersemester 2004 04.06.2004 7. Vorlesung Algorithmen für Peer-to-Peer-Netzwerke Sommersemester 2004 04.06.2004 7. Vorlesung 1 Kapitel III Skalierbare Peer to Peer-Netzwerke Tapestry von Zhao, Kubiatowicz und Joseph (2001) Netzw erke 2 Tapestry

Mehr

Definition. Gnutella. Gnutella. Kriterien für P2P-Netzwerke. Gnutella = +

Definition. Gnutella. Gnutella. Kriterien für P2P-Netzwerke. Gnutella = + Definition Gnutella Ein -to--netzwerk ist ein Kommunikationsnetzwerk zwischen Rechnern, in dem jeder Teilnehmer sowohl Client als auch Server- Aufgaben durchführt. Beobachtung: Das Internet ist (eigentlich

Mehr

Abitur - Grundkurs Mathematik. Sachsen-Anhalt 2002. Gebiet G1 - Analysis

Abitur - Grundkurs Mathematik. Sachsen-Anhalt 2002. Gebiet G1 - Analysis Abitur - Grundkurs Mathematik Sachsen-Anhalt Gebiet G - Analsis Aufgabe.. Der Graph einer ganzrationalen Funktion f dritten Grades mit einer Funktionsgleichung der Form f a b c d a,b,c,d, R schneidet die

Mehr

Vorkurs Informatik WiSe 15/16

Vorkurs Informatik WiSe 15/16 Konzepte der Informatik Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 16.10.2015 Technische Universität Braunschweig, IPS Inhaltsverzeichnis Suchen Binärsuche Binäre Suchbäume 16.10.2015 Dr. Werner

Mehr

Monte-Carlo Simulation

Monte-Carlo Simulation Monte-Carlo Simulation Sehr häufig hängen wichtige Ergebnisse von unbekannten Werten wesentlich ab, für die man allerhöchstens statistische Daten hat oder für die man ein Modell der Wahrscheinlichkeitsrechnung

Mehr

Pratts Primzahlzertifikate

Pratts Primzahlzertifikate Pratts Primzahlzertifikate Markus Englert 16.04.2009 Technische Universität München Fakultät für Informatik Proseminar: Perlen der Informatik 2 SoSe 2009 Leiter: Prof. Dr. Nipkow 1 Primzahltest Ein Primzahltest

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

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

Formale Systeme. Binary Decision Diagrams. Prof. Dr. Bernhard Beckert WS 2010/2011 KIT INSTITUT FÜR THEORETISCHE INFORMATIK

Formale Systeme. Binary Decision Diagrams. Prof. Dr. Bernhard Beckert WS 2010/2011 KIT INSTITUT FÜR THEORETISCHE INFORMATIK Formale Systeme Prof. Dr. Bernhard Beckert WS / KIT INSTITUT FÜR THEORETISCHE INFORMATIK KIT University of the State of Baden-Württemberg and National Large-scale Research Center of the Helmholtz Association

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

Datenbankanwendung. Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern. Wintersemester 2014/15. smichel@cs.uni-kl.de

Datenbankanwendung. Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern. Wintersemester 2014/15. smichel@cs.uni-kl.de Datenbankanwendung Wintersemester 2014/15 Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern smichel@cs.uni-kl.de Wiederholung: Anfragegraph Anfragen dieses Typs können als Graph dargestellt werden: Der

Mehr

Algorithmen und Datenstrukturen Bereichsbäume

Algorithmen und Datenstrukturen Bereichsbäume Algorithmen und Datenstrukturen Bereichsbäume Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Überblick Einführung k-d Baum BSP Baum R Baum Motivation

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

Maximaler Fluß und minimaler Schnitt. Von Sebastian Thurm sebastian.thurm@student.uni-magedburg.de

Maximaler Fluß und minimaler Schnitt. Von Sebastian Thurm sebastian.thurm@student.uni-magedburg.de Maximaler Fluß und minimaler Schnitt Von Sebastian Thurm sebastian.thurm@student.uni-magedburg.de Maximaler Fluß und minimaler Schnitt Wasist das? Maximaler Fluss Minimaler Schnitt Warumtut man das? Logistische

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

Programmiertechnik II

Programmiertechnik II Analyse von Algorithmen Algorithmenentwurf Algorithmen sind oft Teil einer größeren Anwendung operieren auf Daten der Anwendung, sollen aber unabhängig von konkreten Typen sein Darstellung der Algorithmen

Mehr

Suche in Spielbäumen Spielbäume Minimax Algorithmus Alpha-Beta Suche. Suche in Spielbäumen. KI SS2011: Suche in Spielbäumen 1/20

Suche in Spielbäumen Spielbäume Minimax Algorithmus Alpha-Beta Suche. Suche in Spielbäumen. KI SS2011: Suche in Spielbäumen 1/20 Suche in Spielbäumen Suche in Spielbäumen KI SS2011: Suche in Spielbäumen 1/20 Spiele in der KI Suche in Spielbäumen Spielbäume Minimax Algorithmus Alpha-Beta Suche Einschränkung von Spielen auf: 2 Spieler:

Mehr

AutoSPARQL. Let Users Query Your Knowledge Base

AutoSPARQL. Let Users Query Your Knowledge Base AutoSPARQL Let Users Query Your Knowledge Base Christian Olczak Seminar aus maschinellem Lernen WS 11/12 Fachgebiet Knowledge Engineering Dr. Heiko Paulheim / Frederik Janssen 07.02.2012 Fachbereich Informatik

Mehr

Informatik II Greedy-Algorithmen

Informatik II Greedy-Algorithmen 7/7/06 lausthal Erinnerung: Dynamische Programmierung Informatik II reedy-algorithmen. Zachmann lausthal University, ermany zach@in.tu-clausthal.de Zusammenfassung der grundlegenden Idee: Optimale Sub-Struktur:

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

Unterscheidung: Workflowsystem vs. Informationssystem

Unterscheidung: Workflowsystem vs. Informationssystem 1. Vorwort 1.1. Gemeinsamkeiten Unterscheidung: Workflowsystem vs. Die Überschneidungsfläche zwischen Workflowsystem und ist die Domäne, also dass es darum geht, Varianten eines Dokuments schrittweise

Mehr

Informatik Aufgaben. 1. Erstelle ein Programm zur Berechnung der Summe der Zahlen von 1 bis n, z.b. n = 100.

Informatik Aufgaben. 1. Erstelle ein Programm zur Berechnung der Summe der Zahlen von 1 bis n, z.b. n = 100. Informatik Aufgaben 1. Erstelle ein Programm zur Berechnung der Summe der Zahlen von 1 bis n, z.b. n = 100. 2. Erstelle ein Programm, das die ersten 20 (z.b.) ungeraden Zahlen 1, 3, 5,... ausgibt und deren

Mehr

Abstrakt zum Vortrag im Oberseminar. Graphdatenbanken. Gero Kraus HTWK Leipzig 14. Juli 2015

Abstrakt zum Vortrag im Oberseminar. Graphdatenbanken. Gero Kraus HTWK Leipzig 14. Juli 2015 Abstrakt zum Vortrag im Oberseminar Graphdatenbanken Gero Kraus HTWK Leipzig 14. Juli 2015 1 Motivation Zur Darstellung komplexer Beziehungen bzw. Graphen sind sowohl relationale als auch NoSQL-Datenbanken

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

Kompakte Graphmodelle handgezeichneter Bilder. Einbeziehung in Autentizierung und Bilderkennung

Kompakte Graphmodelle handgezeichneter Bilder. Einbeziehung in Autentizierung und Bilderkennung Kompakte Graphmodelle handgezeichneter Bilder Einbeziehung in Autentizierung und Bilderkennung Inhaltsverzeichnis 1 Einleitung Das graphische Model.1 Image Thinning................................. 3.

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

Mathematik-Dossier. Die lineare Funktion

Mathematik-Dossier. Die lineare Funktion Name: Mathematik-Dossier Die lineare Funktion Inhalt: Lineare Funktion Lösen von Gleichungssystemen und schneiden von Geraden Verwendung: Dieses Dossier dient der Repetition und Festigung innerhalb der

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

Erzeugung zufälliger Graphen und Bayes-Netze

Erzeugung zufälliger Graphen und Bayes-Netze Erzeugung zufälliger Graphen und Bayes-Netze Proseminar Algorithmen auf Graphen Georg Lukas, IF2000 2002-07-09 E-Mail: georg@op-co.de Folien: http://op-co.de/bayes/ Gliederung 1. Einleitung 2. einfache

Mehr

Algorithmen und Komplexität Teil 1: Grundlegende Algorithmen

Algorithmen und Komplexität Teil 1: Grundlegende Algorithmen Algorithmen und Komplexität Teil 1: Grundlegende Algorithmen WS 08/09 Friedhelm Meyer auf der Heide Vorlesung 8, 4.11.08 Friedhelm Meyer auf der Heide 1 Organisatorisches Am Dienstag, 11.11., fällt die

Mehr

Zwei Aufgaben, die auf windschiefe Regelflächen führen,

Zwei Aufgaben, die auf windschiefe Regelflächen führen, Zwei Aufgaben, die auf windschiefe Regelflächen führen, von À. KIEFER (Zürich). (Als Manuskript eingegangen am 25. Januar 1926.) I. Gesucht im Raum der Ort des Punktes, von dem aus die Zentralprojektionen

Mehr

Die k kürzesten Wege in gerichteten Graphen

Die k kürzesten Wege in gerichteten Graphen Die k kürzesten Wege in gerichteten Graphen Marc Benkert Wintersemester 001/00 1 Einführung 1.1 Problemstellung In einem gerichteten, gewichteten Graphen G = (V, E) sollen die k kürzesten Wege zu zwei

Mehr

Selbststudienunterlagen: Freiformflächen in Pro/Engineer

Selbststudienunterlagen: Freiformflächen in Pro/Engineer Selbststudienunterlagen: Freiformflächen in Pro/Engineer Freiformflächen werden häufig ergänzend zu klassischen Konstruktionselementen eingesetzt. Sie finden dort Verwendung, wo Design eine Rolle spielt

Mehr

368 4 Algorithmen und Datenstrukturen

368 4 Algorithmen und Datenstrukturen Kap04.fm Seite 368 Dienstag, 7. September 2010 1:51 13 368 4 Algorithmen und Datenstrukturen Java-Klassen Die ist die Klasse Object, ein Pfeil von Klasse A nach Klasse B bedeutet Bextends A, d.h. B ist

Mehr

Kürzeste Wege in Graphen. Maurice Duvigneau Otto-von-Guericke Universität Fakultät für Informatik

Kürzeste Wege in Graphen. Maurice Duvigneau Otto-von-Guericke Universität Fakultät für Informatik Kürzeste Wege in Graphen Maurice Duvigneau Otto-von-Guericke Universität Fakultät für Informatik Gliederung Einleitung Definitionen Algorithmus von Dijkstra Bellmann-Ford Algorithmus Floyd-Warshall Algorithmus

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

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