Handout: Ein polynomialer Algorithmus für minimale Kreisbasen

Werbung
Karin Kratt
Handout:
Ein polynomialer Algorithmus für minimale Kreisbasen
0. Motivation:
x ist ein Codewort, falls H ⋅ x = 0 .
Der Tanner-Graph enthält 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

0 1
H =
0 1

1 0

1 1 0 0

0 0 1 1
1 0 1 0

0 1 0 1 
1. Definitionen:
G = (V, E) sei ein ungerichteter, endlicher, einfacher Graph. 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.
Wir betrachten hier nur positive Gewichtsfunktionen w: E → IR+.
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 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.
Länge eines kürzesten Weges von x zu y: 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.
Bzgl. eines Knotens x definiert man den Knoten-Kante Inzidenzvektor a x = (a 1 , ..., a m ) mit
1, falls x Endpunkt der Kante i
a := 
i 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.
Der Kreisraum C(G) des Graphen G wird durch die Inzidenzvektoren der elementaren Kreise von G
erzeugt.
-1-
Karin Kratt
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.
Gewicht einer Kreisbasis: w(IB) = ∑ w(C i )
Ci∈ IB
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.
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.
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.
Definition: 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.
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.
Laufzeit des Algorithmus für minimale Kreisbasen: O(nm³)
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.
3. Länge einer kürzesten Kreisbasis
Theorem 6:
Die Länge einer minimalen Basis eines ungewichteten Graphen mit n Knoten beträgt höchstens
3(n-1)(n-2)/2.
-2-
Karin Kratt
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.
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.
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)
Laufzeit: O(n²m).
Der Algorithmus liefert für einen ungewichteten Graph eine Kreisbasis mit höchstens 3(n-1)(n-2)/2
Kanten.
-3-
Herunterladen