Inzidenzmatrix

Dieser Artikel behandelt die Inzidenzmatrix von Graphen. Eine allgemeinere Sichtweise wird im Artikel zu Inzidenzstrukturen beschrieben.

Eine Inzidenzmatrix eines Graphen ist eine Matrix, welche die Beziehungen der Knoten und Kanten des Graphen speichert. Wenn der Graph n {\displaystyle n} Knoten und m {\displaystyle m} Kanten besitzt, ist seine Inzidenzmatrix eine n × m {\displaystyle n\times m} -Matrix. Der Eintrag in der i {\displaystyle i} -ten Zeile und j {\displaystyle j} -ten Spalte gibt an, ob der i {\displaystyle i} -te Knoten Teil der j {\displaystyle 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 {\displaystyle n} und die Kanten von 1 bis m {\displaystyle m} durchnummeriert sind.

Definition

Ungerichtete Graphen

Für einen schleifenfreien ungerichteten Graphen G = ( V , E ) {\displaystyle G=(V,E)} mit V = { v 1 , , v n } {\displaystyle V=\{v_{1},\dotsc ,v_{n}\}} und E = { e 1 , , e m } {\displaystyle E=\{e_{1},\dotsc ,e_{m}\}} ist die Inzidenzmatrix B = ( b i , j ) {\displaystyle B=(b_{i,j})} formal definiert durch:

b i j := { 1 ,  falls  v i e j 0 ,  sonst {\displaystyle b_{ij}:={\begin{cases}1,&{\text{ falls }}v_{i}\in e_{j}\\0,&{\text{ sonst}}\end{cases}}}

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

Gerichtete Graphen

Für einen schleifenfreien gerichteten Graphen G = ( V , E ) {\displaystyle G=(V,E)} mit V = { v 1 , , v n } {\displaystyle V=\{v_{1},\dotsc ,v_{n}\}} und E = { e 1 , , e m } {\displaystyle E=\{e_{1},\dotsc ,e_{m}\}} ist die Inzidenzmatrix B = ( b i , j ) {\displaystyle B=(b_{i,j})} definiert durch:

b i j := { 1 ,  falls  e j = ( v i , x ) 0 ,  falls  v i e j 1 ,  falls  e j = ( x , v i ) {\displaystyle b_{ij}:={\begin{cases}1,&{\text{ falls }}e_{j}=(v_{i},x)\\0,&{\text{ falls }}v_{i}\notin e_{j}\\-1,&{\text{ falls }}e_{j}=(x,v_{i})\end{cases}}}

wobei x {\displaystyle x} hier einen beliebigen Knoten darstellt.

Die Inzidenzmatrix eines gerichteten Graphen enthält also in jeder Spalte genau einmal die 1 {\displaystyle 1} (Startknoten) und einmal die 1 {\displaystyle -1} (Endknoten). Alternativ werden Inzidenzmatrizen manchmal auch mit umgekehrtem Vorzeichen definiert, das heißt, b i j = 1 {\displaystyle b_{ij}=-1} , falls die Kante e j {\displaystyle e_{j}} am Knoten v i {\displaystyle v_{i}} beginnt, und b i j = 1 {\displaystyle b_{ij}=1} falls die Kante e j {\displaystyle e_{j}} am Knoten v i {\displaystyle v_{i}} endet. Dies ist insbesondere zu beachten, wenn man Ungleichungen betrachtet, die Inzidenzmatrizen enthalten.

Beispiele

Ungerichtete Graphen

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 {\displaystyle j=6} Spalten und i = 5 {\displaystyle 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 ( e 1 , e 2 , , e 6 ) {\displaystyle (e_{1},e_{2},\dotsc ,e_{6})} , 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:

( 1 0 0 0 1 0 1 1 0 0 0 1 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 ) {\displaystyle {\begin{pmatrix}1&0&0&0&1&0\\1&1&0&0&0&1\\0&1&1&0&0&0\\0&0&1&1&0&0\\0&0&0&1&1&1\\\end{pmatrix}}}

oder als Tabelle formatiert:

e1 e2 e3 e4 e5 e6
v1 1 0 0 0 1 0
v2 1 1 0 0 0 1
v3 0 1 1 0 0 0
v4 0 0 1 1 0 0
v5 0 0 0 1 1 1

Ist die Inzidenzmatrix eines ungerichteten Graphen korrekt aufgebaut, dann muss in jeder Spalte (Kante) in Summe 2 stehen, da jede Kante exakt 2 Punkte verbindet. Ist ein Punkt mit sich selbst verbunden, steht in der entsprechenden Zelle eine 2. Die Summe jeder Zeile entspricht den Kanten, die in den dazugehörigen Punkt führen.[1]

Gerichtete Graphen

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: e 1 = ( 1 , 2 ) , e 2 = ( 3 , 2 ) , e 3 = ( 3 , 1 ) , e 4 = ( 1 , 4 ) , e 5 = ( 2 , 4 ) , e 6 = ( 4 , 3 ) . {\displaystyle e_{1}=(1,2),e_{2}=(3,2),e_{3}=(3,1),e_{4}=(1,4),e_{5}=(2,4),e_{6}=(4,3).} Es ist | E | = 6 = m {\displaystyle |E|=6=m} und | V | = 4 = n {\displaystyle |V|=4=n} . Die Inzidenzmatrix ist also eine 4 × 6 {\displaystyle 4\times 6} -Matrix:

( 1 0 1 1 0 0 1 1 0 0 1 0 0 1 1 0 0 1 0 0 0 1 1 1 ) {\displaystyle {\begin{pmatrix}1&0&-1&1&0&0\\-1&-1&0&0&1&0\\0&1&1&0&0&-1\\0&0&0&-1&-1&1\\\end{pmatrix}}}

oder als Tabelle formatiert:

e1 e2 e3 e4 e5 e6
v1 1 0 −1 1 0 0
v2 −1 −1 0 0 1 0
v3 0 1 1 0 0 −1
v4 0 0 0 −1 −1 1

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

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

Wenn B ( G ) {\displaystyle B(G)} die Inzidenzmatrix eines gerichteten Graphen G {\displaystyle G} ist, können wir die Laplace-Matrix L ( G ) {\displaystyle L(G)} durch Multiplizieren von B ( G ) {\displaystyle B(G)} mit seiner transponierten Matrix B T ( G ) {\displaystyle B^{\mathrm {T} }(G)} berechnen:

L ( G ) = B ( G ) B T ( G ) {\displaystyle L(G)=B(G)\cdot B^{\mathrm {T} }(G)}

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

L ( G ) = ( 1 0 0 0 1 0 1 1 0 0 0 1 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 ) ( 1 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 1 0 1 0 0 1 ) = ( 2 1 0 0 1 1 3 1 0 1 0 1 2 1 0 0 0 1 2 1 1 1 0 1 3 ) {\displaystyle L(G)={\begin{pmatrix}-1&0&0&0&1&0\\1&-1&0&0&0&1\\0&1&-1&0&0&0\\0&0&1&-1&0&0\\0&0&0&1&-1&-1\\\end{pmatrix}}\cdot {\begin{pmatrix}-1&1&0&0&0\\0&-1&1&0&0\\0&0&-1&1&0\\0&0&0&-1&1\\1&0&0&0&-1\\0&1&0&0&-1\\\end{pmatrix}}={\begin{pmatrix}2&-1&0&0&-1\\-1&3&-1&0&-1\\0&-1&2&-1&0\\0&0&-1&2&-1\\-1&-1&0&-1&3\\\end{pmatrix}}}

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

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

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

A ( G ) + D ( G ) = B ( G ) B T ( G ) {\displaystyle A(G)+D(G)=B(G)\cdot B^{\mathrm {T} }(G)}

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

A ( G ) + D ( G ) = ( 1 0 0 0 1 0 1 1 0 0 0 1 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 ) ( 1 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 1 0 1 0 0 1 ) = ( 2 1 0 0 1 1 3 1 0 1 0 1 2 1 0 0 0 1 2 1 1 1 0 1 3 ) {\displaystyle A(G)+D(G)={\begin{pmatrix}1&0&0&0&1&0\\1&1&0&0&0&1\\0&1&1&0&0&0\\0&0&1&1&0&0\\0&0&0&1&1&1\\\end{pmatrix}}\cdot {\begin{pmatrix}1&1&0&0&0\\0&1&1&0&0\\0&0&1&1&0\\0&0&0&1&1\\1&0&0&0&1\\0&1&0&0&1\\\end{pmatrix}}={\begin{pmatrix}2&1&0&0&1\\1&3&1&0&1\\0&1&2&1&0\\0&0&1&2&1\\1&1&0&1&3\\\end{pmatrix}}}

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

A ( G ) = ( 0 1 0 0 1 1 0 1 0 1 0 1 0 1 0 0 0 1 0 1 1 1 0 1 0 ) , D ( G ) = ( 2 0 0 0 0 0 3 0 0 0 0 0 2 0 0 0 0 0 2 0 0 0 0 0 3 ) {\displaystyle A(G)={\begin{pmatrix}0&1&0&0&1\\1&0&1&0&1\\0&1&0&1&0\\0&0&1&0&1\\1&1&0&1&0\\\end{pmatrix}},\quad D(G)={\begin{pmatrix}2&0&0&0&0\\0&3&0&0&0\\0&0&2&0&0\\0&0&0&2&0\\0&0&0&0&3\\\end{pmatrix}}}

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 ) {\displaystyle B(G)} die Inzidenzmatrix eines ungerichteten Graphen G {\displaystyle G} und I m {\displaystyle I_{m}} die Einheitsmatrix ist, können wir die Adjazenzmatrix A ( L ( G ) ) {\displaystyle A(L(G))} seines Kantengraphen folgendermaßen berechnen:

A ( L ( G ) ) = B ( G ) B T ( G ) 2 I m {\displaystyle A(L(G))=B(G)\cdot B^{\mathrm {T} }(G)-2\cdot I_{m}}

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

A ( L ( G ) ) = ( 1 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 1 0 1 0 0 1 ) ( 1 0 0 0 1 0 1 1 0 0 0 1 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 ) ( 2 0 0 0 0 0 0 2 0 0 0 0 0 0 2 0 0 0 0 0 0 2 0 0 0 0 0 0 2 0 0 0 0 0 0 2 ) = ( 0 1 0 0 1 1 1 0 1 0 0 1 0 1 0 1 0 0 0 0 1 0 1 1 1 0 0 1 0 1 1 1 0 1 1 0 ) {\displaystyle A(L(G))={\begin{pmatrix}1&1&0&0&0\\0&1&1&0&0\\0&0&1&1&0\\0&0&0&1&1\\1&0&0&0&1\\0&1&0&0&1\\\end{pmatrix}}\cdot {\begin{pmatrix}1&0&0&0&1&0\\1&1&0&0&0&1\\0&1&1&0&0&0\\0&0&1&1&0&0\\0&0&0&1&1&1\\\end{pmatrix}}-{\begin{pmatrix}2&0&0&0&0&0\\0&2&0&0&0&0\\0&0&2&0&0&0\\0&0&0&2&0&0\\0&0&0&0&2&0\\0&0&0&0&0&2\\\end{pmatrix}}={\begin{pmatrix}0&1&0&0&1&1\\1&0&1&0&0&1\\0&1&0&1&0&0\\0&0&1&0&1&1\\1&0&0&1&0&1\\1&1&0&1&1&0\\\end{pmatrix}}}

Verwendung

Speicherung von Graphen im Computer

Inzidenzmatrizen werden in der Informatik zur Speicherung von Graphen verwendet. Die Inzidenzmatrix eines Graphen mit n {\displaystyle n} Knoten und m {\displaystyle m} Kanten benötigt einen Speicherplatz von O ( n m ) {\displaystyle {\mathcal {O}}(n\cdot m)} . Da die Platzkomplexität von Adjazenzmatrizen O ( n 2 ) {\displaystyle {\mathcal {O}}(n^{2})} beträgt, sind Inzidenzmatrizen, sollte es weniger Kanten als Knoten geben, speicherplatztechnisch effizienter.

Spektrale Graphentheorie

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.

Optimierung

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.

Literatur

  • Peter Knabner, Wolf Barth: Lineare Algebra. Grundlagen und Anwendungen (= Springer-Lehrbuch). Springer Spektrum, Berlin u. a. 2013, ISBN 978-3-642-32185-6. 
  • Reinhard Diestel: Graphentheorie. 4. Auflage. Springer, Heidelberg u. a. 2010, ISBN 978-3-642-14911-5. 

Einzelnachweise

  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. 
Normdaten (Sachbegriff): GND: 4815731-4 (lobid, OGND, AKS)