Die k kürzesten Wege in gerichteten Graphen

Save this PDF as:
 WORD  PNG  TXT  JPG

Größe: px
Ab Seite anzeigen:

Download "Die k kürzesten Wege in gerichteten Graphen"

Transkript

1 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 vorgegebenen Knoten s, t gefunden werden. 1. Technische Voraussetzungen Gegeben sei Graph G = (V, E), V = n, E = m Kantenfunktion l : E R + 0 Zykel, Selbst- und Mehrfachkanten sind erlaubt Startknoten s V Zielknoten t V jeder Knoten v V sei von s aus erreichbar ein s t Weg darf an einem Knoten mehrmals vorbeikommen, Zykel dürfen also durchlaufen werden 1. Motivation Was bringt es uns zusätzlich zu der kürzesten Verbindung zweier Punkte auch noch die nächstkürzten zu kennen? Eine Auswahl bezüglich anderer Kriterien als nur der Länge ist möglich. Ein Radfahrer wird z.b. auf die Höhenmeter achten, die er auf einer Strecke zurückzulegen hat (kürzeste Wege im Strassennetz). Die Sensitvität der Lösungen (Ähnlichkeit) kann beitragen zum Verständnis der Aussage, die der Graph illustrieren soll. Dies spielt vor allem in der Molekularbiologie eine Rolle. Allgemein kann man sagen, daß man sich von der Kenntnis der k kürzesten Wege ein besseres Verständnis der Aussage des Graphen verspricht, als von der Kenntnis lediglich eines kürzesten Weges. 1

2 1. Der vorgestellte Algorithmus Der Algorithmus den ich im folgenden vorstellen werde ist sehr konstruktiv. Er benötigt die Vorberechnung eines single destination shortest path tree. Die Destination wird in unserem Fall der Knoten t sein. Ich erhalte den single destination shortest path tree, indem ich in G R einen single source shortest path tree bzgl Knoten s bestimme, wobei G R den Graphen bezeichne, den ich aus G durch umdrehen aller Kanten erhalte. Siehe hierzu Abb. 1. Die erforderliche Laufzeit ist in O(m + n log n) [1] und ist somit verträglich mit der Laufzeit O(m+n log n+k log k), die der Algorithmus zur Bestimmung der k kürzesten s t Wege benötigt. Zur Bestimmung der k kürzesten Wege von s zu allen anderen Knoten wird O(m + n log n + nk log k) benötigt. Die Idee des Algorithmus ist nun, einen s t Weg durch einen beliebigen s u und einen kürzesten u t Weg darzustellen. Dieser wird durch den single destination shortest path tree induziert. Wir müssen nun wissen, wieviel man beim Laufen von s nach u bzgl eines kürzesten s t Weges an Länge verliere. Hierzu wird die Kantenpotentialfunktion δ(e) eingeführt. Abb. Vorbereitungen des Algorithmus.1 Verwendete Bezeichnungen Graph G = (V, E), s, t V T E shortest destination path tree zu t Für u, v V sei d(u, v) Distanz des kürzesten u v Weges induziert durch T Für e E sei δ(e) = l(e) + d(target(e), t) d(source(e), t) Kantenpotentialfunktion e G T sidetrack-kante next T (v) Nachfolger von v in T. Darstellung der Lösungswege Geben wir den kürzesten Weg explizit aus, so kann es passieren, daß der i-te kürzeste Weg die Länge i n hat. Dies ist z.b. der Fall, besteht G aus einem Kreis. Summieren wir die Länge der k Wege auf erhalten wir: k i=1 i n O(k n), was doch eher schädlich wäre gegenüber unser angestrebten Laufzeit des Algorithmus. Da aber nun ein s t Weg durch die verwendeten sidetrack-kanten eindeutig bestimmt ist, (zwischen den sidetrack-kanten laufen wir auf T) genügt es diese auszugeben. Unsere Ausgabe besteht dann aus einer Liste, die einen Pointer auf das Listenelement enthält, aus der der gespeicherte Weg durch Ausführen derselben sidetracks des in diesem Element gespeicherten Weges plus Ausführen des letzten sidetracks, der ebenfalls im Listeneintrag gespeichert ist, hervorgeht. Darüberhinaus kann z.b. die Länge des Weges gespeichert werden. Die Ausgabe des i-ten Weges benötigt in unserer impliziten Darstellung also nur noch konstante

3 s b e h a c f i d g t Abbildung 1: Beispielgraph und single destination shortest path tree Abbildung : Kantenpotentialfunktion δ(e)

