„Adjazenzmatrix“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
[gesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
K Beschriftung von 1. Bild angepasst
Zeile 39: Zeile 39:
|}
|}


Eine '''Adjazenzmatrix''' (manchmal auch '''Nachbarschaftsmatrix''') eines [[Graph|Graphen]] ist eine [[Matrix (Mathematik)|Matrix]], die speichert welche [[Knoten (Graphentheorie)|Knoten]] des Graphen durch eine [[Kante (Graphentheorie)|Kante]] verbunden sind. Sie besitzt für jeden Knoten eine Zeile und eine Spalte, woraus sich für ''n'' Knoten eine <math>n \times n</math>-Matrix ergibt. Der Eintrag in der ''i''-ten Spalte und ''j''-ten Zeile gibt hierbei an, ob eine Kante den ''i''-ten Knoten mit dem ''j''-ten Knoten verbindet. Steht an dieser Stelle eine '''0''', ist keine Kante vorhanden – eine '''1''' gibt an, dass eine Kante existiert<ref name="Mathe für Informatiker">{{Literatur | Autor=Gerald Teschl, Susanne Teschl | Titel=Mathematik für Informatiker - Band 1: Diskrete Mathematik und Lineare Algebra | Auflage=1 | Verlag=Springer | Ort=Berlin Heidelberg New York | Jahr=2006 | ISBN=978-3-540-25782-0 | Seiten=387-389}}</ref>, siehe Abbildung rechts.
Eine '''Adjazenzmatrix''' (manchmal auch '''Nachbarschaftsmatrix''') eines [[Graph|Graphen]] ist eine [[Matrix (Mathematik)|Matrix]], die speichert welche [[Knoten (Graphentheorie)|Knoten]] des Graphen durch eine [[Kante (Graphentheorie)|Kante]] verbunden sind. Sie besitzt für jeden Knoten eine Zeile und eine Spalte, woraus sich für ''n'' Knoten eine <math>n \times n</math>-Matrix ergibt. Der Eintrag in der ''i''-ten Spalte und ''j''-ten Zeile gibt hierbei an, ob eine Kante den ''i''-ten Knoten mit dem ''j''-ten Knoten verbindet. Steht an dieser Stelle eine '''0''', ist keine Kante vorhanden – eine '''1''' gibt an, dass eine Kante existiert<ref name="Mathe für Informatiker">[[Gerald Teschl]], [[Susanne Teschl]]: ''Mathematik für Informatiker.'' Band 1: ''Diskrete Mathematik und Lineare Algebra.'' Korrigierte Nachdruck. Springer, Berlin u. a. 2006, ISBN 3-540-25782-9, S. 387–389.</ref>, siehe Abbildung rechts.


Es gibt unterschiedliche Varianten, abhängig von der Art des Graphen, z.B. für Mehrfachkanten.
Es gibt unterschiedliche Varianten, abhängig von der Art des Graphen, z.B. für Mehrfachkanten.
Zeile 49: Zeile 49:


=== Graphen ohne Kantengewichte, ohne Mehrfachkanten ===
=== Graphen ohne Kantengewichte, ohne Mehrfachkanten ===
In einem Graphen ohne Kantengewichte und ohne Mehrfachkanten ist die Kantenmenge durch eine Menge 2-[[Tupel]]n <math>(i,j)</math> gegeben, wobei <math>i</math> und <math>j</math> die Nummern der Anfangs- und der Endknoten der Kanten sind. Handelt es sich um einen ungerichteten Graphen ist <math>(i,j)</math> in der Kantenmenge genau dann wenn <math>(j,i)</math> in der Kantenmenge ist. Die Adjazentmatrix ist für ungerichtete Graphen also immer symmetrisch<ref>{{Literatur | Autor=Peter Pepper | Titel=Programmieren mit Java | Auflage=1 | Verlag=Springer-Verlag | Ort=Berlin Heidelberg | Jahr=2005 | ISBN=978-3-540-26807-9 | Seiten=304}}</ref>.
In einem Graphen ohne Kantengewichte und ohne Mehrfachkanten ist die Kantenmenge durch eine Menge 2-[[Tupel]]n <math>(i,j)</math> gegeben, wobei <math>i</math> und <math>j</math> die Nummern der Anfangs- und der Endknoten der Kanten sind. Handelt es sich um einen ungerichteten Graphen ist <math>(i,j)</math> in der Kantenmenge genau dann wenn <math>(j,i)</math> in der Kantenmenge ist. Die Adjazentmatrix ist für ungerichtete Graphen also immer symmetrisch<ref>{{Literatur | Autor=Peter Pepper | Titel=Programmieren mit Java. Eine grundlegende Einführung für Informatiker und Ingenieure | Verlag=Springer | Ort=Berlin u. a. | Jahr=2005 | ISBN=3-540-20957-3 | Seiten=304}}</ref>.


