Ein polynomialer Algorithmus für minimale Kreisbasen

Werbung
Karin Kratt
Ein polynomialer Algorithmus für minimale Kreisbasen
Überblick:
0. Motivation
1. Definitionen
2. Algorithmus für eine Kreisbasis minimaler Länge, Laufzeit O(m³n)
3. Länge einer kürzesten Kreisbasis
4. Algorithmus für eine suboptimale Kreisbasis der Länge O(n²); Laufzeit O(mn²)
0. Motivation:
Kreisbasen werden benutzt, um die Kreisstruktur eines Graphen zu untersuchen. Zum Beispiel
benutzten Algorithmen oft Kreisbasen um alle elementaren Kreise aufzulisten oder um den längsten
Kreis zu finden.
Dabei hängt die Laufzeit der Algorithmen von der gewählten Kreisbasis ab. Eine Kreisbasis mit
kürzeren Kreisen (bzgl. der Gewichtung) können den Algorithmus beschleunigen. Deswegen
möchte man die minimale Kreisbasis berechnen und zwar möglichst schnell.
Kreise sind auch in der Elektrotechnik von großer Bedeutung, z.B. in dem so genannten TannerGraph (siehe hierzu auch den Abschnitt über Low Density Parity-Check Codes aus dem Vortrag
von Frank Kienle).
Der LDPC Code wird mit Hilfe der parity check Matrix H definiert. x ist ein Codewort, falls
H⋅x =0 .
Beispiel:
1

1
H =
0

0

0 1 0 1 1

1 0 1 0 1
1 0 0 1 0

1 1 1 0 1 
x1
→
x3
= [ 0 0 0 0 0 0 ]
= [ 1 0 1 1 0 0 ]
= [ 0 1 0 0 1 1 ]
x4
= [ 1 1 1 1 1 1 ]
x2
-1-
Karin Kratt
Der Tanner-Graph enthält nun zwei Arten von Knoten, die variable nodes und die check nodes. Die
Anzahl der variable nodes entspricht der Anzahl der Spalten in H, die Anzahl der check nodes
entspricht der Anzahl der Zeilen. Eine Kante (i, j) zwischen einem check node i und einem variable
node j existiert genau dann, wenn H ij = 1 .
Beispiel:
1

0
H =
0

1

0 1 1 0 0

1 0 0 1 1
1 1 0 1 0

0 0 1 0 1 
Mit Hilfe von Algorithmen kann man nun ein „fehlerhaftes“ Codewort, das H ⋅ x = 0 nicht erfüllt, in
ein gültiges Codewort umwandeln.
Ein fehlerhaftes Codewort für obige H-Matrix wäre z.B. x = [0 0 0 0 0 1]
Damit sich ein Fehler möglichst lange nicht wiederholt, möchte man erreichen, dass der minimale
Kreis im Tanner-Graph so lang wie möglich ist.
Wir kommen später noch einmal auf den Tanner-Graphen zurück, zuerst einmal brauchen wir noch
einige Definitionen.
-2-
Karin Kratt
1. Definitionen:
G = (V, E) sei ein ungerichteter, endlicher, einfacher (d.h. keine Schlingen und keine multiplen
Kanten) Graph. Notation für die Anzahl der Knoten n := |V|; Anzahl der Kanten: m := |E|.
Wir beschränken uns auf 2-zusammenhängende Graphen, d.h. man muss mindestens 2 Knoten aus
G entfernen, damit G nicht mehr zusammenhängend ist.
Der Graph G heißt gewichtet, falls eine Gewichtsfunktion w: E → IR existiert, die jeder Kante von
G eine reelle Zahl w(e) zuordnet. Wir betrachten hier nur positive Gewichtsfunktionen w: E → IR+.
Sind die Gewichte aller Baumkanten gleich, entspricht das einem ungewichteten Graphen.
Ein Weg P ist eine Folge von Knoten und Kanten P = (x 0 , e1 , x 1 , e 2 , ..., x n −1 , e n , x n ) . In einfachen
Graphen ist der Weg eindeutig durch die Spur gekennzeichnet, deswegen schreiben wir kurz:
P = (x 0 , x 1 , ..., x n −1 , x n ) . P heißt elementarer Weg, wenn P jeden Knoten höchstens einmal enthält
(mit Ausnahme von x 0 = x n ). Wir beschränken uns in diesem Seminar auf elementare Wege.
Die Notation für die Länge eines kürzesten Weges von x zu y ist d(x, y).
Ein Kreis C ist ein Teilgraph von G, in dem jeder Knoten einen geraden Grad besitzt.
C heißt elementarer Kreis, wenn C zusammenhängend ist und jeder Knoten Grad 2 hat.
Kreisaddition wird definiert durch die symmetrische Differenz: C ∆ D := (C ∪ D) \ (C ∩ D)
Ein Kreis C kann auch durch seinen Kreis-Inzidenzvektor a C = (a 1 , ..., a m ) dargestellt werden,
1, falls Kante i ∈ C
wobei ai := 
0, falls Kante i ∉ C
Die symmetrische Differenz zweier Kreise entspricht hierbei der Addition der Einträge der
Inzidenzvektoren modulo 2.
Beispiel:
Wir betrachten den folgenden Graphen:
Man kann 3 elementare
Kreise C, D und E erkennen:
Es gilt: C ∆ D = E
-3-
Karin Kratt
In der Inzidenzschreibweise: a C = (1,1,1, 0, 0) ; a D = (0, 0,1,1,1) ; a E = (1,1, 0,1,1) .
Man sieht sofort: a C + a D = a E
Bzgl. eines Knotens x definiert man den Knoten-Kante Inzidenzvektor a x = (a 1 , ..., a m ) mit
1, falls x Endpunkt der Kante i
ai := 
0, sonst
Die n Knoten-Kanten Inzidenzvektoren zusammen bilden die so genannte Inzidenzmatrix
A ∈(n × m, IF2 ) , wobei die Spalten den Kanten des Graphen und die Zeilen den Inzidenzvektoren
der Knoten entsprechen.
Beispiel:
a w = (1, 0,1, 0,1)
a x = (0, 0, 0,1,1)
a y = (1,1, 0, 0, 0)
a z = (0,1,1,1, 0)
→
1