4 Zeit, womit wir unser Problem gelöst hätten. Der explizite Weg läßt sich proportional zur Anzahl der Kanten des Weges berechnen. Sicherzustellen ist allerdings noch, daß die angegebenen sidetrack-kanten überhaupt einen s t Weg induzieren, sowie daß der Vorgänger-Weg eines Weges, induziert durch Weglassen des letzten sidetrack, vor dem Weg selbst ausgegeben wird. Dies wird.. sichern.. Erste Folgerungen..1 Folgerung (i) Für e E gilt δ(e) 0 (ii) Für e T gilt δ(e) = 0 Beweis: (i) Wäre δ(e) < 0 stände dies im Widerspruch dazu, daß T ein single destination shortest path tree ist. (ii) Für solche e gilt: l(e) = d(source(e), t) d(target(e), t) somit erhalte ich die Behauptung direkt aus der Definition von δ... Lemma Für jeden s t Weg p gilt l(p) = d(s, t) + e p δ(e) Beweis: Dies wird offensichtlich, da δ(e) den Verlust angibt, den ich bzgl des Weges, der in source(e) startet, e benutzt und dann auf T nach t läuft gegenüber dem Weg, der sofort von source(e) auf T nach t läuft, habe. Ein mathematischer Beweis wäre: l(p) = e p l(e) = e p δ(e)+d(source(e), t) d(target(e), t) = d(s, t) + d(t, t) + e p δ(e) = d(s, t) + e p δ(e)... Folgerung Für jeden s t Weg p = (e 1, e,..., e n ) gilt für den s t Weg p = (e 1, e,..., e n 1 ): l(p) l(p ), wobei e i den i.ten sidetrack bezeichne. Beweis: Folgt direkt aus..1 (i) und.... Der Kürzeste-Wege-Baum (gradunbeschränkt) Wir bilden nun einen Baum, dessen Knoten aus s t Wegen bestehen. Dabei stehen in den Knoten jeweils die ausgeführten sidetracks. Die Wurzel besteht aus der leeren Menge, also dem kürzesten s t Weg laut T. Die sidetracks eines Kindes bestehen aus den sidetracks des Vorgängers sowie einem weiteren sidetrack. Hierbei muss man natürlich aufpassen, welche sidetracks ausführbar sind... liefert uns eine Heap-Ordnung auf dem Baum: Man weiß, daß die Kinder eines Knotens einen höchstens längeren s t Weg induzieren als der Knoten selbst.

5 { } ,7 1,6 1, 1, 1,, ,7, 0 Abbildung : Kürzester Wegebaum, sidetrackkanten per δ identifiziert Abbildung zeigt einen Ausschnitt dieses Baumes für unseren Beispielgraphen. Man erkennt, daß der Baum durchaus unendlich sein kann. In der Abbildung ist dies anhand des Zykels, der durch die sidetrackkanten (,7) induziert wird, verdeutlicht. Wir brauchen uns allerdings gar nicht erst zu fragen, wieviel Laufzeit benötigt würde, diesen Baum zu erstellen, da das Suchen nach den k kürzesten Wegen in diesem Baum sowieso schon mehr Laufzeit verschlingen würde, als wir für unseren Algorithmus veranschlagt haben. Zur Erinnerung: Dies war O(m + n log n + k log k). Das Auffinden der k kürzesten Wege in einem Wegebaum Allgemeiner gesagt suchen wir die k kleinsten Knotenwerte in einem Heap H mit der Restriktion, daß die Nachfolgeknoten einen geringeren Wert haben. Bei uns ist der Heap H der kürzeste Wegebaum, und die Knotenwerte sind die Summen der δ W erte der sidetrackkanten.

6 Geschickterweise geht man folgendermaßen vor: Man fügt die Wurzel von H in einen neuen Heap F ein. Solange noch keine k Knoten ausgegeben worden sind oder der Heap F leer ist (dies wäre der Fall hätte Heap H gar keine k Knoten, in unserem Fall würden also keine k s t Wege existieren) fügt man alle Kinder der aktuellen Wurzel von F in F ein, entnimmt die aktuelle Wurzel aus F und gibt sie aus. Alles in allem eine normale Breitensuche in einem Heap. d bezeichne nun die Anzahl der maximal möglichen Kinder eines Knotens. Die Breitensuche wird also Laufzeit O(d k + k log k) erfordern. Dabei brauchen wir O(d k) um den Heap F aufzubauen und O(k log k) für die solange-schleife. Zu beachten ist hierbei, daß ein Heap in Linearzeit aufgebaut und in logarithmischer Zeit aktualisiert werden kann. In unserem Fall sind die Kinder aber nur durch die Anzahl aller Kanten m beschränkt. Hierzu stelle man sich einen ausreichend dichten Graphen (Anzahl der Kanten von T fällt nicht ins Gewicht) vor, dessen single destination shortest path tree T aus einem einzigen Weg bestehe. Dies führt zu einer Laufzeit von O(m k + k log k) für die Breitensuche führen. Diese könnte wiederrum unsere veranschlagte Laufzeit dominieren! Die folgenden Konstruktionen haben deshalb nur ein Ziel: Einen Kürzesten-Wege-Baum zu erstellen, dessen Knoten konstant viele Nachfolger haben. In diesem Fall veranschlagt die Laufzeit der Breitensuche O(k log k) und verschlechtert die asymptotische Laufzeit des Algorithmus somit nicht mehr. Konstruktion des Kürzesten-Wege-Baums (gradbeschränkt) - Der Algorithmus Man konstruiert einen Graphen P (G) der einen Initialknoten r(s) enthalten wird und in dem alle Knoten maximal vier auslaufende Kanten haben. Der Kürzeste-Wege-Baum wird dann induziert durch alle von r(s) aus erreichbaren Knoten. Jeder Knoten hat also höchstens vier Nachfolger. Man geht dabei wie folgt vor: (i) Bilde für jeden Knoten v V einen -Heap H G (v) bestehend aus allen sidetrackkanten die ich von v aus auf dem durch T induzierten v t Weg erreichen kann. Die Heap-Ordnung wird dabei gegeben durch die δ-werte, der geringste Wert landet wieder in der Wurzel. (ii) Bilde mit all diesen Heaps einen azyklischen Graphen D(G) in dem jeder Knoten einer Kante in G T entspricht und höchstens drei auslaufende Kanten hat. (iii) Bilde aus D(G) den gewünschten Graphen P (G) mit höchstens vier auslaufenden Kanten Die Konstruktionen im einzelnen:.1 Der Heap H G (v) Wiederrum sind drei Schritte erforderlich (i) Zunächst werden für alle Knoten -Heaps H out (v) gebildet bestehend aus den von v direkt auslaufenden sidetrackkanten unter den üblichen Bedingungen. Hinzu kommt die Restriktion, daß die Wurzel nur einen Nachfolger haben darf. 6

