• Keine Ergebnisse gefunden

20. Mai 2020

N/A
N/A
Protected

Academic year: 2022

Aktie "20. Mai 2020"

Copied!
4
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Algorithmen und Datenstrukturen

C7. Graphen: Ausblick

Gabriele R¨ oger

Universit¨ at Basel

20. Mai 2020

G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 20. Mai 2020 1 / 15

Algorithmen und Datenstrukturen

20. Mai 2020 — C7. Graphen: Ausblick

C7.1 Andere Graphenprobleme

G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 20. Mai 2020 2 / 15

C7. Graphen: Ausblick Andere Graphenprobleme

C7.1 Andere Graphenprobleme

G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 20. Mai 2020 3 / 15

C7. Graphen: Ausblick Andere Graphenprobleme

Inhalt dieser Veranstaltung

A&D

Sortieren Komplexit¨ ats-

analyse Fundamentale Datenstrukturen

Suchen Graphen

Repr¨ asentation Exploration Exploration:

Anwendungen Minimale Spannb¨ aume

K¨ urzeste Pfade Andere Graphenprobleme Strings

Weiterf¨ uhrende Themen

G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 20. Mai 2020 4 / 15

(2)

C7. Graphen: Ausblick Andere Graphenprobleme

Crashkurs Komplexit¨ atstheorie

I Entscheidungsprobleme: Ja/Nein-Antwort gesucht Gegeben gewichteter Graph, Knoten s, t und Zahl K.

Gibt es einen Pfad von s nach t mit Kosten h¨ ochstens K?

I Suchprobleme: tats¨ achliche L¨ osung gesucht Gegeben gewichteter Graph und Knoten s, t.

Finde einen k¨ urzesten Pfad von s nach t.

G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 20. Mai 2020 5 / 15

C7. Graphen: Ausblick Andere Graphenprobleme

Crashkurs Komplexit¨ atstheorie

Wir unterscheiden verschiedene Klassen von Problemen:

I P: alle Probleme, die man mit einem polynomiellen

Algorithmus (in O(p) f¨ ur irgendein Polynom p) l¨ osen kann.

I NP: alle Probleme, bei denen man einen Beweis f¨ ur eine Ja-Antwort des Entscheidungsproblems in polynomieller Zeit verifizieren kann.

Beweis: z.B. konkreter Pfad mit Kosten ≤ K

I P 6= NP? Wir wissen es nicht.

I NP-schwere Probleme: Probleme, die mindestens so schwierig sind, wie die schwierigsten Probleme in NP.

→ keine polynomiellen Verfahren bekannt.

I NP-vollst¨ andige Entscheidungsprobleme: NP-schwer & in NP I NP-¨ aquivalente Suchprobleme: zugeh¨ origes

Entscheidungsproblem NP-vollst¨ andig

G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 20. Mai 2020 6 / 15

C7. Graphen: Ausblick Andere Graphenprobleme

Fl¨ usse in Graphen I

Definition (Flussnetzwerk)

Ein Flussnetzwerk N = (G , s , t, k ) ist gegeben durch I einen gerichteten Graphen G = (V , E ),

I einer Quelle (source) s ∈ V , I einer Senke (target) t ∈ V , und I einer Kapazit¨ atsfunktion k : E → R + .

s 1

2

3 4

5 t

7 18

8

5 3

5 13

6

2 1

6 12

5

1

12 16

4

G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 20. Mai 2020 7 / 15

C7. Graphen: Ausblick Andere Graphenprobleme

Fl¨ usse in Graphen II

Definition (Fluss)

Ein s-t-Fluss f weisst jeder Kante einen Wert aus R ≥0 zu, wobei I der Flusswert die Kapazit¨ at der Kante nicht ¨ ubersteigt:

f (e) ≤ k(e) f¨ ur alle e ∈ E I bei allen Knoten ausser der Quelle und der Senke

genauso viel hinein wie hinaus fliesst:

X

(u,w)∈E w=v

f ((u, w )) = X

(u,w)∈E u=v

f ((u, w )) f¨ ur alle v ∈ V \ {s, t}

Der Wert des Flusses ist der ¨ Uberschuss in der Senke:

|f | = X

(u,w)∈E w=t

f ((u, w )) − X

(u,w)∈E u=t

f ((u, w ))

G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 20. Mai 2020 8 / 15

(3)

C7. Graphen: Ausblick Andere Graphenprobleme

Beispiel

s 1

2

3 4

5 t

7

18 18

0 8

5 5 3 3

2 5

13 13

6 2

2 0 0 1

6 6 3 12

5 0

1 1

12 4 16 1

4 0

Wie schwer ist es, einen maximalen Fluss zu finden?