Die Adjazenzmathrix <math>A=[a_{ij}]</math> des Graphen ''G'' ist durch seine Einträge definiert als<ref name="Mathe für Informatiker"/>
Die Adjazenzmathrix <math>A=[a_{ij}]</math> des Graphen ''G'' ist durch seine Einträge definiert als<ref name="Mathe für Informatiker"/>
Zeile 191: Zeile 191:


Alternativ zur Adjazenzmatrix kann für Entfernungen zwischen Punkten in Graphen auch eine [[Entfernungstabelle]] verwenden. Diese hat ebenfalls für jeden Knoten eine Zeile und eine Spalte, enthält aber die Entfernung zwischen 2 Knoten, unabhängig davon ob diese direkt oder über mehrere Kanten verbunden sind.
Alternativ zur Adjazenzmatrix kann für Entfernungen zwischen Punkten in Graphen auch eine [[Entfernungstabelle]] verwenden. Diese hat ebenfalls für jeden Knoten eine Zeile und eine Spalte, enthält aber die Entfernung zwischen 2 Knoten, unabhängig davon ob diese direkt oder über mehrere Kanten verbunden sind.

== Literatur ==
* {{Literatur | Autor=Reinhard Diestel | Titel=Graphentheorie| Auflage=4. | Verlag=Springer| Ort=Berlin u. a.| Jahr=2010| ISBN=978-3-642-14911-5 }}
* {{Literatur | Autor=Peter Knabner, [[Wolf Barth]] | Titel=Lineare Algebra. Grundlagen und Anwendungen | Reihe=Springer-Lehrbuch| Verlag=Springer Spektrum| Ort=Berlin u a.| Jahr=2013| ISBN=978-3-642-32185-6 }}
* {{Literatur | Autor=Volker Turau | Titel=Algorithmische Graphentheorie | Auflage=3., überarbeitete | Verlag=Oldenbourg| Ort=München| Jahr=2009| ISBN=978-3-486-59057-9 }}


== Einzelnachweise ==
== Einzelnachweise ==
<references />
<references />

== Literatur ==
*{{Literatur | Autor=Peter Knabner, [[Wolf Barth]] | Titel=Lineare Algebra | Reihe=Springer-Lehrbuch |TitelErg=Grundlagen und Anwendungen|Auflage=1. | Verlag=Springer| Ort=Berlin| Jahr=2012| ISBN=978-3-642-32185-6 | Kommentar=996 Seiten }}
*{{Literatur | Autor=Volker Turau | Titel=Algorithmische Graphentheorie | Auflage=3. | Verlag=Oldenbourg| Ort=München| Jahr=2009| ISBN=978-3-486-59057-9 }}
* {{Literatur | Autor=Reinhard Diestel | Titel=Graphentheorie | Verlag=Springer| Ort=Berlin| Jahr=2010| ISBN=978-3-642-14911-5 | Kommentar=354 Seiten }}


[[Kategorie:Grundbegriff (Graphentheorie)]]
[[Kategorie:Grundbegriff (Graphentheorie)]]

Version vom 2. August 2013, 05:27 Uhr

Ungerichteter Graph

ohne Kantengewichte und

ohne Mehrfachkanten

4x4-Adjazenzmatrix zum Graphen

links, mit den 3 Kanten

(1,2), (2, 3) und (2, 4)

die durch 1 gekennzeichnet sind

Eine Adjazenzmatrix (manchmal auch Nachbarschaftsmatrix) eines Graphen ist eine Matrix, die speichert welche Knoten des Graphen durch eine Kante verbunden sind. Sie besitzt für jeden Knoten eine Zeile und eine Spalte, woraus sich für n Knoten eine -Matrix ergibt. Der Eintrag in der i-ten Spalte und j-ten Zeile gibt hierbei an, ob eine Kante den i-ten Knoten mit dem j-ten Knoten verbindet. Steht an dieser Stelle eine 0, ist keine Kante vorhanden – eine 1 gibt an, dass eine Kante existiert[1], siehe Abbildung rechts.

Es gibt unterschiedliche Varianten, abhängig von der Art des Graphen, z.B. für Mehrfachkanten.