7 Die erforderliche Laufzeit für einen Heap ist O( out(v) ). Die Laufzeit für alle diese Heaps beträgt O(m) da jede Kante maximal einmal in einen Heap eingefügt wird. (ii) Nun bildet man für jeden Knoten einen -Heap H T (v), der für alle Knoten w auf dem v t Weg in T die Wurzel von H out (w) enthält. Bilde hierfür zunächst H T (t) und laufe dann die Wege in T rückwärts entlang. Der Heap H T (v) wird gebildet, indem man die Wurzel von H out (v) in den bereits existierenden Heap H T (next T (v)) einfügt. Die Laufzeit beträgt somit im worst-case (T ein Weg) O(n) für diesen Schritt. (iii) Der Heap H G (v) entsteht nun, indem die entsprechenden Heaps H out (w) in den Heap H T (v) eingesetzt werden. Die Tatsache, daß der Heap H T (v) ein -Heap ist und die Restriktion in (i) sichern die -Heap-Eigenschaft von H G (v) Die Laufzeit zur Bildung von H G (v) ist also O(n + m) Als Beispiel für diese Konstruktion diene der Weg s, a, c, f, t in unserem Beispielgraphen. Die Heaps H out ergeben sich sofort zu: H out (t) = H out (f) = H out (c) = 9 10 H out (a) = H out (s) = 1 Die Heaps H T sowie den Heap H G (s) entnehmen Sie der Abbildung. Die Knoten werden wiederrum durch die δ-werte der Kanten identifiziert, denen sie entsprechen. Die *-Knoten werden von der Heapify-Operation, die die Wurzel von H out (w) in H T (next T (w)) einfügt, aktualisiert. Knoten, die kein * bekommen haben, werden später in D(G) dieselben Struktureigenschaften der Heaps H G ausnützen. Für sie wird nämlich in D(G) nur ein Knoten eingefügt werden. Dies ist besonders wichtig, um zu gewährleisten, daß die Anzahl der Knoten in D(G) nicht explodiert! Siehe hierzu auch Eigenschaften von D(G).. Der Graph D(G) Der Graph D(G) hat für jeden Knoten aus H out, der nicht Wurzel ist (Typ 1), sowie für jeden *- Knoten in H G (Typ ) einen Knoten. Ansonsten übernimmt er die H G -Struktur. Beachte dabei, das Kanten zu Nicht-*-Knoten auf den letzten entsprechenden *-Knoten der Vorgänger-Heaps gerichtet sind. Abbildung zeigt D(G) für unseren Beispielgraphen. Eigenschaften von D(G) D(G) ist azyklisch. 7

8 * * * * 9* H T (t) H T (f) H T (c) * 1* * * 9* 9 * H T (a) H T (s) 1* * 9 * H T (s) Abbildung : Heaps H T und Heap H G (s)

9 b e h i t d g f c a s Abbildung : Graph D(G) Jeder Knoten w D(G) kann mit einer Kante e w G identifiziert werden Jeder Knoten v G kann mit einem Knoten h(v) D(G) identifiziert werden, wobei h(v) gerade der Wurzelknoten von H G (v) ist, der immer ein *-Knoten ist. Die in D(G) von h(v) aus erreichbaren Kanten bilden den Heap H G (v), insbesondere hat jeder Knoten also maximal drei auslaufende Kanten. D(G) hat O(m + n log n) viele Knoten. Dies entspricht auch der benötigten Laufzeit, D(G) zu erstellen, da die Heaps H G vorbestimmt waren. Den letzten Punkt schauen wir uns noch etwas genauer an: Da Knoten des Typs 1 mit sidetrackkanten in G identifiziert werden können, existieren maximal m (n 1) Knoten des Typs 1 ( T = n 1). Knoten vom Typ sind etwas aufwendiger zu zählen. Beim Erstellen des Heaps H G (v) werden log i + 1 Knoten durch die Heapify-Operation beim Einfügen der Wurzel von H out (v) in H T (next T (v)) aktualisiert. Wobei i hier die Anzahl der Knoten auf dem v t Weg in T bezeichnet. Im worst-case ist T wieder ein Weg. Die Anzahl Typ-Knoten beläuft sich dann auf n 1 i=1 log i + 1 n + n i=1 log i n + n log n Typ1 und Typ-Knoten aufsummiert ergeben somit O(m + n log n) viele Knoten.. Der Graph P (G) Im Graphen D(G) bilden die von h(s) erreichbaren Knoten gerade den Heap H G (s). Ich kann somit den in h(s) startenden und in w D(G) endenden Weg identifizieren mit dem s t Weg in G, der auf T läuft und lediglich die Kante e w als sidetrackkante benutzt. 9

