Def 1: Es sei G ein zusammenhängender
Graph. Ein zusammenhängender, alle Knotenpunkte von G enthaltender
Untergraph von G mit minimaler Kantenanzahl heißt Gerüst
von G.
Beispiel:
Die fett gezeichneten Kanten stellen eines der Gerüste des
Graphen dar.
Bevor die Gerüstanzahl eines allgemeinen Graphen diskutiert
wird, soll auf den speziellen Fall der vollständigen Graphen
eingegangen werden. Für den vollständigen Graphen bewies
"Cayley" 1889 eine geschlossene Formel zur Berechnung
der Gerüstanzahl, wodurch sehr einfach die Gerüstanzahl
bestimmt werden kann.
Satz von Cayley : Der vollständige Graph mit n Knotenpunkten
besitzt genau nn-2 verschiedene Gerüste.
| Gleichung 1 |
Beweis :Man nehme ein k-tupel Tn-2 = ( J1, J2, , Jn-2 ) und ordne ihm auf folgende Weise ein eindeutiges Gerüst zu. Dazu geben wir die Knotenpunkte 1,2, , n vor und fügen nach und nach Kanten hinzu, bis ein Baum entstanden ist.
| Wir bestimmen die kleinste Zahl I1 von
X= { 1,2,,n}, die nicht in Tn-2 enthalten ist, und zeichnen die Kante l1=(I1,J1). | Bsp. T5=(4,3,7,4,5); X={1,2,3,4,5,6,7} l1=(1,4)
|
| Dann bestimmen wir die kleinste Zahl I2 aus X-{I1}, die nicht in dem k-1 tupel (J2, J3, , Jn-2) vorkommt und zeichnen die Kante
l2 = (I2,J2). | Bsp.T4=(3,7,4,5);X-{I1}={2,3,4,5,6,7} l2=(2,3) |
| Nach n-2 Schritten enthält X-{I1, I2, , In-2} nur noch die beiden Knotenpunkte In-1 und In, die durch die Kante ln-1 verbunden werden. | X-{I1, I2, , In-2}= {5,7}ln-1=(5,7) |
Der auf diese Weise konstruierte Graph H* hat n Knotenpunkte und n-1 Kanten. Um zu beweisen, daß H* ein Baum ist, brauchen wir nur zu beweisen, daß H* keinen Kreis enthält.
In jedem Stadium der Konstruktion gilt :
a) Jeder Knotenpunkt ist Anfangspunkt höchstens einer Kante, In ist Anfangspunkt keiner Kante. Die schon benutzten Anfangspunkte werden ja aus X gelöscht.
b) Kein Endpunkt einer Kante ist Anfangspunkt einer schon früher gezeichneten Kante
Die Endpunkte der Kanten, was dem Zahlen des Tupels entspricht,
werden bei der Konstruktion ebenfalls als Anfangspunkte ausgeschlossen.
Angenommen, H* enthalte einen Kreis, dann sei ls
die erste der Kanten, durch deren Hinzunahme ein Kreis C entsteht.
Nun gibt es zwei Möglichkeiten auf welchem Weg ein Kreis
entsteht.
| A) Die Kanten im Kreis haben verschiedenen Umlaufsinn. | B) Alle Kanten im Kreis haben den gleichen Umlaufsinn. |
Der Fall A kann nicht eintreten, da er im Widerspruch zu a) steht, da der obere Knoten zwei Kanten als Anfangspunkt dient. Der Fall B kann ebenfalls nicht eintreten, da an der Stelle wo sich der Kreis schließt ein Widerspruch zu Punkt b) eintreten würde.
Damit ist bewiesen, daß eine eindeutige Abbildung der Menge
der (n-2)-Tupel auf die Menge der Gerüste existiert. Um den
Beweis vollständig zu machen, muß nun noch gezeigt
werden, daß auch eine umgekehrte Abbildung existiert. Dazu
ordnet man jedem Gerüst auf folgende Weise ein (n-2)-Tupel
zu. Man bestimme den Knoten vom Grad 1, der die kleinste Knotennummer
besitzt. Nun trage man den (einzigen) Nachbar des Knotens in das
Tupel ein. Danach lösche man den Knoten und seine Kante.
Dieser Vorgang wird nun solange wiederholt, bis nur noch zwei
durch eine Kante verbundene Knoten übrig sind, der Tupel
also einen Umfang von n-2 besitzt.
Damit ist umkehrbar eindeutig bewiesen, daß jedem Gerüst ein (n-2)-Tupel zugewiesen werden kann.
Im Programm zur Bestimmung der Gerüstanzahl wird dieser Satz
ausgenutzt, indem getestet wird , ob der Graph G ein vollständiger
Graph ist. Sollte dies der Fall sein, wird auf die weiter unten
beschriebene Berechnung verzichtet und das Ergebnis aus Gleichung
1 berechnet. Die Erkennung des vollständigen Graphen erfolgt
über seine Kantenanzahl von .
Bevor jedoch der Satz genannt und bewiesen wird, muß man
sich mit verschiedenen Arten von Matrizen beschäftigen, mit
deren Hilfe man einen Graphen beschreiben kann.
Für verschiedene graphentheoretische Probleme und deren Lösung
hat es sich als sinnvoll erwiesen, Graphen mit Hilfe von Matrizen
zu beschreiben. Dabei soll an dieser Stelle auf drei Arten von
Matrizen näher eingegangen werden.
Beispielgraph für alle Matrizen :
Sei G(V,E) ein Graph mit der Knotenmenge V und Kantenmenge E, so heißt die quadratische Matrix G[nn] Adjazenzmatrix von G, genau dann wenn
| Gleichung 2 |
Adjazenzmatrix des Beispielgraphen :
Sei G(V,E) ein Graph mit der Knotenmenge V und Kantenmenge E, so heißt die quadratische Matrix B[nn] Valenzmatrix von G, genau dann wenn
| Gleichung 3 |
Valenzmatrix des Beispielgraphen :
Sei G(V,E) ein Graph mit der Knotenmenge V und Kantenmenge E, so heißt die quadratische Matrix A[nn] Admittanzmatrix von G, genau dann wenn
| Gleichung 4 |
Admittanzmatrix des Beispielgraphen :
(Satz und Beweis laut H.Sachs [3])
Satz : Der Graph G mit den Knotenpunkten 1,2, ,n ( n2 )
habe die Admittanzmatrix A. Es
sei i eine beliebige Zahl zwischen 1 n. Die Matrix Ai
entstehe aus A durch Streichung
der i-ten Zeile und der i-ten Spalte. Es gilt dann : Die Determinante
|Ai| ist gleich der
Anzahl h(G) der Gerüste von G.
Bezeichnungen :
M = (mik ) sei eine beliebige quadratische Matrix
|M| bezeichne die Determinante von M
Mi entstehe durch Streichen der i-ten Zeile und der i-ten Spalte
Mj* entstehe aus M, indem alle Elemente der j-ten Spalte bis auf das Diagonalelement durch 0 und mjj durch 1 ersetzt werden.
Mk entstehe aus
M, indem mkk um 1 verkleinert
wird.
Wie man leicht sieht ist für i k :
| |Mi|=|Mi*| | Gleichung 5 |
Beispiel :
(Mi)k=(Mk)i
man schreibt
Mik sei erklärt
durch Mik=(Mi)k
(ik).
Aus |M| = |Mk| + |Mk*| mit Gleichung 5 folgt direkt |M| = |Mk| + |Mk|
Ersetzt man nun M durch Mi
dann ergibt sich :
| |Mi| = |
| Gleichung 6 |
Hilfssatz:Die Knotenpunkte I und K (IK) des Graphen G seien
durch die Kante u verbunden. Gu entstehe aus G durch
Zusammenziehen von u. Hierbei werden I und K durch einen einzigen
neuen Knotenpunkt ersetzt und alle I und K verbindenden Kanten
werden gelöscht. G-u dagegen entstehe durch Löschen
der Kante u.
Daraus folgt :
h(G )=h(Gu ) + h(Gu);
Beweis:
1. Den Gerüsten von Gu entsprechen umkehrbar eindeutig diejenigen Gerüste von G, die die Kante u enthalten.
2. Den Gerüsten von G-u entsprechen umkehrbar eindeutig diejenigen Gerüste von G, die die Kante u nicht enthalten.
A(u) und A(u) seien die Admittanzmatrizen von Gu bzw. G-u , dann gilt :
(A(u)) = (AK) = AK . Aus der Admittanzmatrix wird eine um einen Grad verminderte Matrix, da ja ein Knoten wegfällt.
(A(u)) = (A)K = AK . Die Admittanzmatrix wird um die entfernte Kante vermindert.
Der Beweis kann nun mit der vollständigen Induktion erfolgen.
Beweis :
Es wird angenommen, daß die Anzahl der Gerüste in einem
Graphen gleich |AI|
ist. Dies kann für triviale Fälle ( G enthält keine
Kante; G enthält zwei Knoten und eine Kante; G enthält
n Knoten und n-1 Kanten ) sofort bestätigt werden.
Wir nehmen also an, der Satz sei bewiesen für alle Graphen G mit weniger als p Kanten. Nun nehmen wir weiterhin an, unser Graph G hat genau p Kanten, wurde also durch Einfügen von Kante u erweitert. Da h(Gu) = |(A(u))K| = |AIK| und h(Gu) = |(A(u))I| = |AIK| bewiesen ist, da diese Graphen weniger als p Kanten besitzen, folgt aus
h(G) = h(Gu) + h(Gu) h(G)= |AIK| + |AIK|.
Dies entspricht aber laut Gleichung (1) h(G)=|AI|, d.h. jeder Graph mit mehr als p Kanten läßt sich in kleinere Graphen zerlegen, für die der Satz bewiesen ist.
Aus der Rechenregel h(G)= |AIK|
+ |AIK| =
|AI| folgt dann, daß
der Satz auch für größere Graphen bewiesen ist.
Da h(Gu) = |(A(u))I|
= |AIK| und
h(Gu) = |(A(u))K|
= |AIK| bewiesen werden
konnte, folgt daraus unmittelbar, daß auch h(G)= |AIK|
+ |AIK| =
|AI| richtig ist.
Die Ermittlung der Determinante der Admittanzmatrix und damit
der Gerüstanzahl des Graphen G erfolgt mit Hilfe eines leicht
modifizierten Gauß-Algorithmus. Der Gauß-Algorithmus
wird hier als modifiziert bezeichnet, weil er um einen Programmteil
ergänzt wurde, der Rundungsfehler beim Berechnen größeren
Matrizen bzw. sehr kleiner Werte vermindern hilft. Da der Algorithmus
allgemein bekannt ist, einer Toolbox entnommen wurde und in fast
jedem Buch über numerische Mathematik z.B. [2] zu finden
ist, wird hier auf eine Erklärung desselben verzichtet. Der
Algorithmus erwartet als Parameter die Größe der Matrix,
so daß das statt des Streichens einer Zeile und Spalte,
nur dieser Parameter um 1 verringert zu werden braucht. Es wird
dadurch stets die letzte Zeile und Spalte gestrichen.
Der Algorithmus erstellt eine Matrix aus der Ebert Struktur eínes
Graphen und berechnet dann die Determinante der um eine Spalte
und Zeile verminderten Matrix. Zur Erstellung der Matrix wird
das Feld Valenz und das Feld Node komplett durchlaufen, was eine
Rechenzeit von maximal O(n2) verursachen kann. Die
Durchführung des Gauß-Algorithmus zur Berechnung der
Determinante benötigt eine Rechenzeit O(n3). Insgesamt
hat der Algorithmus also eine Rechenzeit von maximal O(n3).
Da es sich hierbei um eine polynomiale Rechenzeit handelt, war
zu erwarten, daß auch die Gerüstanzahl von größeren
Graphen in kurzer Zeit ermittelt werden kann. Dies bestätigte
sich durch Testberechnungen.
Beispielgraph :
Admittanzmatrix des Graphen :
Determinante der Admittanzmatrix des Graphen :
Die Gerüstanzahl des Beispielgraphen beträgt damit 8.