Die Repräsentation eines Graphen als Matrix erlaubt den Einsatz von Methoden der linearer Algebra. Die Anwendung und Untersuchung solcher Methoden bildet ein zentrales Thema in der spektralen Graphentheorie. Es bildet damit eine Schnittstelle zwischen Graphentheorie und linearer Algebra.

Varianten

Die folgenden Definitionen gelten für Graphen , deren Knoten mit den Zahlen 1 bis n durchgehend nummeriert sind. Je nachdem, ob man einen Graphen mit Kantengewichten oder Mehrfachkanten betrachtet, unterscheidet sich die Definition der Adjazenzmatrix leicht. Hypergraphen sowie kantengewichtete Graphen mit Mehrfachkanten besitzen keine Darstellung als Adjazenzmatrix.

Graphen ohne Kantengewichte, ohne Mehrfachkanten

In einem Graphen ohne Kantengewichte und ohne Mehrfachkanten ist die Kantenmenge durch eine Menge 2-Tupeln gegeben, wobei und die Nummern der Anfangs- und der Endknoten der Kanten sind. Handelt es sich um einen ungerichteten Graphen ist in der Kantenmenge genau dann wenn in der Kantenmenge ist. Die Adjazentmatrix ist für ungerichtete Graphen also immer symmetrisch[2].

Die Adjazenzmathrix des Graphen G ist durch seine Einträge definiert als[1]

Ein Beispiel für einen ungerichteten Graphen ohne Kantengewichte und ohne Mehrfachkanten ist in der Abbildung oben zu sehen. Daneben ist die dazugehörige, symmetrische Adjazenzmatrix. Selbstkanten, von einem Knoten zum gleichen Knoten erkennt man an der entsprechenden 1 auf der Hauptdiagonale.

Graphen ohne Kantengewichte, mit Mehrfachkanten

Handelt es sich bei dem Graphen G um einen Multigraphen ohne Kantengewichte, dann wird die Menge seiner Kanten als Multimenge von Knotenpaaren beschrieben.

Die Adjazenzmathrix des Graphen G ist durch seine Einträge definiert als

Hierbei bezeichnet die Anzahl aller Kanten, welche die Knoten mit Nummer und verbinden.

Graphen mit Kantengewichten, ohne Mehrfachkanten

Gerichteter Graph

mit Kantengewichten und

ohne Mehrfachkanten

Adjazenzmatrix zum

Graphen links

Für einen kantengewichteten Graph mit Kantengewicht ist seine Adjazenzmathrix über ihre Einträge definiert als

Gelegentlich wird anstelle einer ein in die Adjazenzmatrix eingetragen. Dies bietet sich insbesondere an, wenn die Adjazenzmatrix für einen Algorithmus genutzt werden soll, welcher auf größer/kleiner Operationen beruht, wie z.B. viele Kürzeste-Wege-Algorithmen.

Eigenschaften

Gerichteter Graph

mit Kantengewichten und

ohne Mehrfachkanten

irreduzible Adjazenzmatrix zum

schleifenfreien Graphen links

Einige Eigenschaften eines Graphen lassen sich leicht aus seiner Adjazenzmatrix ermitteln:

  • Ist der Graph ungerichtet, so ist die Adjazenzmatrix symmetrisch.
  • Sind alle Einträge entlang der Hauptdiagonale der Adjazenzmatrix 0, so ist der Graph schleifenfrei, siehe Abbildung.
  • Ist die Adjazenzmatrix irreduzibel, so ist der Graph stark zusammenhängend.
  • Sind zwei Adjazenzmatrizen gleich, so sind die Graphen äquivalent. Äquivalente Graphen können aber verschiedene Adjazenzmatrizen enthalten, denn die Adjazenzmatrix ändert sich, wenn die Knoten umnummieriert werden[1].

Verwendung

Speicherung von Graphen im Computer

Adjazenzmatrizen können auch zur Speicherung von Graphen im Computer dienen. Sie sind besonders leicht zu implementieren und der Zugriff erfolgt in (vgl. Landau-Symbole). Allerdings benötigen sie Speicher von , wobei die Anzahl der Knoten des Graphen ist. Deshalb wird diese Speicherungsart für Graphen in der Praxis selten genutzt. Wenn allerdings ein Graph im Vergleich zur Anzahl der Knoten nur wenige Kanten besitzt, kann die Adjazenzmatrix als dünnbesetzte Matrix implementiert werden. Alternativ kann man, um nur Nachbarschaftsbeziehungen darzustellen, auch eine Inzidenzmatrix verwenden. Deren Größe hängt direkt von der Anzahl der Kanten ab.