10 In den meisten Graphen kann ich aber mehrere sidetracks ausführen. Ich muss dies also durch Einfügen zusätzlicher Kanten in D(G) gewährleisten. Hierzu wird für jeden Knoten w D(G), der zu der sidetrackkante (u, v) G gehört, ein Kante (w, h(v)) eingefügt. Dies ist sinnvoll, da ich von h(v) den Heap H G (v) erreiche, also alle von h(v) ausführbaren sidetracks. Der Graph P (G) entsteht also aus D(G) durch Einfügen dieser Kanten, sowie Einfügen eines Initialknotens r(s) und einer Initialkante (r(s), h(s)). Da wir aus P (G) unsere kürzesten s t Wege ablesen wollen, benötigen wir eine Kantenfunktion, die angibt wieviel wir bzgl des kürzesten s t Weges an Länge verlieren. Da P (G)-Wege, die in r(s) starten, mit s t Wegen in G identifiziert werden sollen, geschieht dies wie folgt: Die Initialkante (r(s), h(s)) bekommt das Gewicht δ(h(s)) wobei mit δ(h(s)) der δ-wert der sidetrackkante gemeint ist, die zu h(s) gehört. Kanten (u, v), die schon in D(G) existierten, bekommen Gewicht δ(v) δ(u) Hinzugefügte Kanten (w, h(v)) bekommen Gewicht δ(h(v)) Die Wegindentifizierung läuft nun folgendermassen ab: Der leere Weg in P (G) induziert den kürzesten s t Weg laut T. Steige ich von r(s) zu h(s) ab, bedeutet dies, daß ich mindestens einen sidetrack ausführe. Da nun alle Knoten des Heaps H G (s) erreichbar sind, welche ja gerade alle von s erreichbaren sidetrackkanten identifizieren, wähle ich den auszuführenden sidetrack, indem ich zum entsprechenden Knoten in H G (s) laufe. Dabei wird ein sidetrack jeweils signifikant, falls der P (G)-Weg endet, oder ich wieder zu einem h(v)-knoten aufsteige. Im Fall des Aufsteigens befinde ich mich im Heap H G (v) und wähle hier wiederrum einen sidetrack, den ich ausführen möchte. Dieses Vorgehen kann ich beliebig iterieren. Die Gewichte in P (G) sind so gewählt, daß die Länge des in r(s) startenden Weges den Verlust bzgl des kürzesten s t Weges angibt. Man verdeutliche sich diesen Sachverhalt, indem man in D(G) selbst ein paar geeignete Kanten einfügt! Eigenschaften von P (G) P (G) hat O(m + n log n) viele Knoten, im Vergleich zu D(G) kommt lediglich der Initialknoten hinzu. P (G) kann in O(m + n log n) erstellt werden, da ich lediglich alle Knoten in D(G) betrachten muss, und für diese eine weitere Kante einzufügen habe. Jeder Knoten v P (G) hat maximal vier auslaufende Kanten, da D(G) maximal drei auslaufende Kante hat und eine Kante pro Knoten dazukommt. Jede Kante e P (G) hat ein positives Gewicht. Dies wird durch die Heap-Eigenschaft von H G und dadurch, daß alle Einträge im Heap nicht negativ sind gewährleistet. Jeder in r(s) startende Weg in P (G) entspricht einem s t Weg in G und umgekehrt 10