0
A =
1

0

0 1 0 1

0 0 1 1
1 0 0 0

1 1 1 0 
Der Kreisraum C(G) des Graphen G wird durch die Inzidenzvektoren der elementaren Kreise von G
erzeugt, d.h. C(G) besteht aus sämtlichen möglichen symmetrischen Differenzen elementarer
Kreise, enthält also alle Kreise von G.
Man kann den Kreisraum auch als Kern der linearen Abbildung f A : IF2m → IF2n , die durch die
Inzidenzmatrix A gegeben ist, interpretieren. D.h. es gilt: A ⋅ x = 0, ∀ x ∈ C(G ) .
Für die Dimension ν des Kreisraumes gilt: ν = m – n + 1.
Eine Menge von Kreisen IB = {C1,…, Cj} definiert eine Kreisbasis von G, falls die entsprechenden
Inzidenzvektoren der Kreise eine Basis des Kreisraumes von G definieren. Die Inzidenzvektoren
von IB sind linear unabhängig und spannend, d.h. jeder Kreis C von G kann durch diese Basis
dargestellt werden als C = ε 1C1∆ε 2 C 2 ∆...∆ε j C j ; ε i ∈ {0,1} .
-4-
Karin Kratt
Das Gewicht einer Kreisbasis von G ist die Summe über die Gewichte aller in der Basis
enthaltender Kreise: w(IB) =
∑
Ci∈ IB
w(C i )
Zurück zur Elektrotechnik. Im Vergleich fällt folgende Ähnlichkeit auf:
Elektrotechnik
Mathematik
H⋅x =0 ,
A ⋅ x = 0, ∀ x ∈ C(G )
x Codewort
A Inzidenzmatrix
H parity check Matrix
Wie bereits erwähnt, interessiert man sich in der Elektrotechnik für Kreise im Tanner-Graph, der
mit Hilfe von H erzeugt wird.
Dagegen werden wir uns in diesem Vortrag mit dem Kreisraum und der dazugehörigen Kreisbasis
beschäftigen.
Allerdings können Aussagen für Kreise, die wir mit Hilfe der Inzidenzmatrix A treffen, auch für
Kreise im Tanner-Graph hilfreich sein, da sich die parity check Matrix H relativ leicht in eine
Inzidenzmatrix überführen lässt.
Beispiel:
 1 0 1


H =  0 1 1
 1 1 1


→ Tanner-Graph:
Um die Inzidenzmatrix aufzustellen, nummerieren wir die Kanten und Knoten durch:
Jetzt kann man A ablesen:
-5-
 a u  1
  
 av  0
a  0
A = w  =
 a x  1
a  
 y  0
 a  0
 z 
1 0 0 0 0 0

0 1 1 0 0 0
0 0 0 1 1 1

