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 -