11 Für die Länge L eines solchen Weges in P (G) gilt: d(s, t) + L = l(induzierter s t Weg) Somit liefert mir die von r(s) in P (G) erreichbaren Knoten den Heap, in dem ich die in.. vorgestellte, gradbeschränkte Breitensuche zum Auffinden der k kürzesten s t Wege laufen lassen kann. Die Gesamtlaufzeit beträgt somit O(m + n log n + k log k), O(m + n log n) für das Erstellen von P (G) und O(k log k) für die anschliessende Breitensuche. Variationen des Problems und abschliessendes Beispiel.1 Die k kürzesten Wege von s zu allen Knoten Die gemachte Konstruktion löst primär das Problem, kürzeste Wege von allen Knoten zu t zu finden. (Einfügen weiterer Initialknoten r(v) in P (G) für beliebigen Knoten v G) Man behilft sich wieder durch G R. Dieselbe Konstruktion wird in G R mit Zielknoten s ausgeführt. Die gefundenen kürzesten Wege von allen Knoten zu s in G R korrespondieren somit zu den gesuchten kürzesten Wegen von s in G. Da wir die Breitensuche nun für jeden Knoten laufen lassen, ergibt sich die Laufzeit zu O(m + n log n + n k log k).. Wege kürzer als vorgebene Grenze Wir können natürlich auch alle s t Wege bestimmen, die kürzer sind als eine vorgegebene Grenze. Das Abbruchkriterium der Breitensuche verändert sich einfach zu: Solange der gefundene Weg eine Länge Grenze hat.. Kürzeste Wege in Graphen mit negativen Kantengewichten Mit der Einschränkung, daß der Graph keine Zykel negativer Länge enthalten darf (denn dann ist der kürzeste Weg nicht bestimmt) funktioniert der Algorithmus auch in Graphen mit negativen Kantengewichten. Man muss allerdings noch die Laufzeit beachten, die man für das Finden eines single source shortest path tree in einem solchen Graphen benötigt. Diese beläuft sich auf O(m n) [].. Die k längsten Wege In azyklischen Graphen (das Problem eines negativen Zykels eleminiert sich also von selbst) können die k längsten Wege gefunden werden, indem man alle Kantengewichte negiert und in G alle kürzesten Wege sucht. Diese induzieren die k längsten Wege in G. Hierzu noch folgendes Beispiel:. Das 0-1 KnapsackProblem Gegeben seien n Objekte, von denen jedes allerdings nur einmal vorhanden ist. ( 0-1). Die Objekte haben Volumen c i N sowie Wertigkeiten w i R +. 11

12 Das übliche Knapsack Problem besteht nun darin, den Sack mit Volumen L N möglichst wertvoll aufzufüllen. Formell: x i w i unter der Bedingung x i c i L zu maximieren. Wobei x i = 1 falls wir das Objekt i nehmen, 0 sonst. Zur Lösung bildet man den Graphen G, der zwei ausgezeichnete Knoten s,t besitzt, sowie für alle i = 1... n + 1 und alle j = 0... L einen Knoten i, j. Von s zu jedem Knoten 1, j verläuft eine Kante mit Gewicht 0, von jedem Knoten i, n + 1 verläuft eine Kante zu t mit Gewicht 0. Für jeden Knoten i, j mit j < n + 1 verläuft eine Kante zu i + 1, j mit Gewicht 0, und eine Kante zu i + 1, j + c i mit Gewicht wi, falls j + c i L. Abbildung 6 zeigt den Graphen G für folgende Werte: L = c 1 =, w 1 = c =, w = c =, w = c = 1, w = c =, w = Stehe ich beim Knoten i, j bedeutet dies, daß ich schon j viel Raum verbraucht habe. Nehme ich eine Querkante, so ist x i =0. Nehme ich eine Kante nach unten, so ist x i = 1. Der gebildete Graph ist azyklisch. Ich kann also laut. die längsten s t Wege suchen, die mir die besten Lösungen für das Knapsack Problem liefern. Berücksichtigen muss ich allerdings, daß mir zwei verschiedene Wege eine gleiche Lösung induzieren können. Literatur [1] M.L.Fredman and R.E.Tarjan. Fibonacci heaps and their uses in improved network optimization algorithms. J.Assoc Comput.Mach. : Assoc.for Computing Machinery, 197. [] A.V.Goldberg. Scaling algorithms for the shortest paths problem. SIAM J.Computing ():9-0. Soc.Industrial and Applied Math., June 199 [] David Eppstein. Finding the k shortest paths, SIAM J.Computing, Vol.(), 6-67, 199 1

13 1,0,0,0,0,0 6,0 1,1,1,1,1,1 6,1 s 1,,,,, 6, t 1,,,,, 6, 1,,,,, 6, 1,,,,, 6, Abbildung 6: Graph zum 0-1 Knapsack Problem

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Datenstrukturen. Mariano Zelke. Sommersemester 2012

Datenstrukturen. Mariano Zelke. Sommersemester 2012 Datenstrukturen Mariano Zelke Sommersemester 2012 Mathematische Grundlagen: Das Handwerkszeug Mariano Zelke Datenstrukturen 2/26 Formeln: n - i = n (n+1) 2 und - i=1 k i=0 a i = ak+1 1 a 1, falls a 1 Rechnen

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

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

Vortrag. Suchverfahren der Künstlichen Intelligenz. Sven Schmidt (Technische Informatik)

Vortrag. Suchverfahren der Künstlichen Intelligenz. Sven Schmidt (Technische Informatik) Vortrag Suchverfahren der Künstlichen Intelligenz Sven Schmidt (Technische Informatik) Suchverfahren der Künstlichen Intelligenz Grundlagen Zustandsraumrepräsentation Generische Suche Bewertung von Suchstrategien

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

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

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

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

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

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

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

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

Vorlesung 3 MINIMALE SPANNBÄUME

