Mustererkennung: Graphentheorie
D. Schlesinger – TUD/INF/KI/IS
Definitionen
EinGraphist ein PaarG= (V,E) mit der Menge derKnotenVund
der Menge derKanten:
GerichteteKanten –E⊂V×V – Teilmenge beliebiger (geordneter) Paare.
Ungerichtete Kanten–E⊂ {e={v,v0}:v,v0∈V}– Teilmenge der zweielementigen Teilmengen ausV,
keine Schlingen (d.h. (v,v)) und keine doppelte Kanten (d.h. (v,v0) und (v0,v)).
EinTeilgraphG0= (V0,E0) eines GraphenG= (V,E) ist ein Graph mitV0⊂Vund E0⊂E(und natürlichv∈e∈E0⇒v∈V0).
EineKette ist ein Graph (mit endlich vielen Knoten), in dem jeder Knoten (bis auf zwei) genau zwei inzidenten Kanten hat.
Ein (einfacher)Pfadin einem GraphenGist ein Teilgraph vonG, der eine Kette ist.
Vereinfacht: eine Folge der Knoten (v1,v2. . .vl) mit{vi,vi+1} ∈E
Ein Graph heißtzusammenhängend, wenn für alle Paarevundv0ein Pfad vonvnach v0existiert.
EinZyklusist ein Graph, in dem alle Knoten genau zwei inzidenten Kanten haben.
Ein Graph ohne Zyklen (kein Teilgraph ist ein Zyklus) heißtWald.
Ist der Graph zusammenhängend, so ist er einBaum.
Kürzeste Pfade
GewichteteGraphen: Gegeben ist eine Abbildungw:E→R, d.h. jeder Kante ist ein Gewichtw(e) =w({r,r0}) zugeordnet.
DieKosteneines Pfades ergeben sich als die Summe der Gewichte aller Kanten in dem Pfad.
DerkürzestePfad vonvnachv0ist der Pfad minimaler Kosten (heißt auch Abstandd(v,v0)).
Drei Aufgaben:
a) Man such nach dem kürzesten Pfad vonvnachv0
b) Man suche nach den kürzesten Pfaden vonvnach allen anderen Knoten c) Man suche nach allen kürzesten Pfaden – Abstandsmatrixd(v,v0).
Paar Eigenschaften:
– Ist ein Pfad der kürzeste Pfad, so ist jeder zusammenhängender Teilgraph davon auch ein kürzester Pfad.
– Vereinigung aller kürzesten Pfade zu einem Knoten (Aufgabe b)) bilden einen Baum.
Kürzeste Pfade – Anwendungsbeispiel
„Geodesics“.
Die Knoten sind Pixel. Kanten verbinden nah liegende Pixel.
Die Kantengewichte berücksichtigen z.B. Farbdifferenz und Euklidische Länge
Die kürzesten Pfade von allen Pixeln zu einem (vom Nutzer gegebenem) werden berechnet.
Die Pixel werden als Vordergrund markiert, für die die Kosten des entsprechenden kür- zesten Pfades kleiner als ein Schwellwert ist.
Algorithmus von Dijkstra
Gesuch wird nach den kürzesten Pfaden von einem ausgewählten Knotenv0 zu allen anderen.
HilfsmengeU:
Ist ein Knoten inV/U, so ist der kürzeste Pfad vonv0zu diesem Knoten bereits berechnet.
Ist ein Knotenvnoch inU, so bedeutetd(v) die Kosten des kürzesten Pfades von v0nachvnur über Knoten inU/V.
1. SetzeU=V,d(v0) = 0,d(v) =∞für allev∈V/{v0}. 2. FallsU=∅, dann STOP. Sonst weiter mit 3.
3. Finde einu∈U, fur dasd(u) minimal ist.
4. Für allev∈Umit{u,v} ∈Esetzed(v) = min d(v),d(u) +w(u,v)
. 5. SetzeU=U/{u}. Gehe zu 2.
Zeitkomplexität:O(n2logn)
Alternative: Wiederhole oft für allev:
d(v) = min
d(v), min
v0:vv0∈Ed(v0) +w(v,v0)
Schnitte
Betrachtet werden normalerweise nur zusammenhängende Graphen.
In der Menge der Knoten sind zwei ausgezeichnet –s(Quelle) undt (Empfänger).
Einst-Schnittist eine Teilmenge der KantenC⊂Eso, dass im Graphen (V,E/C):
a) keinen Pfad vonsnachtexistiert
b) die MengeC ist nicht reduzierbar, d.h. ein Pfad vonsnachtwürde existieren, falls eine beliebige Kante vonC entfernt wird.
In einem gewichteten Graphen sind die Kosten eines Schnittes die Summe aller Kanten- gewichte des Schnitts.
Gesucht wird nach dem Schnitt minimaler Kosten.
Sind alle Kantengewichte nicht negativ, ist die Aufgabe polynomiell lösbar (die Forderung b) ist redundant). Im allgemeinen Fall ist sie NP-vollständig.
Alternativ: Gesucht wird nach der Partitionierung der Menge der Knoten in zwei Teil- mengenS undT (d.h.S∩T=∅,S∪T=V) mits∈Sundt∈T so, dass
X
vv0:v∈S,s0∈T
w(v,v0)→min
S,T
Diskrete Energieminimierung als minimaler Schnitt
r1 r2 r3 r4 r5
v1
s
v5
t
qr5(1) qr5(0)
qr5(0) α
α
Potts Modell mit zwei Label:
E(y) =
X
r∈R
qr(yr) +α
X
rr0∈ER
1I(yr6=yr0)
Der Graph für Schnitt Aufgabe:
G= (V,ES) mit V=R∪ {s} ∪ {t}, ES=ER∪ {s,v} ∪ {v,t}
w(s,v) =qr(0),w(v,t) =qr(1), w(v,v0) =α
Jeder Schnitt entspricht einem Labelling.
Die Kosten sind die Energien.
Beliebige diskrete Aufgaben der Energieminimierung (auch mit mehreren Labeln) lassen sich als Aufgaben des minimalen Schnittes formulieren.
Ist die ursprüngliche Aufgabe submodular, so sind alle Kantengewichte nicht negativ
→polynomiell lösbar.
Flüsse
EinFlussist eine Abbildungx:V×V→R, d.h. jeder gerichteten Kante (v,v0) ist eine Zahlx(v,v0) zugeordnet (die Menge der Kanten wird verdoppelt). Dabei gilt:
X
v0:vv0∈E
x(v0,v) =
X
v0:vv0∈E
x(v,v0)
für allev, d.h. „wieviel in einen Knoten einfließt, genauso viel muss ausfließen“.
Weiterhin hat jede gerichtete Kante eine Kapazität c(v,v0) – vieviel darf durch die Kante maximal durchfließen.
Zwei Knotensundtsind ausgezeichnet. Die Aufgabe besteht in der Suche nach maximalen Fluss vontnachs:
x(t,s)→max
x
s.t.
X
v0:vv0∈E
x(v0,v) =
X
v0:vv0∈E
x(v,v0) ∀v
x(v,v0)≤c(v,v0) ∀v,v0
Schnitte und Flüsse
Sind die Kapazitätenc(v,v0) gleich den (nicht negativen) Kantengewichten w(v,v0), so sind die entsprechenden Schnitt und Fluss Aufgaben zu einanderdual.
– Der Werte des minimalen Schnittes und des maximalen Flusses sind gleich.
– Aus der Lösung der Fluss-Aufgabe (der maximale Flussxd.h. alle entsprechenden x(v,v0)) kann man den minimalen SchnittCberechnen.
Algorithmus von Ford und Fulkerson→Seminar.
Empfehlenswert:
http://www2.inf.fh-rhein-sieg.de/∼pbecke2m/graphentheorie/