Zum Inhalt springen

Inzidenzmatrix

aus Wikipedia, der freien Enzyklopädie

Eine Inzidenzmatrix eines Graphen ist eine Matrix, welche die Beziehungen der Knoten und Kanten des Graphen speichert. Wenn der Graph n Knoten und m Kanten besitzt, ist seine Inzidenzmatrix eine n×m-Matrix. Der Eintrag in der i-ten Zeile und j-ten Spalte gibt an, ob der i-te Knoten Teil der j-ten Kante ist. Steht an dieser Stelle eine 1, ist eine Inzidenzbeziehung gegeben, bei einer 0 liegt keine Inzidenz vor. Es wird davon ausgegangen, dass die Knoten von 1 bis n und die Kanten von 1 bis m durchnummeriert sind.

Ungerichtete Graphen

[Bearbeiten | Quelltext bearbeiten]

Für einen schleifenfreien ungerichteten Graphen G=(V,E) mit V={v1,…,vn} und E={e1,…,em} ist die Inzidenzmatrix B=(bi,j) formal definiert durch:

bij:={1, falls vi∈ej0, sonst

Die Inzidenzmatrix eines ungerichteten Graphen enthält also in jeder Spalte genau 2 von 0 verschiedene Einträge.

Gerichtete Graphen

[Bearbeiten | Quelltext bearbeiten]

Für einen schleifenfreien gerichteten Graphen G=(V,E) mit V={v1,…,vn} und E={e1,…,em} ist die Inzidenzmatrix B=(bi,j) definiert durch:

bij:={1, falls ej=(vi,x)0, falls vi∉ej−1, falls ej=(x,vi)

wobei x hier einen beliebigen Knoten darstellt.

Die Inzidenzmatrix eines gerichteten Graphen enthält also in jeder Spalte genau einmal die 1 (Startknoten) und einmal die −1 (Endknoten). Alternativ werden Inzidenzmatrizen manchmal auch mit umgekehrtem Vorzeichen definiert, das heißt, bij=−1, falls die Kante ej am Knoten vi beginnt, und bij=1 falls die Kante ej am Knoten vi endet. Dies ist insbesondere zu beachten, wenn man Ungleichungen betrachtet, die Inzidenzmatrizen enthalten.

Ungerichtete Graphen

[Bearbeiten | Quelltext bearbeiten]

Wir untersuchen nun als Beispiel den rechts stehenden Graphen, der dem Haus vom Nikolaus ähnelt, mit der in dem Bild angegebenen Nummerierung der Knoten und Kanten. Um aus diesem Graphen eine Inzidenzmatrix zu erstellen, beginnen wir mit einer leeren Matrix. Diese enthält für den betrachteten Graphen j=6 Spalten und i=5 Zeilen. Die Kanten werden in die Spalten eingetragen und die Knoten in die Zeilen.

Die Zahlen an den Kanten sind dabei nicht mit Gewichtungen der Kanten zu verwechseln. Sie beschreiben die Namen der Kanten (e1,e2,…,e6), die in der Matrix als Spalten wiederzufinden sind.

Nun werden für jede Spalte (Kante) die dazugehörigen Knoten mit 1 markiert, alle anderen Knoten mit 0. Es ergibt sich folgende Inzidenzmatrix:

(100010110001011000001100000111)

oder als Tabelle formatiert:

e1e2e3e4e5e6
v1 100010
v2 110001
v3 011000
v4 001100
v5 000111

Ist die Inzidenzmatrix eines ungerichteten Graphen korrekt aufgebaut, dann muss in jeder Spalte (Kante) in Summe 2 stehen, da jede Kante exakt 2 Knoten verbindet.

Für nicht-schleifenfreie Graphen wird festgelegt: Ist eine Kante eine Schleife, also eine Kante, die einen Knoten mit sich selbst verbindet, steht in der entsprechenden Zelle eine 2. Die Summe jeder Zeile entspricht der Anzahl Kantenenden an dem Knoten.[1]

Gerichtete Graphen

[Bearbeiten | Quelltext bearbeiten]

Als Beispiel einer Inzidenzmatrix eines gerichteten Graphen betrachten wir nun den rechts stehenden Graphen. Wieder nehmen wir die Nummerierung der Knoten als vorgegeben an. Die Kanten sind wie folgend nummeriert: e1=(1,2),e2=(3,2),e3=(3,1),e4=(1,4),e5=(2,4),e6=(4,3). Es ist |E|=6=m und |V|=4=n. Die Inzidenzmatrix ist also eine 4×6-Matrix:

(10−1100−1−1001001100−1000−1−11)

oder als Tabelle formatiert:

e1e2e3e4e5e6
v1 10−1100
v2 −1−10010
v3 01100−1
v4 000−1−11

Die Inzidenzmatrix eines gerichteten Graphen ist korrekt aufgebaut, wenn in jeder Spalte zwei Nichtnulleinträge stehen, die sich zu Null addieren.

Zusammenhang mit anderen Matrizen

[Bearbeiten | Quelltext bearbeiten]

Eine andere Matrix, die Graphen beschreibt, ist die Laplace-Matrix. Es ist eine n×n-Matrix, wobei n die Anzahl der Knoten ist. Die Koeffizienten ihrer Diagonale enthalten den Grad der Knoten des Graphen, und die anderen Koeffizienten in Zeile i und in Spalte j sind gleich −1, wenn die Knoten i und j verbunden sind, und 0, wenn dies nicht der Fall ist.

Wenn B(G) die Inzidenzmatrix eines gerichteten Graphen G ist, können wir die Laplace-Matrix L(G) durch Multiplizieren von B(G) mit seiner transponierten Matrix BT(G) berechnen:

L(G)=B(G)⋅BT(G)

Zum Beispiel für den gerichteten Graphen in der nebenstehenden Abbildung:

L(G)=(−1000101−1000101−1000001−1000001−1−1)⋅(−110000−110000−110000−111000−10100−1)=(2−100−1−13−10−10−12−1000−12−1−1−10−13)

Die Adjazenzmatrix eines Graphen ist eine weitere Matrix, die den Graphen beschreibt. Es ist eine n×n-Matrix, wobei n die Anzahl der Knoten ist. Die anderen Koeffizienten in Zeile i und in Spalte j sind gleich 1, wenn die Knoten i und j verbunden sind, und ansonsten 0. Für einen ungerichteten Graphen ist diese Matrix symmetrisch.

Die Gradmatrix eines Graphen ist eine n×n-Diagonalmatrix, die den Grad jedes Knotens auflistet. Der Koeffizient in Zeile i und in Spalte i gibt den Grad des Knoten i an, alle anderen Koeffizienten sind 0.

Wenn B(G) die Inzidenzmatrix eines ungerichteten Graphen G ist, A(G) seine Adjazenzmatrix und D(G) seine Gradmatrix ist, dann gilt:

A(G)+D(G)=B(G)⋅BT(G)

Zum Beispiel für den ungerichteten Graphen in der nebenstehenden Abbildung:

A(G)+D(G)=(100010110001011000001100000111)⋅(110000110000110000111000101001)=(2100113101012100012111013)

Indem wir die Diagonale von den anderen Werten isolieren, erhalten wir:

A(G)=(0100110101010100010111010),D(G)=(2000003000002000002000003)

Der Kantengraph eines ungerichteten Graphen wird erhalten, indem seine Kanten durch Knoten ersetzt werden und die neuen Knoten verbunden werden, wenn die entsprechenden ursprünglichen Kanten einen Knoten gemeinsam haben. Die nebenstehende Abbildung zeigt den Kantengraph des ungerichteten Graphen aus dem vorigen Beispiel.

Wenn B(G) die Inzidenzmatrix eines ungerichteten Graphen G und Im die Einheitsmatrix ist, können wir die Adjazenzmatrix A(L(G)) seines Kantengraphen folgendermaßen berechnen:

A(L(G))=B(G)⋅BT(G)−2⋅Im

Zum Beispiel für den Kantengraphen in der nebenstehenden Abbildung:

A(L(G))=(110000110000110000111000101001)⋅(100010110001011000001100000111)−(200000020000002000000200000020000002)=(010011101001010100001011100101110110)

Speicherung von Graphen im Computer

[Bearbeiten | Quelltext bearbeiten]

Inzidenzmatrizen werden in der Informatik zur Speicherung von Graphen verwendet. Die Inzidenzmatrix eines Graphen mit n Knoten und m Kanten benötigt einen Speicherplatz von 𝒪(n⋅m). Da die Platzkomplexität von Adjazenzmatrizen 𝒪(n2) beträgt, sind Inzidenzmatrizen, sollte es weniger Kanten als Knoten geben, speicherplatztechnisch effizienter.

Spektrale Graphentheorie

[Bearbeiten | Quelltext bearbeiten]

Des Weiteren finden Inzidenzmatrizen Anwendung in der spektralen Graphentheorie, wo versucht wird, aufgrund gewisser Eigenschaften der Inzidenzmatrix Rückschlüsse auf die Eigenschaften des repräsentierten Graphen zu ziehen.

Die Inzidenzmatrix eines ungerichteten bipartiten Graphen ist eine total unimodulare Matrix, genauso wie die eines Digraphen. Daher lässt sich unter gewissen Voraussetzungen die Ganzzahligkeit der Lösung eines linearen Optimierungsproblems zeigen, wenn die zulässige Menge durch eine der vorhin genannten Inzidenzmatrizen definiert wird. Insbesondere stellt dies eine Verbindung zwischen diskreter Optimierung und linearer Optimierung her.

Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]
  1. ↑ Manfred Brill: Mathematik für Informatiker. Einführung an praktischen Beispielen aus der Welt der Computer. 2., völlig neu bearbeitete Auflage. Hanser Fachbuchverlag, München u. a. 2005, ISBN 3-446-22802-0, S. 161–169.