Vorlesung 3 MINIMALE SPANNBÄUME Vorlesung 3 MINIMALE SPANNBÄUME 72 Aufgabe! Szenario: Sie arbeiten für eine Firma, die ein Neubaugebiet ans Netz (Wasser, Strom oder Kabel oder...) anschließt! Ziel: Alle Haushalte ans Netz bringen, dabei

Mehr

Lange Nacht der Wissenschaft. Ein Klassiker. Die Mathematik der Kürzesten Wege

Lange Nacht der Wissenschaft. Ein Klassiker. Die Mathematik der Kürzesten Wege Lange Nacht der Wissenschaft Ein Klassiker Die Mathematik der Kürzesten Wege 09.06.2007 schlechte@zib.de Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) http://www.zib.de/schlechte 2 Überblick

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

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

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

PROSEMINAR ONLINE ALGORITHMEN

PROSEMINAR ONLINE ALGORITHMEN PROSEMINAR ONLINE ALGORITHMEN im Wintersemester 2000/2001 Prof. Dr. Rolf Klein, Dr. Elmar Langetepe, Dipl. Inform. Thomas Kamphans (Betreuer) Vortrag vom 15.11.2000 von Jan Schmitt Thema : Finden eines

Mehr

Verkehrsstauspiel: Wieviel Prozent der Autos fahren über blau/grün? Jörg Rambau

Verkehrsstauspiel: Wieviel Prozent der Autos fahren über blau/grün? Jörg Rambau Verkehrsstauspiel: Wieviel Prozent der Autos fahren über blau/grün? Verkehrsstauspiel: Wieviel Prozent der Autos fahren über blau/grün? 1 x x = Anteil der Fahrzeuge, die dort entlang fahren Verkehrsstauspiel:

Mehr

Informatik 11 Kapitel 2 - Rekursive Datenstrukturen

Informatik 11 Kapitel 2 - Rekursive Datenstrukturen Fachschaft Informatik Informatik 11 Kapitel 2 - Rekursive Datenstrukturen Michael Steinhuber König-Karlmann-Gymnasium Altötting 15. Januar 2016 Folie 1/77 Inhaltsverzeichnis I 1 Datenstruktur Schlange

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

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2 Algorithmen und Datenstrukturen 2 Sommersemester 2006 3. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de Algorithmen für Graphen Fragestellungen: Suche

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

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

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

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

Dynamische Optimierung. Kapitel 4. Dynamische Optimierung. Peter Becker (H-BRS) Operations Research II Wintersemester 2014/15 160 / 206

Dynamische Optimierung. Kapitel 4. Dynamische Optimierung. Peter Becker (H-BRS) Operations Research II Wintersemester 2014/15 160 / 206 Kapitel 4 Dynamische Optimierung Peter Becker (H-BRS) Operations Research II Wintersemester 2014/15 160 / 206 Inhalt Inhalt 4 Dynamische Optimierung Allgemeiner Ansatz und Beispiele Stochastische dynamische

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

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

Highway Hierarchies. Kristian Dannowski, Matthias Hoeschel

Highway Hierarchies. Kristian Dannowski, Matthias Hoeschel Highway Hierarchies Kristian Dannowski, Matthias Hoeschel Gliederung Einleitung / Bidirektional Dijkstra Intuition / Naive Strategie Konstruktion der Highway Hierarchie Suche in der Highway Hierarchie

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

11. Primfaktorzerlegungen

11. Primfaktorzerlegungen 78 Andreas Gathmann 11 Primfaktorzerlegungen Euch ist sicher aus der Schule bekannt, dass sich jede positive ganze Zahl a als Produkt a = p 1 p n von Primzahlen schreiben lässt, und dass diese Darstellung

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

Codierungstheorie Rudolf Scharlau, SoSe 2006 9

Codierungstheorie Rudolf Scharlau, SoSe 2006 9 Codierungstheorie Rudolf Scharlau, SoSe 2006 9 2 Optimale Codes Optimalität bezieht sich auf eine gegebene Quelle, d.h. eine Wahrscheinlichkeitsverteilung auf den Symbolen s 1,..., s q des Quellalphabets

Mehr

Kapitel 4. Euklidische Ringe und die Jordansche Normalform. 4.1 Euklidische Ringe

Kapitel 4. Euklidische Ringe und die Jordansche Normalform. 4.1 Euklidische Ringe Kapitel 4 Euklidische Ringe und die Jordansche Normalform 4.1 Euklidische Ringe Die Ringe der ganzen Zahlen, Z, sowie Polynomringe über Körpern, K[X], wobei K ein Körper ist, haben die folgenden Gemeinsamheiten:

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

Codierung, Codes (variabler Länge)

Codierung, Codes (variabler Länge) Codierung, Codes (variabler Länge) A = {a, b, c,...} eine endliche Menge von Nachrichten (Quellalphabet) B = {0, 1} das Kanalalphabet Eine (binäre) Codierung ist eine injektive Abbildung Φ : A B +, falls

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

2. Lernen von Entscheidungsbäumen

2. Lernen von Entscheidungsbäumen 2. Lernen von Entscheidungsbäumen Entscheidungsbäume 2. Lernen von Entscheidungsbäumen Gegeben sei eine Menge von Objekten, die durch Attribut/Wert- Paare beschrieben sind. Jedes Objekt kann einer Klasse

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

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

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

