Ein polynomialer Algorithmus für minimale Kreisbasen 07.05.07 Karin Kratt Ein polynomialer Algorithmus für minimale Kreisbasen Überblick: Motivation Definitionen Algorithmus für eine Kreisbasis minimaler Länge Länge einer kürzesten Kreisbasis Algorithmus für eine suboptimale Kreisbasis der Länge O(n²) Ein polynomialer Algorithmus für minimale Kreisbasen - einige Algorithmen benutzen Kreisbasen, Motivation Definitionen z.B. um alle elementaren Kreise aufzulisten oder um den längsten Kreis zu finden - Laufzeit abhängig von der gewählten Kreisbasis Alg. für eine minimale Kreisbasis min. Kreisbasis Länge einer kürzesten Kreisbasis Alg. für eine suboptimale Kreisbasis Elektrotechnik: Tanner-Graph - LDPC Code wird mit Hilfe der parity check Matrix H definiert - x ist ein Codewort, falls H ⋅ x = 0 Ein polynomialer Algorithmus für minimale Kreisbasen Beispiel: Motivation Definitionen Alg. für eine min. Kreisbasis 1 1 H = 0 0 Länge einer kürzesten Kreisbasis → Alg. für eine suboptimale Kreisbasis H⋅x =0 0 1 0 1 1 1 0 1 0 1 1 0 0 1 0 1 1 1 0 1 x1 x2 = [ 0 0 0 0 0 0 ] = [ 1 0 1 1 0 0 ] x3 x4 = [ 0 1 0 0 1 1 ] = [ 1 1 1 1 1 1 ] Ein polynomialer Algorithmus für minimale Kreisbasen Konstruktion des Tanner-Graphs: Motivation - Knoten: variable nodes, check nodes Definitionen - Anzahl variable nodes ↔ Anzahl Spalten - Anzahl check nodes↔ Anzahl Zeilen Alg. für eine min. Kreisbasis - Kante (i, j) zwischen check node i und variable Länge einer kürzesten Kreisbasis Alg. für eine suboptimale Kreisbasis node j existiert g.d.w. H ij = 1 Ein polynomialer Algorithmus für minimale Kreisbasen Beispiel: Motivation Definitionen Alg. für eine min. Kreisbasis Länge einer kürzesten Kreisbasis Alg. für eine suboptimale Kreisbasis 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 Ein polynomialer Algorithmus für minimale Kreisbasen - mit Hilfe von Algorithmen kann man ein Motivation fehlerhaftes Codewort in ein gültiges Codewort umwandeln Definitionen Alg. für eine min. Kreisbasis Länge einer kürzesten Kreisbasis Alg. für eine suboptimale Kreisbasis Ziel: minimalen Kreis maximieren Ein polynomialer Algorithmus für minimale Kreisbasen - G = (V, E) ungerichteter, endlicher, einfacher Graph; Anzahl der Knoten n:= |V|; Anzahl der Kanten: m:= |E|. Motivation - Beschränkung auf 2-zusammenhängende G Definitionen - G heißt gewichtet, falls eine Gewichtsfkt. Alg. für eine w: E →IR existiert. Hier: w: E → IR+. min. Kreisbasis - Weg P ist eine Folge von Knoten und Kanten Länge einer kürzesten Kreisbasis Alg. für eine suboptimale Kreisbasis P = (x 0 , e1 , x 1 , e 2 , ..., x n −1 , e n , x n ) - P elementarer Weg, wenn P jeden Knoten max. einmal enthält (Ausnahme x 0 = x n ) - Beschränkung auf elementare Wege - Länge eines kürzesten Weges von x zu y: d(x, y) Ein polynomialer Algorithmus für minimale Kreisbasen Motivation Definitionen - 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 Alg. für eine min. Kreisbasis symmetrische Differenz: C ∆ D:= (C∪ D) \ (C∩ D) Länge einer kürzesten Kreisbasis Alg. für eine suboptimale Kreisbasis - Kreis C kann durch seinen Kreis-Inzidenzvektor a C = (a 1 , ..., a m ) dargestellt werden, wobei 1, falls Kante i ∈ C a := i 0, falls Kante i ∉ C - symmetrische Differenz ↔ Addition der Einträge der Inzidenzvektoren modulo 2 Ein polynomialer Algorithmus für minimale Kreisbasen Beispiel: Wir betrachten den folgenden Graphen: Motivation Definitionen Alg. für eine min. Kreisbasis Länge einer kürzesten Kreisbasis Alg. für eine suboptimale Kreisbasis Ein polynomialer Algorithmus für minimale Kreisbasen Beispiel: Wir betrachten den folgenden Graphen: Motivation Definitionen Alg. für eine min. Kreisbasis Länge einer kürzesten Kreisbasis Alg. für eine suboptimale Kreisbasis 3 elementare Kreise C, D und E Es gilt: C ∆ D = E In der Inzidenzschreibweise: a C = (1,1,1, 0, 0) a D = (0, 0,1,1,1) a E = (1,1, 0,1,1) Ein polynomialer Algorithmus für minimale Kreisbasen Motivation Definitionen Alg. für eine min. Kreisbasis Länge einer kürzesten Kreisbasis Alg. für eine suboptimale Kreisbasis - Knoten-Kante Inzidenzvektor bzgl. Knoten x a x = (a 1 , ..., a m ) mit 1, falls x Endpunkt der Kante i a := i 0, sonst - die n Knoten-Kanten Inzidenzvektoren bilden die Inzidenzmatrix A ∈(n × m, IF2 ), - Spalten ↔ Kanten - Zeilen ↔ Inzidenzvektoren der Knoten Ein polynomialer Algorithmus für minimale Kreisbasen Beispiel: a w = (1, 0,1, 0,1) a x = (0, 0, 0,1,1) Motivation Definitionen a y = (1,1, 0, 0, 0) Alg. für eine min. Kreisbasis a z = (0,1,1,1, 0) Länge einer kürzesten Kreisbasis Alg. für eine suboptimale Kreisbasis → 1 0 A = 1 0 0 1 0 1 0 0 1 1 1 0 0 0 1 1 1 0 Ein polynomialer Algorithmus für minimale Kreisbasen - Kreisraum C(G) wird durch die Inzidenzvektoren Motivation Definitionen Alg. für eine min. Kreisbasis Länge einer kürzesten Kreisbasis Alg. für eine suboptimale Kreisbasis der elementaren Kreise erzeugt - andere Interpretation: Kreisraum ist der Kern der m n f : IF → IF linearen Abbildung A 2 2 A ⋅ x = 0, ∀ x ∈ C(G ) - Dimension ν des Kreisraumes: ν = m – n + 1 Ein polynomialer Algorithmus für minimale Kreisbasen Motivation Definitionen - Menge von Kreisen IB = {C1,…, Cj} definiert eine Kreisbasis von G, falls die entsprechenden Inzidenzvektoren dieser Kreise eine Basis des Kreisraumes von G definieren Alg. für eine min. Kreisbasis - Inzidenzvektoren von IB sind linear unabhängig Länge einer kürzesten Kreisbasis Alg. für eine suboptimale Kreisbasis 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} - Gewicht einer Kreisbasis: w(IB) = ∑ Ci∈ IB w(C i ) Ein polynomialer Algorithmus für minimale Kreisbasen Elektrotechnik Motivation Definitionen Mathematik H ⋅ x = 0 , x Codewort A ⋅ x = 0, ∀ x ∈ C(G ) H parity check Matrix A Inzidenzmatrix Alg. für eine min. Kreisbasis - Elektrotechnik: Kreise im Tanner-Graph Länge einer kürzesten Kreisbasis Alg. für eine suboptimale Kreisbasis - in diesem Vortrag: Kreisraum, Kreisbasis - Aussagen für Kreise, die mit der Inzidenzmatrix A getroffen werden mögl. hilfreich für Kreise im Tanner-Graph, da sich die parity check Matrix H in eine Inzidenzmatrix überführen lässt Ein polynomialer Algorithmus für minimale Kreisbasen Beispiel: Motivation Definitionen Alg. für eine min. Kreisbasis Länge einer kürzesten Kreisbasis Alg. für eine suboptimale Kreisbasis 1 0 1 H = 0 1 1 1 1 1 Ein polynomialer Algorithmus für minimale Kreisbasen Beispiel: Motivation Definitionen Alg. für eine min. Kreisbasis Länge einer kürzesten Kreisbasis Alg. für eine suboptimale Kreisbasis 1 0 1 H = 0 1 1 1 1 1 au av a A = w ax a y a z 1 0 0 = 1 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 1 1 0 0 1 0 0 1 0 0 0 1 0 0 1 Ein polynomialer Algorithmus für minimale Kreisbasen Motivation Definitionen 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: Alg. für eine min. Kreisbasis Seien x, y Knoten in G, IB Kreisbasis von G, P Länge einer kürzesten Kreisbasis Alg. für eine suboptimale Kreisbasis 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. Ein polynomialer Algorithmus für minimale Kreisbasen Motivation Definitionen Korollar 3: Sei IB eine minimale Kreisbasis, P der eindeutige, kürzeste Weg von x zu y. Dann muss jeder Kreis von IB, der x und y enthält, den Weg P enthalten. Alg. für eine min. Kreisbasis Bemerkung: Länge einer kürzesten Kreisbasis Alg. für eine suboptimale Kreisbasis Hier: kürzester Weg zwischen x und y eindeutig I. A.: mehrere kürzeste Wege in jeder minimalen Kreisbasis ist jedes Paar von Knoten x, y in einem Kreis durch einen kürzesten Weg verbunden Ein polynomialer Algorithmus für minimale Kreisbasen Motivation Definitionen Alg. für eine min. Kreisbasis Länge einer kürzesten Kreisbasis Alg. für eine suboptimale Kreisbasis Theorem 4: Sei x ein Knoten in einem Kreis C in einer min. 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: Für jedes Knoten-Kanten Paar (x, (y, z)) definiert man 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. es existieren max. nm solcher Kreise Ein polynomialer Algorithmus für minimale Kreisbasen Algorithmus für minimale Kreisbasen: Motivation Definitionen (1) Finde einen kürzesten Weg zwischen allen Knotenpaaren x, y. (2) Berechne für jeden Knoten v und Kante (x, y) C(v, x, y) und dessen Länge. Alg. für eine (3) Ordne die Kreise nach Gewicht. min. Kreisbasis Länge einer kürzesten Kreisbasis Alg. für eine suboptimale Kreisbasis (4) Benutze den Greedy-Algorithmus um eine minimale Kreisbasis zu finden. 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. Ein polynomialer Algorithmus für minimale Kreisbasen Warum Greedy? Motivation Beispiel Definitionen Alg. für eine min. Kreisbasis inneren Dreiecke: min. Kreisbasis Länge einer kürzesten Kreisbasis Alg. für eine suboptimale Kreisbasis Aber: äußeres Viereck erfüllt Bed. von Th. 4 ebenfalls Ein polynomialer Algorithmus für minimale Kreisbasen Laufzeit des Alg. für min. Kreisbasen: O(nm³) (1) Kürzester Wege Alg. (Dijkstra, Floyd) O(n³) (2) höchstens nm Kreise, weiteres n als Zeit Motivation schranke um den Kreis auszugeben O(mn²) Definitionen (3) Umsortierung O (a log (a)); a Anzahl der gefunden Kreise in Schritt (2) Alg. für eine min. Kreisbasis (4)- Inzidenzmatrix der Kreise: Gaußalgorithmus Länge einer - Prozesszeit für eine Zeile: O(mr) kürzesten m Anzahl der Spalten, r Anzahl bereits Kreisbasis gefundenen unabhängigen Zeilen Alg. für eine - r durch ν beschränkt, ν = m – n + 1, suboptimale O(mr) = O(mν ) = O(m²). Kreisbasis - mit Anzahl der Kreise O(nm): O(nm³) Ein polynomialer Algorithmus für minimale Kreisbasen Problem: Wie findet man einen spannenden Baum, dessen Motivation Fundamentalkreise kürzeste Länge haben? Definitionen Alg. für eine min. Kreisbasis Länge einer kürzesten Kreisbasis Alg. für eine suboptimale Kreisbasis Beispiel: Ein polynomialer Algorithmus für minimale Kreisbasen Problem: Wie findet man einen spannenden Baum, dessen Motivation Fundamentalkreise kürzeste Länge haben? Definitionen Alg. für eine min. Kreisbasis Länge einer kürzesten Kreisbasis Alg. für eine suboptimale Kreisbasis Beispiel: Ein polynomialer Algorithmus für minimale Kreisbasen Problem: Wie findet man einen spannenden Baum, dessen Motivation Definitionen Alg. für eine min. Kreisbasis Länge einer kürzesten Kreisbasis Alg. für eine suboptimale Kreisbasis Fundamentalkreise kürzeste Länge haben? NP-complete Beispiel: Ein polynomialer Algorithmus für minimale Kreisbasen Motivation Definitionen Theorem 6: Die Länge einer min. Kreisbasis eines ungewichteten Graphen mit n Knoten beträgt höchstens 3(n-1)(n-2)/2. Ausschnitt aus dem Beweis: (Induktion über n) Alg. für eine Für n = 1, 2 klar. min. Kreisbasis Sei nun n ≥ 3, G ein Graph mit n + 1 Knoten. Länge einer Sei x ein Knoten mit minimalem Grad in G. kürzesten Per IV erfülle G – x das obige Theorem, d.h. falls Kreisbasis IB eine min. Kreisbasis von G – x ist, dann gilt für Alg. für eine die Länge w(IB) ≤ 3(n-1)(n-2)/2. suboptimale Jetzt werden solange elementare Kreise, die x Kreisbasis enthalten, zu IB addiert, bis eine Kreisbasis für G gefunden wird. Ein polynomialer Algorithmus für minimale Kreisbasen Motivation Definitionen x-Netzwerk: - Knoten heißen x-Knoten, Kanten x-Kanten - x-Knoten: mit x verbundenen Kanten in G - zwei x-Knoten sind genau dann durch eine x-Kante verbunden, falls ein gewählter Kreis beide Kanten benutzt Alg. für eine min. Kreisbasis Menge der gewählten Kreise bilden zusammen Länge einer kürzesten Kreisbasis Alg. für eine suboptimale Kreisbasis mit IB eine unabhängige Menge g.d.w. x-Netzwerk keine Kreise enthält Ein polynomialer Algorithmus für minimale Kreisbasen Sei k der Grad von x Motivation Definitionen x-Netzwerk enthält k x-Knoten k – 1 Kreise, die x enthalten, werden zu IB addiert, um eine Kreisbasis für G zu erhalten Alg. für eine k – 1 x-Kanten im Netzwerk min. Kreisbasis x-Netzwerk ist ein spannender Baum Länge einer kürzesten Kreisbasis Alg. für eine suboptimale Kreisbasis Umgekehrt: x-Netzwerk spannender Baum Menge der gewählten Kreise zusammen mit IB Kreisbasis Ein polynomialer Algorithmus für minimale Kreisbasen Seien x 1 , x 2 , ..., x k die anderen Endpunkte der mit Motivation x verbundenen Kanten. Definitionen gewählter Kreis besteht aus einem Weg in G – x von einem x i zu einem anderen x j und zwei Alg. für eine min. Kreisbasis Kanten Länge einer kürzesten Kreisbasis Alg. für eine suboptimale Kreisbasis ( x , x i ); ( x , x j ) k – 1 Wege werden durch einen spannenden Baum T in G – x gefunden Ein polynomialer Algorithmus für minimale Kreisbasen Fall: k = n Bildung der Wege: Knoten des spannenden Baumes T mit Grad Motivation eins werden mit ihrem einzigen Nachbarn verbunden Definitionen Knoten mit Grad eins von T entfernen Alg. für eine min. Kreisbasis ... n – 1 Wege Länge einer kürzesten Kreisbasis Alg. für eine suboptimale Kreisbasis alle Wege besitzen Länge 1 n – 1 Kreise sind Dreiecke mit jeweils Länge 3 zu der Länge w(IB) wird 3n – 3 addiert: 3/2(n-1)(n-2) + 3n – 3 = 3/2[n² - 3n + 2 + 2n – 2] = 3/2[n² - n] = 3/2n(n-1) Ein polynomialer Algorithmus für minimale Kreisbasen Definition: Motivation Definitionen Alg. für eine min. Kreisbasis Länge einer kürzesten Kreisbasis Alg. für eine suboptimale Kreisbasis Eine Menge von elementaren Kreisen durch einen Knoten x heißt lokal-unabhängig-in-x, falls das x-Netzwerk keine Kreise enthält. Ein polynomialer Algorithmus für minimale Kreisbasen Bemerkung: - eine maximal lokal-unabhängig-in-x Menge Motivation Definitionen besteht aus Grad(x) – 1 Kreisen - diese Menge entspricht einem spannenden Baum im x-Netzwerk Alg. für eine min. Kreisbasis - jeder Kreis in einer minimal-gewichteten, Länge einer kürzesten Kreisbasis Alg. für eine suboptimale Kreisbasis 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 Ein polynomialer Algorithmus für minimale Kreisbasen x-Kanten werden mit der Länge des Motivation Definitionen entsprechenden Kreises gewichtet minimal-gewichtete, maximal lokal-unabhängig Alg. für eine min. Kreisbasis in-x Menge ↔ minimal spannenden Baum im x-Netzwerk (bei gleich bleibendem Gewicht) Länge einer kürzesten Kreisbasis Alg. für eine suboptimale Kreisbasis Ein polynomialer Algorithmus für minimale Kreisbasen Theorem 7: Motivation Definitionen Sei x ein Knoten in G. Eine minimal-gewichtete, maximal lokal-unabhängig-in-x Menge von elementaren Kreisen ist eine Teilmenge einer Alg. für eine min. Kreisbasis minimalen Kreisbasis. Länge einer kürzesten Kreisbasis Alg. für eine suboptimale Kreisbasis Ein polynomialer Algorithmus für minimale Kreisbasen Beispiel: Motivation Definitionen Alg. für eine min. Kreisbasis Länge einer kürzesten Kreisbasis Alg. für eine suboptimale Kreisbasis minimal-gewichtete, maximal-unabhängig-in-x Menge v. elementaren Kreisen für jeden Knoten x: 3 Trapeze Ein polynomialer Algorithmus für minimale Kreisbasen Beispiel: Motivation Definitionen Alg. für eine min. Kreisbasis Länge einer kürzesten Kreisbasis minimal-gewichtete, maximal-unabhängig-in-x Menge v. elementaren Kreisen für jeden Knoten x: 3 Trapeze Alg. für eine suboptimale Kreisbasis für minimal-gewichtete Kreisbasis zusätzlich eines der Dreiecke minimal-gewichtete, maximal-unabhängig-in-x Menge echte Teilmenge der min. Kreisbasis Ein polynomialer Algorithmus für minimale Kreisbasen Algorithmus für eine sub-optimale Kreisbasis: Motivation (1) Wähle einen Knoten x mit minimalem Grad Definitionen (2) Berechne alle kürzesten Wege in G – x zwischen den Nachbarn von x Alg. für eine min. Kreisbasis (3) Berechne einen minimalen spannenden Baum im gewichteten x-Netzwerk Länge einer kürzesten Kreisbasis Alg. für eine suboptimale Kreisbasis (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) liefert für einen ungewichteten Graphen eine Kreisbasis mit höchstens 3(n-1)(n-2)/2 Kanten Ein polynomialer Algorithmus für minimale Kreisbasen Laufzeit: (1) O(1) Motivation (2) O(dn²) mit d := Grad von x Definitionen (3) O(n²) (4) O(dn) Alg. für eine min. Kreisbasis (5) mit O(n) multiplizieren Länge einer kürzesten Kreisbasis Alg. für eine suboptimale Kreisbasis Schritt (2) dominiert die anderen Schritte Zusammen mit Schritt (5) beträgt die Laufzeit: O(n²(Summe der Grade) = O(n²m) Ein polynomialer Algorithmus für minimale Kreisbasen Motivation Definitionen Alg. für eine min. Kreisbasis Länge einer kürzesten Kreisbasis Alg. für eine suboptimale Kreisbasis Zusammenfassung: - Algorithmus für eine Kreisbasis minimaler Länge; Laufzeit O(m³n) - Länge einer kürzesten Kreisbasis ≤ 3(n-1)(n-2)/2 - Algorithmus für eine suboptimale Kreisbasis der Länge O(n²); Laufzeit O(mn²) Ein polynomialer Algorithmus für minimale Kreisbasen Motivation Definitionen Alg. für eine min. Kreisbasis Länge einer kürzesten Kreisbasis Alg. für eine suboptimale Kreisbasis Vielen Dank für Ihre Aufmerksamkeit!