0 0 0 1 0 0
0 1 0 0 1 0 
1 0 1 0 0 1 
Karin Kratt
2. Algorithmus für eine Kreisbasis minimaler Länge
Theorem 1:
Sei IB eine Kreisbasis von G, C ein Kreis in IB mit C = C1 + C2.
Dann ist entweder IB \ {C} ∪ {C1} oder IB \ {C} ∪ {C2} eine Kreisbasis von G.
Theorem 2:
Seien x, y Knoten in G, IB Kreisbasis von G, P ein Weg von x zu y. Dann kann jeder Kreis von IB,
der x und y enthält, ausgetauscht werden gegen
1) einen Kreis der den Weg P enthält
oder
2) gegen einen Kreis der entweder x oder y nicht enthält.
Beweis:
Seien P1 und P2 die beiden Wege in C, die x und y miteinander verbinden. Es gelte P ≠ P1, P ≠ P2
(ansonsten muss C nicht ausgetauscht werden). Definiere C1 = P + P1 und C2 = P + P2.
Dann gilt: C1, C2 sind Kreise und C = C1 + C2. Mit Theorem 1 kann C entweder gegen C1 oder
gegen C2 ausgetauscht werden → 1)
Falls der ausgetauschte Kreis Ci nicht elementar ist, kann Ci gegen einen seiner elementaren Kreise
ausgetauscht werden. Dieser elementare Kreis kann nicht x und y enthalten. → 2)
q.e.d.
Korollar 3:
Sei IB eine minimale Kreisbasis, P der eindeutige, kürzeste Weg von x zu y. Dann muss jeder Kreis
in IB, der x und y enthält, den Weg P enthalten.
Beweis:
Annahme: Es existiert ein Kreis C mit x, y ∈ C, P ∉ C . Dann gilt mit dem Beweis von Theorem 2:
w(C i ) = w(P) + w(Pi ) < w(P1 ) + w(P2 ) = w(C) . Also kann C gegen einen kürzeren Kreis
ausgetauscht werden, d.h. IB ist nicht minimal.
q.e.d.
Bemerkung:
Hier wurde angenommen, dass der kürzeste Weg zwischen x und y eindeutig ist. Im Allgemeinen
kann es aber mehrere kürzeste Wege geben. Es wird aber klar, dass in jeder minimalen Kreisbasis
jedes Paar von Knoten x, y in einem Kreis durch einen kürzesten Weg verbunden sein muss.
-6-
Karin Kratt
Theorem 4:
Sei x ein Knoten in einem Kreis C in einer minimalen Kreisbasis. Dann gibt es eine Kante e = (y, z)
in C, so dass C aus einem kürzestem Weg von x zu y, einem kürzestem Weg von x zu z und der
Kante e besteht.
Beweis:
Sei C = (x 0 , x 1 , ..., x n −1 , x n ) mit x = x 0 = x n . Definiere Pi = (x, x 1 , ..., x i ) und Q i = (x, x n -1 , ..., x i ) .
Wegen Korollar 3 gilt: d(x, x i ) = w(Pi ) oder d(x, x i ) = w(Q i ) .
Sei y = x i , wobei i der größte Indize ist, so dass d(x, x i ) = w(Pi ) . Sei z = x i +1 .
Dann gilt: C = Pi + (x i , x i +1 ) + Q i +1 , wobei w(Pi ) = d(x, y), (x i , x i +1 ) = (y, z); w(Q i +1 ) = d(z, x) .
q.e.d.
Mit Hilfe dieses Theorems können wir nun unseren Algorithmus angeben. Dafür definieren wir
noch für jedes Knoten-Kanten Paar (x, (y, z)) den Kreis C(x, y, z) := P(x, y) + P(x, z) + (y, z),
wobei P(v, u) der kürzeste Weg von v zu u ist.
Offensichtlich gibt es höchstens nm solcher Kreise. Mit Hilfe des Greedy Algorithmus erhält man
dann die minimale Kreisbasis. Dieser Greedy-Schritt ist nötig, da man die Unabhängigkeit der
Kreise gewährleisten muss.
Beispiel:
Die minimale Kreisbasis besteht aus den inneren Dreiecken. Aber das
äußere Viereck erfüllt die Bedingung von Theorem 4 ebenfalls.
Algorithmus für minimale Kreisbasen:
(1) Finde einen kürzesten Weg zwischen allen Knotenpaaren x, y.
(2) Berechne für jeden Knoten v und jede Kante (x, y) den Kreis
C(v, x, y) = P(v, x) + P(v, y) + (x, y) und dessen Länge. Fälle, in denen P(v, x) und P(v, y)
Knoten außer v gemeinsam haben, können vernachlässigt werden.
(3) Ordne die Kreise nach Gewicht.
(4) Benutze den Greedy-Algorithmus um eine minimale Kreisbasis zu finden.
-7-
Karin Kratt
Theorem 5:
Falls alle Kanten nicht-negatives Gewicht haben, findet der Algorithmus eine minimale Kreisbasis
und zwar unabhängig davon welcher kürzester Weg P(x, y) für das Knotenpaar x, y gewählt wird.
Laufzeit:
(1) Kürzester Wege Algorithmus, z.B. Dijkstra, Floyd → O(n³)
(2) höchstens nm Kreise, weiteres n als Zeitschranke um den Kreis auszugeben → O(mn²)
(3) Umsortierung → O (a log (a)), a Anzahl der gefunden Kreise in Schritt (2)
(4) Betrachte die Inzidenzmatrix der Kreise: die Spalten entsprechen den Kanten des Graphs,
die Zeilen entsprechen den Inzidenzvektoren der Kreise, sortiert nach der deren
Gewichtung. Man kann nun den Gaußalgorithmus, der elementare Zeilenoperationen
modulo 2 durchführt, auf die Matrix anwenden. Wenn genügend unabhängige Kreise
gefunden wurden, kann abgebrochen werden. Die Prozesszeit für eine Zeile beträgt O(mr),
wobei m die Anzahl der Spalten, r die Anzahl der bereits gefundenen unabhängigen Zeilen
ist. Da r durch die Dimension des Kreisraumes ν beschränkt ist und ν = m – n + 1, gilt
O(mr) = O(m ν ) = O(m²). Zusammen mit der Anzahl der Kreise O(nm) → O(nm³)
→ Laufzeit des Algorithmus für minimale Kreisbasen: O(nm³)
Bemerkung:
Es wurde gezeigt, dass das Problem einen spannenden Baum zu finden, dessen Fundamentalkreise
kürzeste Länge haben, NP-complete ist.
(hierbei wird ein Fundamentalkreis aus Baumkanten und einer nicht Baumkante erzeugt)
Beispiel:
Gegebener Graph:
spannender Baum:
-8-
Bsp. für Fundamentalkreise
Karin Kratt
3. Länge einer kürzesten Kreisbasis
Theorem 6:
Die Länge einer minimalen Kreisbasis eines ungewichteten Graphen mit n Knoten beträgt
höchstens 3(n-1)(n-2)/2.
Beweis: (per Induktion über n)
Für n = 1, 2 klar.
Sei nun n ≥ 3, G ein Graph mit n + 1 Knoten.
Fall 1: G ist nicht 2-zusammenhängend
Dieser Fall kann bei Interesse im Paper von Horton nachgelesen werden (siehe Quellenangabe).
Fall 2: G ist 2-zusammenhängend
Sei x ein Knoten mit minimalem Grad in G. Per Induktionsvoraussetzung erfülle G – x das obige
Theorem, d.h. falls IB eine minimale Kreisbasis von G – x ist, dann gilt für die Länge
w(IB) ≤ 3(n-1)(n-2)/2. Jetzt werden solange elementare Kreise, die x enthalten, zu IB addiert, bis
eine Kreisbasis für G gefunden wird.
Einschub:
Wir definieren ein x-Netzwerk, dessen Knoten wir x-Knoten und dessen Kanten wir x-Kanten
nennen. Die mit x verbundenen Kanten in G bilden die x-Knoten des x-Netzwerkes und zwei xKnoten sind genau dann durch eine x-Kante verbunden, falls ein gewählter Kreis beide Kanten
benutzt.
Die Menge der gewählten Kreise bilden zusammen mit IB eine unabhängige Menge genau dann,
wenn das Netzwerk keine Kreise enthält.
Beispiel:
-9-
Karin Kratt
zurück zum Beweis:
Sei k der Grad von x, d.h. das x-Netzwerk enthält k x-Knoten. Dann müssen k – 1 Kreise, die x
enthalten (entspricht k – 1 x-Kanten im Netzwerk), zu IB addiert werden um eine Kreisbasis für G
zu erhalten. Daraus folgt, dass das x-Netzwerk ein Baum ist.
Umgekehrt folgt, dass wenn das x-Netzwerk ein Baum ist, dass dann die Menge der gewählten
Kreise zusammen mit IB eine Kreisbasis für G bilden.
Seien x 1 , x 2 , ..., x k die anderen Endpunkte der mit x verbundenen Kanten. Ein gewählter Kreis
besteht aus einem Weg in G – x von einem x i zu einem anderen x j und zwei Kanten
( x , x i ); ( x , x j ) . Die k – 1 Wege können durch einen spannenden Baum T in G – x gefunden werden.
Fall 2a: k = n
In diesem Fall werden die Wege gebildet, indem die Knoten des spannenden Baumes T mit Grad
eins mit ihrem einzigen Nachbarn verbunden werden. Dann werden die Knoten mit Grad eins von T
entfernt. Auf diese Weise wird fortgefahren, bis man alle n – 1 Wege gebildet hat. Alle Wege
besitzen Länge 1. Die n – 1 Kreise sind Dreiecke, die jeweils die Länge 3 haben, d.h. zu der Länge
w(IB) wird 3n – 3 addiert:
3
3
3
3
(n-1)(n-2) + 3n – 3 =
[n² - 3n + 2 + 2n – 2] = [n² - n] = n(n-1)
2
2
2
2
Fall 2b: k < n/2 + 1 und Fall 2c: n/2 + 1 ≤ k < n können bei Interesse nachgelesen werden (siehe
Quellenangabe).
q.e.d.
- 10 -
Karin Kratt
4. Algorithmus für eine suboptimale Kreisbasis der Länge O(n²)
Definition:
Eine Menge von elementaren Kreisen durch einen Knoten x heißt lokal-unabhängig-in-x, falls das
x-Netzwerk keine Kreise enthält.
Bemerkung:
Eine maximal lokal-unabhängig-in-x Menge von Kreisen besteht aus Grad(x)-1 Kreisen in einem 2zusammenhängenden Graphen. In dem dazugehörigem x-Netzwerk entspricht diese Menge einem
spannendem Baum.
Jeder Kreis in einer minimal-gewichteten, maximal lokal-unabhängig-in-x Menge besteht aus zwei
Kanten (x, y), (x, z) und dem kürzesten Weg zwischen y und z in G – x.
Wenn wir die x-Kanten im x-Netzwerk mit der Länge des entsprechenden Kreises gewichten, dann
entspricht eine minimal-gewichtete, maximal lokal-unabhängig-in-x Menge einem minimal
spannenden Baum in dem x-Netzwerk (bei gleich bleibendem Gewicht).
Theorem 7:
Sei x ein Knoten in G. Eine minimal-gewichtete, maximal lokal-unabhängig-in-x Menge von
elementaren Kreisen ist eine Teilmenge einer minimalen Kreisbasis.
Beispiel:
Die 3 Trapeze entsprechen der minimal-gewichteten, maximalunabhängig-in-x Menge von elementaren Kreisen für jeden
Knoten x.
z.B. für
sieht das gewichtete
x-Netzwerk wie folgt aus:
Aber: Man braucht zusätzlich eines der Dreiecke, um eine minimal-gewichtete Kreisbasis zu
erhalten. Hier ist also die minimal-gewichtete, maximal-unabhängig-in-x Menge eine echte
Teilmenge der minimalen Kreisbasis.
- 11 -
Karin Kratt
Algorithmus für eine sub-optimale Kreisbasis:
(1) Wähle einen Knoten x mit minimalem Grad
(2) Berechne alle kürzesten Wege in G – x zwischen den Nachbarn von x
(3) Berechne einen minimalen spannenden Baum im gewichteten x-Netzwerk
(4) Konstruiere die kürzesten Kreise im Graphen entsprechend zu den x-Kanten im Baum
(5) Addiere zu der Menge der Kreise von Schritt (4) eine Kreisbasis für G – x
(erhält man durch Rekursion)
Bemerkung:
Der Algorithmus liefert für einen ungewichteten Graph eine Kreisbasis mit höchstens 3(n-1)(n-2)/2
Kanten (folgt aus dem Beweis zu Theorem 6).
Laufzeit:
(1) O(1)
(2) O(dn²) mit d := Grad von x
(3) O(n²)
(4) O(dn)
(5) Mit O(n) multiplizieren
Offensichtlich dominiert Schritt (2) die anderen Schritte.
Zusammen mit Schritt (5) beträgt die Laufzeit O(n²(Summe der Grade) = O(n²m).
Bemerkung:
Dieser Algorithmus ist deutlich schneller als der obige Algorithmus für minimale Kreisbasen.
Allerdings ist er nur suboptimal.
Quellenangabe:
-
J. D. Horton: „A Polynomial-Time Algorithm To Find The Shortest Cycle Basis Of A
Graph“, SIAM J. COMPUT. Vol 16, No. 2, April 1987
-
Frank Kienle: “Overview Channel Coding And Low-Density Parity-Check Codes”
-
Florentine Bunke: “Circuit Bases Problems in Binary Matroids”
- 12 -
Herunterladen