Die Komplexitätsklassen P und NP

Die Komplexitätsklassen P und NP Die Komplexitätsklassen P und NP Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 3. Dezember 2009 Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und

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

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

Seminarvortag zum Thema Virtual Private Network Design im Rahmen des Seminars Network Design an der Universität Paderborn

Seminarvortag zum Thema Virtual Private Network Design im Rahmen des Seminars Network Design an der Universität Paderborn Seminarvortag zum Thema Virtual Private Network Design im Rahmen des Seminars Network Design an der Universität Paderborn Ein 5.55-Approximationsalgorithmus für das VPND-Problem Lars Schäfers Inhalt Einführung:

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

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

HOCHSCHULE KONSTANZ TECHNIK, WIRTSCHAFT UND GESTALTUNG. Das Luzifer-Rätsel. Prof. Dr. Hartmut Plesske Wintersemester 2008/09. von.

HOCHSCHULE KONSTANZ TECHNIK, WIRTSCHAFT UND GESTALTUNG. Das Luzifer-Rätsel. Prof. Dr. Hartmut Plesske Wintersemester 2008/09. von. HOCHSCHULE KONSTANZ TECHNIK, WIRTSCHAFT UND GESTALTUNG Fakultät Informatik Das Luzifer-Rätsel Prof. Dr. Hartmut Plesske Wintersemester 2008/09 von Max Nagl nagl@fh-konstanz.de Inhaltsverzeichnis Inhaltsverzeichnis

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

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

Einführung in die Informatik

Einführung in die Informatik Einführung in die Informatik Jochen Hoenicke Software Engineering Albert-Ludwigs-University Freiburg Sommersemester 2014 Jochen Hoenicke (Software Engineering) Einführung in die Informatik Sommersemester

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

Gleichungen Lösen. Ein graphischer Blick auf Gleichungen

Gleichungen Lösen. Ein graphischer Blick auf Gleichungen Gleichungen Lösen Was bedeutet es, eine Gleichung zu lösen? Was ist überhaupt eine Gleichung? Eine Gleichung ist, grundsätzlich eine Aussage über zwei mathematische Terme, dass sie gleich sind. Ein Term

Mehr

Graphen: Einführung. Vorlesung Mathematische Strukturen. Sommersemester 2011

Graphen: Einführung. Vorlesung Mathematische Strukturen. Sommersemester 2011 Graphen: Einführung Vorlesung Mathematische Strukturen Zum Ende der Vorlesung beschäftigen wir uns mit Graphen. Graphen sind netzartige Strukturen, bestehend aus Knoten und Kanten. Sommersemester 20 Prof.

Mehr

Erstes Nyquistkriterium im Zeitbereich

Erstes Nyquistkriterium im Zeitbereich Erstes Nyquistkriterium im Zeitbereich Für dieses Kapitel wurde vorausgesetzt, dass die Detektion eines Symbols nicht durch Nachbarimpulse beeinträchtigt werden soll. Dies erreicht man durch die Detektion

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

Alles zu seiner Zeit Projektplanung heute

Alles zu seiner Zeit Projektplanung heute Alles zu seiner Zeit Projektplanung heute Nicole Megow Matheon Überblick Projektplanung Planen mit Graphentheorie Maschinenscheduling Ein 1 Mio. $ Problem Schwere & leichte Probleme? Zeitplanungsprobleme?

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

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes. Binäre Bäume Definition: Ein binärer Baum T besteht aus einer Menge von Knoten, die durch eine Vater-Kind-Beziehung wie folgt strukturiert ist: 1. Es gibt genau einen hervorgehobenen Knoten r T, die Wurzel

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

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

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

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

4. Lernen von Entscheidungsbäumen. Klassifikation mit Entscheidungsbäumen. Entscheidungsbaum

4. Lernen von Entscheidungsbäumen. Klassifikation mit Entscheidungsbäumen. Entscheidungsbaum 4. Lernen von Entscheidungsbäumen Klassifikation mit Entscheidungsbäumen Gegeben sei eine Menge von Objekten, die durch /Wert- Paare beschrieben sind. Jedes Objekt kann einer Klasse zugeordnet werden.

Mehr

Mathematik für Studierende der Biologie und des Lehramtes Chemie Wintersemester 2013/14. Auswahl vorausgesetzter Vorkenntnisse

Mathematik für Studierende der Biologie und des Lehramtes Chemie Wintersemester 2013/14. Auswahl vorausgesetzter Vorkenntnisse UNIVERSITÄT DES SAARLANDES FACHRICHTUNG 6.1 MATHEMATIK Dipl.-Math. Kevin Everard Mathematik für Studierende der Biologie und des Lehramtes Chemie Wintersemester 2013/14 Auswahl vorausgesetzter Vorkenntnisse

Mehr

Aufgabe 3: Übersetzen Sie die folgenden natürlich-sprachlichen Aussagen in die Sprache der