Spektrale Graphentheorie

Adjazenzmatrizen werden auch in der spektralen Graphentheorie verwendet. Hierbei geht es insbesondere darum, mittels der verschiedenen Eigenschaften der Adjazenzmatrix Rückschlüsse auf gewisse Eigenschaften des repräsentierten Graphen zu ziehen.

Konstruktion von Ranking-Algorithmen

Die Adjazenzmatrix findet auch in der Konstruktion von zahlreichen Ranking-Algorithmen Verwendung wie z.B. dem PageRank-Algorithmus oder dem Konzept der Hubs und Authorities. Beide Methoden werden hauptsächlich auf die Verlinkung von Homepages im Internet angewandt (daher wird die Adjazenzmatrix in diesem Zusammenhang auch oft Linkmatrix genannt), können aber allgemeiner auch als Methoden zur berechnung der relativen Wichtigkeit eines Knotens in einem Graphen interpretiert werden. Beim PageRank wird z.B. die Adjazenzmatrix schrittweise modifiziert, um eine stochastische Matrix zu gewinnen.

Pfadlänge in Graphen

Ist ein gerichteter Graph ohne Mehrfachkanten und ohne Kantengewichte und die dazugehörige Adjazenzmatrix, so lässt sich die Anzahl der Pfade von Knoten i nach Knoten j, welche genau k Kanten enthalten, folgendermaßen bestimmen: berechne und betrachte den Eintrag in der i-ten Zeile und der j-ten Spalte. Dieser ist die Anzahl der Pfade von i nach j, welche genau k Kanten enthalten. Summiert man nun die ersten Potenzen einer Adjazenzmatrix inklusive der Einheitsmatrix als nullter Potenz und setzt aller Elemente ungleich auf erhält man eine Matrix, die für jeden Knoten angibt, welche Knoten von ihm aus in höchstens Schritten erreichbar sind. Ändert sich diese Matrix vom -ten auf den -ten Schritt nicht, hat man so die Erreichbarkeitsmatrix des Graphen ermittelt.

Der Vektorraum, der von den Spalten der Adjazenzmatrix aufgespannt wird, wird auch Adjazenzraum des Graphen genannt.

Beispiel

Betrachte die ungewichtete Adjazenzmatrix des rechts abgebildeten Graphen:

Pfadlänge im Graphen

Dann ist

Es gibt also 2 Pfade im Graphen, welche von Knoten 2 nach Knoten 3 gehen und genau 3 Kanten enthalten: der erste ist 2-1-2-3, der zweite 2-3-4-3.

Erreichbarkeitsmatrix

Berechnet man und ersetzt alle Einträge, welche nicht 0 sind durch 1, so ergibt sich die Matrix

Analoges Vorgehen mit liefert . Die Matrix ändert sich also nicht mehr, ist daher bereits die Erreichbarkeitsmatrix des Graphen.

Alternativ zur Adjazenzmatrix kann für Entfernungen zwischen Punkten in Graphen auch eine Entfernungstabelle verwenden. Diese hat ebenfalls für jeden Knoten eine Zeile und eine Spalte, enthält aber die Entfernung zwischen 2 Knoten, unabhängig davon ob diese direkt oder über mehrere Kanten verbunden sind.

Literatur

  • Reinhard Diestel: Graphentheorie. 4. Auflage. Springer, Berlin u. a. 2010, ISBN 978-3-642-14911-5.
  • Peter Knabner, Wolf Barth: Lineare Algebra. Grundlagen und Anwendungen (= Springer-Lehrbuch). Springer Spektrum, Berlin u a. 2013, ISBN 978-3-642-32185-6.
  • Volker Turau: Algorithmische Graphentheorie. 3., überarbeitete Auflage. Oldenbourg, München 2009, ISBN 978-3-486-59057-9.

Einzelnachweise

  1. a b c Gerald Teschl, Susanne Teschl: Mathematik für Informatiker. Band 1: Diskrete Mathematik und Lineare Algebra. Korrigierte Nachdruck. Springer, Berlin u. a. 2006, ISBN 3-540-25782-9, S. 387–389.
  2. Peter Pepper: Programmieren mit Java. Eine grundlegende Einführung für Informatiker und Ingenieure. Springer, Berlin u. a. 2005, ISBN 3-540-20957-3, S. 304.