Graphalgorithmen I. Simon Regnet. May 16, Universität Erlangen. Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
|
|
- Gerhard Schubert
- vor 6 Jahren
- Abrufe
Transkript
1 Graphalgorithmen I Simon Regnet Universität Erlangen May 16, 2008 Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
2 Inhalt 1 Motivation 2 Terminologie 3 Datenstrukturen 4 Suche im Graph 5 Topologische Sortierung 6 Zusammenhang in Graphen Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
3 Motivation Warum Graphen? Haupt- und Unterkategorie Hierarchisch angeordnete Kategoriesysteme Durch Verschieben von Kategorien kann ein Zyklus entstehen Graphen können einen Zyklus nachweisen Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
4 Motivation Warum Graphen? Haupt- und Unterkategorie Hierarchisch angeordnete Kategoriesysteme Durch Verschieben von Kategorien kann ein Zyklus entstehen Graphen können einen Zyklus nachweisen Netzwerk Knoten im Netzwerk sind durch Leitungen verbunden Ausfall eines Knotens kann das gesamte Netzwerk zusammenbrechen lassen Mit Graphen kann man Ausfallsicherheit nachweisen Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
5 Motivation Warum Graphen? Prozessabwicklung Fertigungsprozesse bestehen aus verscheidenen Prozessschritten Diese müssen in bestimmter Reihenfolge abgearbeitet werden Durch Graphen kann man die genaue Reihenfolge erstellen Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
6 Terminologie Was ist ein Graph? Ein Graph ist definiert durch G = (V,E) V (vertices): die Menge aller Knoten eines Graphen E (edges): die Menge aller Kanten eines Graphen Eine Kante verbindet genau 2 Knoten Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
7 Terminologie Eigenschaften von Kanten (un)gerichtet Ein Graph kann gerichtet oder ungerichtet sein Ungerichtet: E ist Teilmenge aller 2-elementigen Teilmengen von V Gerichtet: E ist Teilmenge des kartesischen Produktes V V Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
8 Terminologie Eigenschaften von Kanten (un)gerichtet Ein Graph kann gerichtet oder ungerichtet sein Ungerichtet: E ist Teilmenge aller 2-elementigen Teilmengen von V Gerichtet: E ist Teilmenge des kartesischen Produktes V V (un)gewichtet Kanten können mit Gewichten versehen werden Gewichte können positiv oder negativ sein Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
9 Terminologie Nachbarschaft Ein Knoten x heißt Nachbar eines Knotens y in einem ungerichteten Graphen G, wenn x und y zu einer Kante von G gehören Ein Knoten x heißt Vorgänger von y in einem gerichteten Graphen G, wenn (x, y) gerichtete Kante von G ist Analog heißt x Nachfolger von y in G, wenn (y, x) eine gerichtete Kante von G ist Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
10 Terminologie Weg Sei W = (v 1,...,v n ) eine Folge von Knoten aus V mit der Eigenschaft, dass für alle i aus 1,...,n-1 gilt: Die Menge {v i,v i+1 } E, falls G ein ungerichteter Graph ist Das Paar (v i,v i+1 ) E, falls G ein gerichteter Graph ist z.b. A B C D B E Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
11 Terminologie Weg Sei W = (v 1,...,v n ) eine Folge von Knoten aus V mit der Eigenschaft, dass für alle i aus 1,...,n-1 gilt: Die Menge {v i,v i+1 } E, falls G ein ungerichteter Graph ist Das Paar (v i,v i+1 ) E, falls G ein gerichteter Graph ist z.b. A B C D B E Pfad Ein Pfad ist ein Weg in dem jeder Knoten nur höchstens einmal vorkommt z.b. A B E F Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
12 Terminologie Zyklus Ein Zyklus ist ein Weg in dem Start- und Endknoten identisch sind z.b. A B C D B E A Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
13 Terminologie Zyklus Ein Zyklus ist ein Weg in dem Start- und Endknoten identisch sind z.b. A B C D B E A Kreis Ein Kreis ist ein Zyklus in dem nur Start- und Endknoten identisch sind z.b. B C D B Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
14 Terminologie Grad Der Grad d G (v) eines Knotens ist die Anzahl der Kanten, die den Knoten v mit anderen Knoten verbinden In ungerichteten Graphen ist d G (v) die Anzahl der Nachbarn von v In gerichteten Graphen unterscheidet man zwischen Eingangsgrad und Ausgangsgrad eines Knotens Der Eingangsgrad d G (v) ist die Anzahl der Vorgänger von v Der Ausgangsgrad d + G (v) ist die Anzahl der Nachfolger von v Einen Knoten ohne Eingangskanten nennt man Quelle, einen Knoten ohne Ausgangskanten nennt man Senke Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
15 Terminologie Weitere Eigenschaften In einem zusammenhängenden Graph ist jeder Knoten von jedem anderen aus über einen Weg ereichbar Ein Graph, der keine Zyklen enthält, nennt man azyklisch oder Baum Mehrere nicht zusammenhängende Bäume bilden einen Wald Eine Schleife ist eine Kante, die einen Knoten mit sich selbst verbindet G 1 = (V 1, E 1 ) heißt Teilgraph oder Subgraph von G 2 = (V 2, E 2 ), falls V 1 V 2 und E 1 E 2 Umgekehrt heißt G 2 Supergraph oder Obergraph von G 1 Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
16 Datenstrukturen Wie speichert man Graphen im Computer? Es gibt im wesentlichen zwei gebräuchliche Formen: Adjazenzmatrix Adjazenzlisten Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
17 Datenstrukturen Adjazenzmatrix Aufbau Ein Graph mit n Knoten kann durch eine n n-matrix repräsentiert werden Dazu nummeriert man die Knoten von 1 bis n durch und trägt in die Matrix die Beziehungen der Knoten zueinander ein. Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
18 Datenstrukturen Adjazenzmatrix Aufbau Ein Graph mit n Knoten kann durch eine n n-matrix repräsentiert werden Dazu nummeriert man die Knoten von 1 bis n durch und trägt in die Matrix die Beziehungen der Knoten zueinander ein. (un)gerichtet Bei ungerichteten Graphen: { 1, wenn eine Kante Knoten i und j verbindet aij := 0, sonst hier wird nur die halbe Matrix benötigt Bei gerichteten Graphen: { 1, wenn Knoten i Vorgänger von Knoten j ist aij := 0, sonst Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
19 Datenstrukturen Gewichte Bei gewichteten Kanten trägt man das Kantengewicht anstatt der 1 ein Fehlende Kanten werden durch 0 oder gekennzeichnet Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
20 Datenstrukturen Adjazenzliste Aufbau Für jeden Knoten wird eine einfach verkettete Liste erstellt Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
21 Datenstrukturen Adjazenzliste Aufbau Für jeden Knoten wird eine einfach verkettete Liste erstellt (un)gerichtet Bei ungerichteten Graphen: Alle Nachbarn werden an das Ende der Liste des jeweiligen Knotens angehängt Bei gerichteten Graphen: Alle Nachfolger werden an das Ende der Liste des jeweiligen Knotens angehängt Je nach Problemstellung kann man für jeden Knoten auch eine Liste der Vorgänger führen Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
22 Datenstrukturen Gewichte Gewichte werden in den Attributen der Listenelemente gespeichert Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
23 Datenstrukturen Bewertung der Datenstrukturen Adjazenzmatrix Einfach zu implementieren Schnell für Hinzufügen und Löschen von Kanten Schwierig bei nachträglichem Hinzufügen und Löschen von Knoten Viel Speicherplatz nötig (quadratisch anwachsend) Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
24 Datenstrukturen Bewertung der Datenstrukturen Adjazenzmatrix Einfach zu implementieren Schnell für Hinzufügen und Löschen von Kanten Schwierig bei nachträglichem Hinzufügen und Löschen von Knoten Viel Speicherplatz nötig (quadratisch anwachsend) Adjazenzliste Aufwändig zu implementieren Schnell für Hinzufügen und Löschen von Knoten Wenig Speicherplatz nötig Viele graphentheoretische Probleme nur mit Adjazenzlisten in linearer Zeit lösbar Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
25 Suche im Graph Suche im Graph Ziele Wie findet man einen bestimmten Knoten in einem Graph? Wie ist der Graph aufgebaut? Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
26 Suche im Graph Suche im Graph Ziele Wie findet man einen bestimmten Knoten in einem Graph? 2 Arten Wie ist der Graph aufgebaut? Tiefensuche (DFS Depth-First-Search) Breitensuche (BFS Breadth-First-Search) Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
27 Suche im Graph Tiefensuche rekursiv Algorithmus 1 Bestimme den Knoten an dem die Suche beginnen soll 2 Expandiere den Knoten und speichere alle Nachfolger in einem Stack 3 Rufe rekursiv für jeden der Knoten in dem Stack DFS auf 3.1 Falls der Stack leer sein sollte, tue nichts 3.2 Falls das gesuchte Element gefunden worden sein sollte, brich die Suche ab und liefere ein Ergebnis Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
28 Suche im Graph Eigenschaften Schritt 3.2 ist je nach Problemstellung optional Die verwendete Datenstruktur bestimmt auch die Reihenfolge der gefundenen Knoten Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
29 Suche im Graph Eigenschaften Schritt 3.2 ist je nach Problemstellung optional Die verwendete Datenstruktur bestimmt auch die Reihenfolge der gefundenen Knoten Bewertung Geringer Speicherplatzverbrauch Laufzeit: O( V + E ) Problem der Vollständigkeit bei Zyklen und unendlichen Graphen Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
30 Suche im Graph Eigenschaften Schritt 3.2 ist je nach Problemstellung optional Die verwendete Datenstruktur bestimmt auch die Reihenfolge der gefundenen Knoten Bewertung Geringer Speicherplatzverbrauch Laufzeit: O( V + E ) Problem der Vollständigkeit bei Zyklen und unendlichen Graphen Anwendung Topologische Sortierung Zusammenhangskomponenten finden Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
31 Suche im Graph Tiefensuchbaum Der bei der Tiefensuche entstehende Baum nennt man Tiefensuchbaum Die durchgezogenen Linien entsprechen einen rekursiven Aufruf der Tiefensuche Die gestrichelten Linien sind Kanten die im Graph existieren, aber während der Tiefensuche nicht nachgegangen werden Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
32 Suche im Graph Breitensuche Algorithmus 1 Bestimme Anfangsknoten und speichere ihn in einer Warteschlange ab 2 Entnimm Knoten vom Beginn der Warteschlange und markiere ihn 2.1 Falls gesuchtes Element gefunden, gefunden zurücklieferen 2.2 Sonst alle unmarkierten Nachfolger ans Ende der Warteschlange anhänge, die noch nicht in der Warteschlange sind 3 Wiederholen Schritt 2 4 Wenn Warteschlange leer, nicht gefunden zurücklieferen Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
33 Suche im Graph Eigenschaften Schritt 2.1 ist je nach Problemstellung optional Die verwendete Datenstruktur bestimmt auch die Reihenfolge der gefundenen Knoten Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
34 Suche im Graph Eigenschaften Schritt 2.1 ist je nach Problemstellung optional Die verwendete Datenstruktur bestimmt auch die Reihenfolge der gefundenen Knoten Bewertung Hoher Speicherplatzverbrauch Laufzeit: O( V + E ) Problem der Vollständigkeit nur bei unendlichen Graphen ohne Lösung Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
35 Suche im Graph Eigenschaften Schritt 2.1 ist je nach Problemstellung optional Die verwendete Datenstruktur bestimmt auch die Reihenfolge der gefundenen Knoten Bewertung Hoher Speicherplatzverbrauch Laufzeit: O( V + E ) Problem der Vollständigkeit nur bei unendlichen Graphen ohne Lösung Anwendung Allgemein für alle möglichen Distanzprobleme Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
36 Suche im Graph Tiefensuche iterativ Algorithmus 1 Bestimme den Knoten, an dem die Suche beginnen soll 2 Rufe Beschränkte Tiefensuche mit der aktuellen Suchtiefe auf 3 Erhöhe die Suchtiefe um 1 und gehe zu Schritt 2 Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
37 Suche im Graph Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
38 Suche im Graph Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
39 Suche im Graph Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
40 Suche im Graph Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
41 Suche im Graph Eigenschaften Verbesserung der Tiefensuche Kombination aus Tiefensuche und Breitensuche Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
42 Suche im Graph Eigenschaften Verbesserung der Tiefensuche Kombination aus Tiefensuche und Breitensuche Vorteile Vermeidet Problem der Vollständigkeit durch Begrenzung der Suchtiefe Gleicher Speicherplatzverbauch wie bei der rekursiven Tiefensuche Etwas höhere Laufzeit als bei der rekursiven Tiefensuche Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
43 Topologische Sortierung Topologische Sortierung Ziel Durch topologische Sortierung kann man 2 Ziele erreichen Vollständige Ordnung über die Knoten Einen Graphen auf Zyklen testen Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
44 Topologische Sortierung Topologische Sortierung Ziel Durch topologische Sortierung kann man 2 Ziele erreichen Vollständige Ordnung über die Knoten Einen Graphen auf Zyklen testen DAG Ein DAG ist ein directed acyclic graph Bei gerichteten Graphen kann man den Pfeil als eine Beziehung lesen Auf diese Beziehungen wird eine vollständige Ordnung erstellt Bsp.: A kommt vor B Graph muss azyklisch sein Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
45 Topologische Sortierung Topologische Sortierung Eine topologische Sortierung eines DAG G = (V, E): Abbildung ord : V {1,..., n} mit n = V So dass mit (v, w) E auch ord(v) < ord(w) gilt Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
46 Topologische Sortierung Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
47 Topologische Sortierung Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
48 Topologische Sortierung Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
49 Topologische Sortierung Topologische Sortierung durch Tiefensuche Tiefensuche muss nur wenig erweitert werden Vor dem Rückkehren aus einem rekursiven Aufruf legt man den aktuell betrachteten Knoten auf einen Stack Hat man alle Knoten besucht, liegen sie topologisch sortiert auf dem Stack Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
50 Topologische Sortierung Topologische Sortierung durch Tiefensuche Tiefensuche muss nur wenig erweitert werden Vor dem Rückkehren aus einem rekursiven Aufruf legt man den aktuell betrachteten Knoten auf einen Stack Hat man alle Knoten besucht, liegen sie topologisch sortiert auf dem Stack Andere Möglichkeit Ausnutzen der Eigenschaft, dass ein DAG mindesten einen Knoten ohne Vorgänger hat topologische Sortierung azyklischer Graph Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
51 Topologische Sortierung ord[knotentyp]; var lfd.nr. : 0..knotenzahl; Gradnull: stack of knotentyp; Eingrad: array[knotentyp] of 0..knotenzahl-1; setze Eingrad[v] auf den Eingangsgrad von v in G, für alle v V ; übernimm alle Knoten v V mit Eingangsgrad 0 nach Gradnull; lfd.nr := 0; while Gradnull do begin wähle v Gradnull; entferne v aus Gradnull; erhöhe lfd.nr. um 1; ord[v] := lfd.nr.; for all (v,w) E do begin erniedrige Eingrad[w] um 1; if Eingrad[w] = 0 then füge w zu Gradnull hinzu; end; end; if lfd.nr. = knotenzahl then G ist zyklenfrei else G hat zyklen Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
52 Zusammenhang in Graphen Zusammenhang in Graphen Der Zusammenhang eines Graphen sagt viel über die Struktur aus Es gibt verschiedene Arten von Zusammenhang in einem Graph Durch Algorithmen basierend auf Tiefen- oder Breitensuche kann das untersucht werden Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
53 Zusammenhang in Graphen einfacher Zusammenhang Ein ungerichteter Graph ist einfach zusammenhängend, wenn es einen Weg von jedem Knoten zu jeden anderen Knoten im Graph gibt Eine einfache Zusammenhangskomponente eines ungerichteten Graphen G ist ein einfacher zusammenhängender Untergraph von G Eine einfache Erweiterung einer Tiefensuche findet alle zusammenhangskomponenten eines Graphen Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
54 Zusammenhang in Graphen int val[maxv]; int id = 0; struct node{ int v; struct node *next; }; struct node* adj[maxv]; int inval[maxv]; dfs(){ int k,h; for(k = 1; k <= V; k++) val[k] = 0; for(k = 1; k <= V; k++) if(val[k] == 0){ h = id; visit(k); inval[h+1] *= -1; } } visit(int k){ struct node *t; val[k] = ++id; inval[id] = k; for(t = adj[k]; t!= 0; t = t->next) if(val[t->v] == 0) visit(t->v); } Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
55 Zusammenhang in Graphen int val[maxv]; int id = 0; struct node{ int v; struct node *next; }; struct node* adj[maxv]; int inval[maxv]; dfs(){ int k,h; for(k = 1; k <= V; k++) val[k] = 0; for(k = 1; k <= V; k++) if(val[k] == 0){ h = id; visit(k); inval[h+1] *= -1; } } visit(int k){ struct node *t; val[k] = ++id; inval[id] = k; for(t = adj[k]; t!= 0; t = t->next) if(val[t->v] == 0) visit(t->v); } Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
56 Zusammenhang in Graphen adj[] ist eine Adjazenzliste der Knoten Eigentlich eine ganz normale Tiefensuche Mit Ausgabe nach visit(k) könnte man die Zusammenhangskomponenten getrennt ausgeben Besser aber inval[] für späteres Verarbeiten. val[v] gibt die Reihenfolge der Knoten an, in der sie besucht worden sind inval[] ist das inverse Feld dazu. Darin sind Knoten aus der selben Zusammenhangskompopnente benachbart Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
57 Zusammenhang in Graphen zweifacher Zusammenhang Ein ungerichteter Graph ist zweifach zusammenhängend, wenn nach dem Entfernen eines beliebigen Knotens v aus G der verbleibende Graph G-v zusammenhängend bleibt Eine zweifache Zusammenhangskomponente eines ungerichteten Graphen G ist ein zweifach zusammenhängender Untergraph von G Ein Artikulationspunkt in einem zusammenhängenden Graphen ist ein Knoten, der, wenn er gelöscht würde, den Graph in zwei oder mehr einfache Zusammenhangskomponenten zerbrechen lassen würde Eine Brücke in einem zusammenhängenden Graphen ist eine Kante, die, wenn sie gelöscht würde, den Graph in zwei einfache Zusammenhangskomponenten zerbrechen lassen würde Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
58 Zusammenhang in Graphen Gelenkpunkte: A, G, H und J zweifache Zusammenhangskomponenten {A,C,G,D,E,F}, {G,J,L,M}, {B}, {H}, {I}, {K} Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
59 Zusammenhang in Graphen Finden der Artikulationspunkte Wieder bedient man sich der Tiefensuche, um das Problem zu lösen und folgender Aussage: Ein Knoten x ist kein Artikulaionspunkt, falls es für jeden Nachfolger y einen weiter unten im Baum befindlichen Knoten gibt, der (über eine gestrichelte Verbindung) mit einem oberhalb von x im Tiefensuchbaum befindlichen Knoten verbunden ist. Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
60 Zusammenhang in Graphen int visit(int k){ struct node *t; int m, min; val[k] = ++id; min = id; for(t = adj[k]; t!= 0; t = t->next){ if(val[t->v] == 0){ m = visit(t->v); if(m < min) min = m; if(m >= val[k]) printf("%c ", name(k)); } else if(val[t->v] < min) min = val[t->v]; } return min; } Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
61 Zusammenhang in Graphen Ausgabe der Artikulationspunkte visit() bestimmt rekursiv den höchsten Punkt im Baum, der (über eine gestrichelte Verbindung) von irgendeinem Nachfolger des Knotens k erreicht werden kann, und verwendet diese Information, um zu bestimmen, ob k ein Artikulationspunkt ist. Die Artikulationspunkte werden einfach ausgegeben Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
62 Zusammenhang in Graphen Ausgabe der Artikulationspunkte visit() bestimmt rekursiv den höchsten Punkt im Baum, der (über eine gestrichelte Verbindung) von irgendeinem Nachfolger des Knotens k erreicht werden kann, und verwendet diese Information, um zu bestimmen, ob k ein Artikulationspunkt ist. Die Artikulationspunkte werden einfach ausgegeben Problem: Dieser Test kann nicht auf die Wurzel des Tiefensuchbaums angewendet werden. Aber: Wurzel ist Artikulationspunkt, wenn sie 2 oder mehr Nachfolger im Tiefensuchbaum besitzt Wurzel des Tiefensuchbaums ist erster Aufruf von visit() für eine einfach Zusammenhangskomponente Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
63 Zusammenhang in Graphen starker Zusammenhang Ein gerichteter Graph ist stark zusammenhängend, wenn es einen Weg von jedem Knoten zu jedem anderen Knoten im Graph gibt Eine starke Zusammenhangskomponente eines gerichteten Graphen G ist ein stark zusammenhängender Untergraph von G Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
64 Zusammenhang in Graphen Starke Zusammenhangskomponenten: {A,C,G,J,L,M}, {D,E,F}, {H,I}, {B}, {K} Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
65 Zusammenhang in Graphen Algorithmus Entworfen von R. E. Tarjan im Jahre 1972 Erster Algorithmus für dieses Problem der in linearer Zeit abläuft Basiert wieder auf der Tiefensuche Ist der Suche nach Artikulationspunkten sehr ähnlich Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
66 Zusammenhang in Graphen int visit(int k){ struct node *t; int m, min; val[k] = ++id; min = id; stack[p++] = k; for(t = adj[k]; t!= 0; t = t->next){ m = (!val[t->v])? visit(t->v) : val[t->v]; if(m < min) min = m; } if(min == val[k]){ while(stack[p]!= k){ printf(" %c ",name(stack[--p])); val[stack[p]] = V+1; } printf(" \n"); } return min; } Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
67 Zusammenhang in Graphen Algorithmus Verwendet die gleiche Berechnung von min, um den höchsten Knoten im Baum zu finden und gibt diesen zurück Legt die Namen der Knoten auf einen Stack und gibt sie nach Besuchen des letzten Elements der Komponente aus Entscheidende Stelle ist min == val[k]: alle Knoten, die seit Eintritt in die Schleife angetroffen wurden (mit Ausnahme der bereits ausgegebenen), gehören zur selben Komponente wie k Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
68 Zusammenhang in Graphen Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
69 Zusammenhang in Graphen Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
70 Zusammenhang in Graphen Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
71 Zusammenhang in Graphen Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
72 Zusammenhang in Graphen Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
73 Zusammenhang in Graphen Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
74 Zusammenhang in Graphen Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
75 Zusammenhang in Graphen Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
76 Zusammenhang in Graphen Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
77 Zusammenhang in Graphen Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
78 Zusammenhang in Graphen Literatur Algorithmen in C, von Robert Sedgewick Algorithmen und Datenstrukturen, von T. Ottmann / P. Widmayer Graphenalgorithmen (Hallo Welt! 2006), von Philipp Kutzer Simon Regnet (Universität Erlangen) Graphalgorithmen I May 16, / 56
Definition Ein gerichteter Graph G = (V, E) ist ein Graph von geordneten Paaren (u, v) mit u V und v V.
Kapitel 4 Graphenalgorithmen 4.1 Definitionen Definition 4.1.1. Der Graph G = (V, E) ist über die beiden Mengen V und E definiert, wobei V die Menge der Knoten und E die Menge der Kanten in dem Graph ist.
Mehr15. Elementare Graphalgorithmen
Graphen sind eine der wichtigste Modellierungskonzepte der Informatik Graphalgorithmen bilden die Grundlage vieler Algorithmen in der Praxis Zunächst kurze Wiederholung von Graphen. Dann Darstellungen
MehrDatenstrukturen. Mariano Zelke. Sommersemester 2012
Datenstrukturen Mariano Zelke Sommersemester 2012 Tiefensuche: Die globale Struktur Der gerichtete oder ungerichtete Graph G werde durch seine Adjazenzliste A repräsentiert. Im Array besucht wird vermerkt,
MehrDatenstrukturen. einfach verkettete Liste
einfach verkettete Liste speichert Daten in einer linearen Liste, in der jedes Element auf das nächste Element zeigt Jeder Knoten der Liste enthält beliebige Daten und einen Zeiger auf den nächsten Knoten
MehrKap. 6.3: Traversieren von Graphen Kap. 6.4: Elementare Graphalgorithmen
Kap. 6.3: Traversieren von Graphen Kap. 6.4: Elementare Graphalgorithmen Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 19. VO DAP2 SS 2008 19. Juni 2008 1
MehrVorlesung Informatik 2 Algorithmen und Datenstrukturen. (20 Graphen) T. Lauer
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (20 Graphen) T. Lauer 1 Motivation Wie komme ich am besten von Freiburg nach Ulm? Was ist die kürzeste Rundreise durch eine gegebene Menge von Städten?
MehrAlgorithmen 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
MehrEin Graph ist ein Paar (V,E), wobei V eine Menge von Knoten und E eine Menge von Kanten (v,w) mit v,w in V ist.
Graphen Definition: Ein Graph ist ein Paar (V,E), wobei V eine Menge von Knoten und E eine Menge von Kanten (v,w) mit v,w in V ist. Begriffe: Gerichteter Graph: Alle Kanten haben eine Richtung vom Anfangsknoten
MehrDefinition Gerichteter Pfad. gerichteter Pfad, wenn. Ein gerichteter Pfad heißt einfach, falls alle u i paarweise verschieden sind.
3.5 Gerichteter Pfad Definition 291 Eine Folge (u 0, u 1,..., u n ) mit u i V für i = 0,..., n heißt gerichteter Pfad, wenn ( i {0,..., n 1} ) [ (u i, u i+1 ) A]. Ein gerichteter Pfad heißt einfach, falls
MehrAlgorithmen 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
Mehr8 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\ E) eines Graphen G = (V, E) besitzt die gleiche Knotenmenge V und hat als Kantenmenge alle Kanten des vollständigen Graphen ohne die Kantenmenge E.
Das Komplement Ḡ = (V, ( V ) \ E) eines Graphen G = (V, E) besitzt die gleiche Knotenmenge V und hat als Kantenmenge alle Kanten des vollständigen Graphen ohne die Kantenmenge E. Ein Graph H = (V, E )
MehrZweizusammenhang und starker Zusammenhang
.. Zeizusammenhang und starker Zusammenhang Carsten Gutenger Vorlesung Algorithmen und Datenstrukturen WS /. Januar Zeizusammenhang Betrachte ein Netzerk (Graph) Z.B. Computernetzerk, Flug- oder Schienennetzerk
Mehr9. Übung Algorithmen I
INSTITUT FÜR THEORETISCHE INFORMATIK 1 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft Institut für Theoretische www.kit.edu Informatik Musterlösung
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Datenstrukturen: Anordnung von Daten, z.b. als Liste (d.h. in bestimmter Reihenfolge) Beispiel: alphabetisch sortiertes Wörterbuch... Ei - Eibe - Eidotter... als Baum (d.h.
MehrGraphen. Leonhard Euler ( )
Graphen Leonhard Euler (1707-1783) 2 Graph Ein Graph besteht aus Knoten (nodes, vertices) die durch Kanten (edges) miteinander verbunden sind. 3 Nachbarschaftsbeziehungen Zwei Knoten heissen adjazent (adjacent),
MehrAlgorithmen 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
Mehr1 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
MehrVerkettete Datenstrukturen: Bäume
Verkettete Datenstrukturen: Bäume 1 Graphen Gerichteter Graph: Menge von Knoten (= Elementen) + Menge von Kanten. Kante: Verbindung zwischen zwei Knoten k 1 k 2 = Paar von Knoten (k 1, k 2 ). Menge aller
MehrGraphen: 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.
MehrQuicksort ist ein Divide-and-Conquer-Verfahren.
. Quicksort Wie bei vielen anderen Sortierverfahren (Bubblesort, Mergesort, usw.) ist auch bei Quicksort die Aufgabe, die Elemente eines Array a[..n] zu sortieren. Quicksort ist ein Divide-and-Conquer-Verfahren.
MehrGraphen und Bäume. A.1 Graphen
Algorithmen und Datenstrukturen 96 A Graphen und Bäume A.1 Graphen Ein gerichteter Graph (auch Digraph) G ist ein Paar (V, E), wobei V eine endliche Menge und E eine Relation auf V ist, d.h. E V V. V heißt
MehrInformatik 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
MehrTheoretische Informatik 1 WS 2007/2008. Prof. Dr. Rainer Lütticke
Theoretische Informatik 1 WS 2007/2008 Prof. Dr. Rainer Lütticke Inhalt der Vorlesung Grundlagen - Mengen, Relationen, Abbildungen/Funktionen - Datenstrukturen - Aussagenlogik Automatentheorie Formale
MehrEffiziente Algorithmen
Effiziente Algorithmen Graphdurchläufe Vorlesender: Martin Aumüller (nach Folien von Prof. Martin Dietzfelbinger) April/Mai 0 FG KTuEA, TU Ilmenau Effiziente Algorithmen Sommersemester 0 Einleitung Kapitel
Mehr8. Übung zu Algorithmen I 15. Juni 2016
8. Übung zu Algorithmen I 15. Juni 2016 Lisa Kohl Lisa.Kohl@kit.edu (mit Folien von Julian Arz, Timo Bingmann, Sebastian Schlag, Christian Staudt und Christoph Striecks) Nachtrag: Quicksort, alternative
MehrGrundlagen Algorithmen und Datenstrukturen TUM Sommersemester 2011 (2) Dozent: Hanjo Täubig
Grundlagen Algorithmen und Datenstrukturen TUM Sommersemester 2011 (2) Dozent: Hanjo Täubig Janosch Maier 3. August 2011 Inhaltsverzeichnis 1 Sortieren 3 1.1 Externes Sortieren..........................
MehrADS: Algorithmen und Datenstrukturen 2
ADS: Algorithmen und Datenstrukturen Der Tragödie IV. Theyl Peter F. Stadler & Konstantin Klemm Bioinformatics Group, Dept. of Computer Science & Interdisciplinary Center for Bioinformatics, University
MehrDas Heiratsproblem. Definition Matching
Das Heiratsproblem Szenario: Gegeben: n Frauen und m > n Männer. Bekanntschaftsbeziehungen zwischen allen Männern und Frauen. Fragestellung: Wann gibt es für jede der Frauen einen Heiratspartner? Modellierung
MehrDatenstrukturen & 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
MehrVorlesung Informatik 2 Algorithmen und Datenstrukturen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (18 Bäume: Grundlagen und natürliche Suchbäume) Prof. Dr. Susanne Albers Bäume (1) Bäume sind verallgemeinerte Listen (jedes Knoten-Element kann mehr
MehrAlgorithmen und Datenstrukturen 2
Algorithmen und Datenstrukturen 2 Sommersemester 2006 5. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de Wdhlg.: Dijkstra-Algorithmus I Bestimmung der
MehrTechnische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen
Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen 186.172 Algorithmen und Datenstrukturen 1 VL 4.0 Übungsblatt 4 für die Übung
MehrVollständiger Graph. Definition 1.5. Sei G =(V,E) ein Graph. Gilt {v, w} E für alle v, w V,v w, dann heißt G vollständig (complete).
Vollständiger Graph Definition 1.5. Sei G =(V,E) ein Graph. Gilt {v, w} E für alle v, w V,v w, dann heißt G vollständig (complete). Mit K n wird der vollständige Graph mit n Knoten bezeichnet. Bemerkung
MehrInformatik II, SS 2014
Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 11 (4.6.2014) Binäre Suchbäume II Algorithmen und Komplexität Binäre Suchbäume Binäre Suchbäume müssen nicht immer so schön symmetrisch sein
MehrDatenstrukturen. Mariano Zelke. Sommersemester 2012
Datenstrukturen Mariano Zelke Sommersemester 2012 Einfach verkettete Listen Mariano Zelke Datenstrukturen 2/32 Eine Zeiger-Implementierung von einfach verketteten Listen, also Listen mit Vorwärtszeigern.
MehrBreiten- und Tiefensuche in Graphen
Breiten- und Tiefensuche in Graphen Inhalt Theorie. Graphen. Die Breitensuche in der Theorie am Beispiel eines ungerichteten Graphen. Die Tiefensuche in der Theorie am Beispiel eines gerichteten Graphen
MehrWS 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
MehrGrundlagen Datenstrukturen Transitive Hülle Traversierung Kürzeste Wege Spannender Baum Max. Fluss Zuordnungen. 6. Graphen
. Graphen viele praktische (Optimierungs-)Probleme sind als graphentheoretische Probleme formulierbar z.b. in Produktionsplanung, Personaleinsatzplanung,.... Grundlagen gerichteter, ungerichteter und gewichteter
MehrÜbungsblatt 2 - Lösung
Institut für Theoretische Informatik Lehrstuhl Prof. Dr. D. Wagner Übungsblatt 2 - Lösung Vorlesung Algorithmentechnik im WS 08/09 Ausgabe 04. November 2008 Abgabe 8. November, 5:0 Uhr (im Kasten vor Zimmer
Mehr3. Musterlösung. Problem 1: Boruvka MST
Universität Karlsruhe Algorithmentechnik Fakultät für Informatik WS 06/07 ITI Wagner. Musterlösung Problem : Boruvka MST pt (a) Beweis durch Widerspruch. Sei T MST von G, e die lokal minimale Kante eines
MehrMinimal spannende Bäume
http://www.uni-magdeburg.de/harbich/ Minimal spannende Fakultät für Informatik Otto-von-Guericke-Universität 2 Inhalt Definition Wege Untergraphen Kantengewichtete Graphen Minimal spannende Algorithmen
MehrAusarbeitung zum Modulabschluss. Graphentheorie. spannende Bäume, bewertete Graphen, optimale Bäume, Verbindungsprobleme
Universität Hamburg Fachbereich Mathematik Seminar: Proseminar Graphentheorie Dozentin: Haibo Ruan Sommersemester 2011 Ausarbeitung zum Modulabschluss Graphentheorie spannende Bäume, bewertete Graphen,
MehrGrundbegriffe der Informatik
Grundbegriffe der Informatik Einheit 11: Graphen Thomas Worsch Karlsruher Institut für Technologie, Fakultät für Informatik Wintersemester 2010/2011 1/59 Graphische Darstellung von Zusammenhängen schon
MehrKodieren Von Graphen
Kodieren Von Graphen Allgemeine Anwendungen: Routenplaner Netzpläne Elektrische Schaltungen Gebäudeerkennung aus Luftaufnahmen Definitionen:? Graph Ein Graph G besteht aus einem geordneten Paar G = (V,E)
MehrCustomization (Zuschneiden)
Customization (Zuschneiden) Anpassen der (Graph)Datenstruktur an die Anwendung. I Ziel: schnell, kompakt. I benutze Entwurfsprinzip: make the common case fast I Listen vermeiden Mögliches Problem: Software-Engineering-Alptraum
MehrDiskrete Mathematik. Sebastian Iwanowski FH Wedel. Kap. 6: Graphentheorie
Referenzen zum Nacharbeiten: Diskrete Mathematik Sebastian Iwanowski FH Wedel Kap. 6: Graphentheorie Lang 6 Beutelspacher 8.1-8.5 Meinel 11 zur Vertiefung: Aigner 6, 7 (7.4: Algorithmus von Dijkstra) Matousek
MehrDas Briefträgerproblem
Das Briefträgerproblem Paul Tabatabai 30. Dezember 2011 Inhaltsverzeichnis 1 Problemstellung und Modellierung 2 1.1 Problem................................ 2 1.2 Modellierung.............................
MehrAlgorithmen und Datenstrukturen (für ET/IT) Wiederholung: Ziele der Vorlesung. Wintersemester 2012/13. Dr. Tobias Lasser
Algorithmen und Datenstrukturen (für ET/IT) Wintersemester 2012/13 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Wiederholung: Ziele der Vorlesung Wissen: Algorithmische
MehrAnmerkungen 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
Mehr4. Kreis- und Wegeprobleme Abstände in Graphen
4. Kreis- und Wegeprobleme Abstände in Graphen Abstände in Graphen Definition 4.4. Es sei G = (V,E) ein Graph. Der Abstand d(v,w) zweier Knoten v,w V ist die minimale Länge eines Weges von v nach w. Falls
MehrAlgorithmen & Komplexität
Algorithmen & Komplexität Angelika Steger Institut für Theoretische Informatik steger@inf.ethz.ch Kürzeste Pfade Problem Gegeben Netzwerk: Graph G = (V, E), Gewichtsfunktion w: E N Zwei Knoten: s, t Kantenzug/Weg
MehrKapitel 4: Netzplantechnik Gliederung der Vorlesung
Gliederung der Vorlesung 1. Grundbegriffe 2. Elementare Graphalgorithmen und Anwendungen 3. Kürzeste Wege 4. Netzplantechnik 5. Minimal spannende Bäume 6. Traveling Salesman Problem 7. Flüsse in Netzwerken
MehrKapitel 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
MehrBinary Decision Diagrams (Einführung)
Binary Decision Diagrams (Einführung) Binary Decision Diagrams (BDDs) sind bestimmte Graphen, die als Datenstruktur für die kompakte Darstellung von booleschen Funktionen benutzt werden. BDDs wurden von
MehrGrundlagen: Algorithmen und Datenstrukturen
Grundlagen: Algorithmen und Datenstrukturen Prof. Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 00
MehrGraphen. Formale Methoden der Informatik WiSe 2010/2011 teil 2, folie 1 (von 60)
Graphen Formale Methoden der Informatik WiSe 2010/2011 teil 2, folie 1 (von 60) Teil II: Graphen 1. Einführung 2. Wege und Kreise in Graphen, Bäume 3. Planare Graphen / Traveling Salesman Problem 4. Transportnetzwerke
Mehr3.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
MehrGliederung. 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
MehrKonzepte 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
MehrGraphentheorie. Eulersche Graphen. Eulersche Graphen. Eulersche Graphen. Rainer Schrader. 14. November Gliederung.
Graphentheorie Rainer Schrader Zentrum für Angewandte Informatik Köln 14. November 2007 1 / 22 2 / 22 Gliederung eulersche und semi-eulersche Graphen Charakterisierung eulerscher Graphen Berechnung eines
MehrAlgorithmen und Datenstrukturen in der Bioinformatik Viertes Übungsblatt WS 05/06 Musterlösung
Konstantin Clemens Johanna Ploog Freie Universität Berlin Institut für Mathematik II Arbeitsgruppe für Mathematik in den Lebenswissenschaften Algorithmen und Datenstrukturen in der Bioinformatik Viertes
MehrAlgo&Komp. - Wichtige Begriffe Mattia Bergomi Woche 6 7
1 Kürzeste Pfade Woche 6 7 Hier arbeiten wir mit gewichteten Graphen, d.h. Graphen, deren Kanten mit einer Zahl gewichtet werden. Wir bezeichnen die Gewichtsfunktion mit l : E R. Wir wollen einen kürzesten
MehrKürzeste Wege in Graphen. Orte mit Straßenverbindungen. Coma I Rolf Möhring
Kürzeste Wege in Graphen Orte mit Straßenverbindungen Orte als Knoten eines Graphen Straßenverbindungen als Kanten eines Graphen Ungerichteter Graph G = (V,E) Kanten Knoten Knotenmenge V = {,,n} oder {,,n
Mehr11.1 Grundlagen - Denitionen
11 Binärbäume 11.1 Grundlagen - Denitionen Denition: Ein Baum ist eine Menge, die durch eine sog. Nachfolgerrelation strukturiert ist. In einem Baum gilt: (I) (II) 1 Knoten w ohne VATER(w), das ist die
MehrAlgorithmen 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
MehrGliederung. 5. Compiler. 6. Sortieren und Suchen. 7. Graphen
5. Compiler Gliederung 1. Struktur eines Compilers 2. Syntaxanalyse durch rekursiven Abstieg 3. Ausnahmebehandlung 4. Arrays und Strings 6. Sortieren und Suchen 1. Grundlegende Datenstrukturen 2. Bäume
MehrEinführung in die Informatik 2
Einführung in die Informatik 2 Listen & Bäume Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz E 202 SvenKosub@uni-konstanzde Sprechstunde: Freitag, 14:00-15:00 Uhr, onv Sommersemester
MehrKAPITEL 3 MATCHINGS IN BIPARTITEN GRAPHEN
KAPITEL 3 MATCHINGS IN BIPARTITEN GRAPHEN F. VALLENTIN, A. GUNDERT 1. Definitionen Notation 1.1. Ähnlich wie im vorangegangenen Kapitel zunächst etwas Notation. Wir beschäftigen uns jetzt mit ungerichteten
MehrKlausur Informatik B April Teil I: Informatik 3
Informatik 3 Seite 1 von 8 Klausur Informatik B April 1998 Teil I: Informatik 3 Informatik 3 Seite 2 von 8 Aufgabe 1: Fragekatalog (gesamt 5 ) Beantworten Sie folgende Fragen kurz in ein oder zwei Sätzen.
MehrFortgeschrittene Netzwerk- und Graph-Algorithmen
Fortgeschrittene Netzwerk- und Graph-Algorithmen Dr. Hanjo Täubig Lehrstuhl für Eziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Wintersemester 2007/08
MehrMinimal spannender Baum
Minimal spannender Baum 16 1 2 21 5 11 19 6 6 3 14 33 10 5 4 18 Die Kreise zeigen die vorgesehenen Standorte neu zu errichtender Filialen einer Bank. Entlang der bestehenden Straßen sollen Telefonleitungen
MehrBäume und Wälder. Definition 1
Bäume und Wälder Definition 1 Ein Baum ist ein zusammenhängender, kreisfreier Graph. Ein Wald ist ein Graph, dessen Zusammenhangskomponenten Bäume sind. Ein Knoten v eines Baums mit Grad deg(v) = 1 heißt
MehrBeispiellösung zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 5
Robert Elsässer Paderborn, den 15. Mai 2008 u.v.a. Beispiellösung zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 5 AUFGABE 1 (6 Punkte): Nehmen wir an, Anfang bezeichne in einer normalen
MehrGraphenalgorithmen I
enalgorithmen I Tobias Pröger 21. Dezember 2016 Erklärung: Diese Mitschrift ist als Ergänzung zur Vorlesung gedacht. Wir erheben keinen Anspruch auf Vollständigkeit und Korrektheit. Wir sind froh über
Mehr1. 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
MehrEinführung in Heuristische Suche
Einführung in Heuristische Suche Beispiele 2 Überblick Intelligente Suche Rundenbasierte Spiele 3 Grundlagen Es muss ein Rätsel / Puzzle / Problem gelöst werden Wie kann ein Computer diese Aufgabe lösen?
Mehr2. Repräsentationen von Graphen in Computern
2. Repräsentationen von Graphen in Computern Kapitelinhalt 2. Repräsentationen von Graphen in Computern Matrizen- und Listendarstellung von Graphen Berechnung der Anzahl der verschiedenen Kantenzüge zwischen
MehrMafI I: Logik & Diskrete Mathematik (F. Hoffmann)
Lösungen zum 14. und letzten Aufgabenblatt zur Vorlesung MafI I: Logik & Diskrete Mathematik (F. Hoffmann) 1. Ungerichtete Graphen (a) Beschreiben Sie einen Algorithmus, der algorithmisch feststellt, ob
Mehr2 Tiefen- und Breitensuche
2 Tiefen- und Breitensuche Übersicht 2.1 SpannendeBäume... 21 2.2 WiefindetmanspannendeBäume?... 24 2.3 AnwendungenvonBFSundDFS... 29 2.4 Aufgaben... 33 2.1 Spannende Bäume Vor nicht allzu langer Zeit
MehrAlgorithmen II Vorlesung am
Algorithmen II Vorlesung am 0..0 Minimale Schnitte in Graphen INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales Forschungszentrum
MehrVorlesung Datenstrukturen
Vorlesung Datenstrukturen Binärbaum Suchbaum Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 356 Datenstruktur Binärbaum Strukturrepräsentation des mathematischen Konzepts Binärbaum
MehrKü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
Mehr13. 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),
MehrPunkt-in-Polygon-Suche Übersicht
Folie 1 von 43 Punkt-in-Polygon-Suche Übersicht! Praxisbeispiel/Problemstellung! Zählen von Schnittpunkten " Schnitt einer Halbgerade mit der Masche " Aufwandsbetrachtung! Streifenkarte " Vorgehen und
Mehr3. Binäre Suchbäume. 3.1 Natürliche binäre Suchbäume. EADS 3.1 Natürliche binäre Suchbäume 78/598 ľernst W. Mayr
3. Binäre Suchbäume 3.1 Natürliche binäre Suchbäume Definition 18 Ein natürlicher binärer Suchbaum über einem durch total geordneten Universum U ist ein als interner Suchbaum organisierter Binärbaum (also:
MehrTECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2009 Grundlagen: Algorithmen und Datenstrukturen Übungsblatt 11 Prof. Dr. Helmut Seidl, S. Pott,
MehrDatenstrukturen & Algorithmen Lösungen zu Blatt 6 FS 14
Eidgenössische Technische Hochschule Zürich Ecole polytechnique fédérale de Zurich Politecnico federale di Zurigo Federal Institute of Technology at Zurich Institut für Theoretische Informatik 2. April
MehrC- Kurs 09 Dynamische Datenstrukturen
C- Kurs 09 Dynamische Datenstrukturen Dipl.- Inf. Jörn Hoffmann jhoffmann@informaak.uni- leipzig.de Universität Leipzig InsAtut für InformaAk Technische InformaAk Flexible Datenstrukturen Institut für
MehrAlgorithmen und Datenstrukturen 2-2. Seminar -
Algorithmen und Datenstrukturen 2-2. Seminar - Dominic Rose Bioinformatics Group, University of Leipzig Sommersemster 2010 Outline 2. Übungsserie: 3 Aufgaben, insgesamt 30 Punkte A4 Flußnetzwerk, Restgraphen
Mehr4 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
MehrInformatik II Vorlesung am D-BAUG der ETH Zürich
Informatik II Vorlesung am D-BAUG der ETH Zürich Vorlesung 9, 2.5.2016 [Nachtrag zu Vorlesung : Numerische Integration, Zusammenfassung Objektorientierte Programmierung] Dynamische Datenstrukturen II:
MehrWiederholung zu Flüssen
Universität Konstanz Methoden der Netzwerkanalyse Fachbereich Informatik & Informationswissenschaft SS 2008 Prof. Dr. Ulrik Brandes / Melanie Badent Wiederholung zu Flüssen Wir untersuchen Flüsse in Netzwerken:
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Wintersemester 2012/13 22. Vorlesung Tiefensuche und Topologische Sortierung Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Vorlesungsumfrage Nutzen Sie die Vorlesungsbefragung
MehrName: Seite 2. Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort.
Name: Seite 2 Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort. Aufgabe 1 (8 Punkte) 1. Wie viele negative Zahlen (ohne 0) lassen sich im 4-Bit-Zweierkomplement darstellen?
MehrAufgabe 4.2 Sei G = (V, E, l) ein ungerichteter, gewichteter und zusammenhängender Graph.
Aufgabe 4.2 Sei G = (V, E, l) ein ungerichteter, gewichteter und zusammenhängender Graph. a) Es seien W 1 = (V, E 1 ), W 2 = (V, E 2 ) Untergraphen von G, die beide Wälder sind. Weiter gelte E 1 > E 2.
MehrWas bisher geschah. 1. Zerlegung in monotone Polygone 2. Triangulierung der monotonen Teilpolygone
Was bisher geschah Motivation, Beispiele geometrische Objekte im R 2 : Punkt, Gerade, Halbebene, Strecke, Polygon, ebene Zerlegung in Regionen (planare Graphen) maschinelle Repräsentation geometrischer
MehrKombinatorische 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 4 Programm des
MehrBranch-and-Bound. Wir betrachten allgemein Probleme, deren Suchraum durch Bäume dargestellt werden kann. Innerhalb des Suchraums suchen wir
Effiziente Algorithmen Lösen NP-vollständiger Probleme 289 Branch-and-Bound Wir betrachten allgemein Probleme, deren Suchraum durch Bäume dargestellt werden kann. Innerhalb des Suchraums suchen wir 1.
MehrKapitel 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