Aufgabe 3: Übersetzen Sie die folgenden natürlich-sprachlichen Aussagen in die Sprache der Aufgabe 1: Sind die folgenden Abbildungen jeweils injektiv, surjektiv und/oder bijektiv? (a) f 1 (x) = x, mit f 1 : R + R + (b) f (x) = x, mit f : R R (c) f 3 (x) = x, mit f 3 : R R (d) f 4 (x) = 3x, mit

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

Bäume und Wälder. Bäume und Wälder 1 / 37

Bäume und Wälder. Bäume und Wälder 1 / 37 Bäume und Wälder Bäume und Wälder 1 / 37 Bäume Ein (ungerichteter) Baum ist ein ungerichteter Graph G = (V, E), der zusammenhängend ist und keine einfachen Kreise enthält. Bäume und Wälder 2 / 37 Bäume

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

Fibonacci-Heaps und Amortisierte Analyse

Fibonacci-Heaps und Amortisierte Analyse Kapitel 6 Fibonacci-Heaps und Amortisierte Analyse Der Fibonacci-Heap dient als eine Implementierung für die abstrakte Datenstruktur Priority Queue und wurde von Michael L. Fredman and Robert E. Tarjan

Mehr

x 2 x 1 x 3 5.1 Lernen mit Entscheidungsbäumen

x 2 x 1 x 3 5.1 Lernen mit Entscheidungsbäumen 5.1 Lernen mit Entscheidungsbäumen Falls zum Beispiel A = {gelb, rot, blau} R 2 und B = {0, 1}, so definiert der folgende Entscheidungsbaum eine Hypothese H : A B (wobei der Attributvektor aus A mit x

Mehr

Wie findet das Navi den Weg?

Wie findet das Navi den Weg? 0.05.0 Verwandte Fragestellungen Problemstellungen aus der Praxis Prof. Dr. Paul Rawiel Gliederung des Vortrags Speicherung von Kartendaten zur Navigation Kriterien für die Navigation Finden des kürzesten

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

Kapitel 6: Graphalgorithmen Gliederung

Kapitel 6: Graphalgorithmen Gliederung Gliederung 1. Grundlagen 2. Zahlentheoretische Algorithmen 3. Sortierverfahren 4. Ausgewählte Datenstrukturen 5. Dynamisches Programmieren 6. Graphalgorithmen 7. String-Matching 8. Kombinatorische Algorithmen

Mehr

Kryptologie und Kodierungstheorie

Kryptologie und Kodierungstheorie Kryptologie und Kodierungstheorie Alexander May Horst Görtz Institut für IT-Sicherheit Ruhr-Universität Bochum Lehrerfortbildung 17.01.2012 Kryptologie Verschlüsselung, Substitution, Permutation 1 / 18

Mehr

Wissensbasierte Systeme

Wissensbasierte Systeme WBS4 Slide 1 Wissensbasierte Systeme Vorlesung 4 vom 03.11.2004 Sebastian Iwanowski FH Wedel WBS4 Slide 2 Wissensbasierte Systeme 1. Motivation 2. Prinzipien und Anwendungen 3. Logische Grundlagen 4. Suchstrategien

Mehr

Periodische Fahrpläne und Kreise in Graphen

Periodische Fahrpläne und Kreise in Graphen Periodische Fahrpläne und Kreise in Graphen Vorlesung Algorithmentechnik WS 2009/10 Dorothea Wagner Karlsruher Institut für Technologie Eisenbahnoptimierungsprozess 1 Anforderungserhebung Netzwerkentwurf

Mehr

Wissensbasierte Systeme

Wissensbasierte Systeme WBS3 Slide 1 Wissensbasierte Systeme Sebastian Iwanowski FH Wedel Kap. 3: Algorithmische Grundlagen der KI WBS3 Slide 2 Suchstrategien Warum sind Suchstrategien so wichtig in Wissensbasierten Systemen?

Mehr

5.1 Drei wichtige Beweistechniken... 55 5.2 Erklärungen zu den Beweistechniken... 56

5.1 Drei wichtige Beweistechniken... 55 5.2 Erklärungen zu den Beweistechniken... 56 5 Beweistechniken Übersicht 5.1 Drei wichtige Beweistechniken................................. 55 5. Erklärungen zu den Beweistechniken............................ 56 Dieses Kapitel ist den drei wichtigsten

Mehr

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse 11 13. 501322 Lösung 10 Punkte

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse 11 13. 501322 Lösung 10 Punkte 50. Mathematik-Olympiade. Stufe (Regionalrunde) Klasse 3 Lösungen c 00 Aufgabenausschuss des Mathematik-Olympiaden e.v. www.mathematik-olympiaden.de. Alle Rechte vorbehalten. 503 Lösung 0 Punkte Es seien

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

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

Kapitel 15. Lösung linearer Gleichungssysteme

Kapitel 15. Lösung linearer Gleichungssysteme Kapitel 15. Lösung linearer Gleichungssysteme Lineare Gleichungssysteme Wir befassen uns nun mit der Lösung im allgemeinen nichthomogener linearer Gleichungssysteme in zweifacher Hinsicht. Wir studieren

Mehr