z.B. mit Edmonds-Karp-Algorithmus in O(|E| 2 |V |)

G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 20. Mai 2020 9 / 15

C7. Graphen: Ausblick Andere Graphenprobleme

Cliquen

Definition (Clique)

Eine Clique in einem ungerichteten Graphen (V , E ) ist eine

Teilmenge C ⊆ V der Knoten, bei der jedes Knotenpaar durch eine Kante verbunden ist: f¨ ur u, v ∈ C mit u 6= v gilt {u, v } ∈ E .

0 1

2 3

4 5

6

7

Wie schwer ist es, eine gr¨ osste Clique in einem Graphen zu finden?

NP-¨ aquivalent

G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 20. Mai 2020 10 / 15

C7. Graphen: Ausblick Andere Graphenprobleme

Graphenisomorphie

Definition (Graphenisomorphie)

Zwei Graphen sind isomorph, wenn sie bis auf die Namen der Knoten gleich sind.

0 1

2 3

4

5 6

7 b g

k f

h l

p

d

Wie schwer ist es zu entscheiden, ob zwei Graphen isomorph sind?

In NP, aber unbekannt ob in P und/oder NP-vollst¨ andig

G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 20. Mai 2020 11 / 15

C7. Graphen: Ausblick Andere Graphenprobleme

F¨ arbbarkeit

Definition (k-F¨ arbbarkeit)

Ein ungerichteter Graph G = (V , E) ist k -f¨ arbbar (k ∈ N ), falls es eine F¨ arbung f : V → {1, . . . , k} gibt, so dass f¨ ur alle {v , w } ∈ E gilt: f (v ) 6= f (w ).

0 1

2

3 4

5 6

7

Wie schwer ist es zu entscheiden, ob ein gegebener Graph k-f¨ arbbar ist?

NP-vollst¨ andig

G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 20. Mai 2020 12 / 15

(4)

C7. Graphen: Ausblick Andere Graphenprobleme

K¨ onigsberger Br¨ uckenproblem

Gibt es einen Rundweg, der jede Br¨ ucke exakt einmal verwendet?

G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 20. Mai 2020 13 / 15

C7. Graphen: Ausblick Andere Graphenprobleme

Eulerkreis

Definition (Eulerkreis)

Ein Eulerkreis in einem Graphen ist ein Zyklus, der jede Kante genau einmal enth¨ alt.

Wie schwer ist es zu entscheiden, ob ein Graph einen Eulerkreis hat?

Hat Eulerkreis gdw. jeder Knoten geraden Grad hat und Graph verbunden ist.

G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 20. Mai 2020 14 / 15

C7. Graphen: Ausblick Andere Graphenprobleme

Inhalt dieser Veranstaltung

A&D

Sortieren Komplexit¨ ats-

analyse Fundamentale Datenstrukturen

Suchen Graphen

Strings

G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 20. Mai 2020 15 / 15

Referenzen

ÄHNLICHE DOKUMENTE

G ist stark zusammenh¨ angend, wenn von jedem Knoten zu jedem anderen Knoten ein gerichteter Pfad existiert. Eine starke Zusammenhangskomponente von G ist ein maximal grosser

C2.1 Erreichbarkeit C2.2 K¨ urzeste Pfade C2.3 Azyklische Graphen C2.4 Zusammenhang C2.5 Zusammenfassung.. R¨ oger (Universit¨ at Basel) Algorithmen und Datenstrukturen 2

Anf¨ anglich liegt jeder Knoten (alleine) in seiner eigenen Zusammenhangskomponente (insgesamt n St¨ uck).. Aktualisiere das Array bei jedem Aufruf

Gibt es mehrere Kanten, die einen noch nicht enthaltenen Knoten mit dem Baum verbinden, k¨ onnen nur die mit minimalem Gewicht gew¨ ahlt werden. Es reicht, jeweils nur eine solche

C4.1 Minimale Spannb¨ aume C4.2 Generischer Algorithmus C4.3 Graphenrepr¨ asentation C4.4 Kruskals Algorithmus C4.5 Prims Algorithmus... Minimale Spannb¨ aume Minimale

Da der Graph keine Zyklen mit negativen Gesamtkosten enth¨ alt, kann kein Pfad von s zu s negative Kosten haben. Die Kosten des leeren Pfades sind damit optimal und distance[s]

I distance[u]: L¨ ange des k¨ urzesten bekannten Pfades zu u I distance[v]: L¨ ange des k¨ urzesten bekannten Pfades zu v I parent[v]: Vorg¨ anger in letzter Kante. des k¨

I Liegt ein Knoten eines solchen Zyklus auf einem Pfad von s nach v, k¨ onnen wir Pfade finden, deren Gewicht niedriger als jeder gegebene Wert ist. → kein korrekt