www.wikidata.de-de.nina.az
Ein gerichteter Graph oder Digraph von englisch directed graph besteht auseiner Menge V displaystyle V von Knoten englisch vertex vertices oft auch Ecken genannt und einer Menge geordneter Knotenpaare E V V displaystyle E subseteq V times V von Kanten 1 Ein gerichteter Graph mit 3 Knoten und 4 gerichteten Kanten Doppelpfeil entspricht zwei gegenlaufigen Pfeilen Die Kanten v w E displaystyle v w in E eines gerichteten Graphen sind gerichtete Kanten englisch directed edge edges manchmal auch Bogen Diese werden haufig als Pfeile dargestellt und konnen nur in einer Richtung durchlaufen werden Im Gegensatz dazu sind die Kanten eines ungerichteten Graphen ungeordnete Knotenpaare v w displaystyle v w Gerichtete Graphen werden dazu benutzt Objekte und die dazwischenliegenden Verbindungen beispielsweise von endlichen Automaten darzustellen Inhaltsverzeichnis 1 Grundbegriffe 1 1 Zusammenhangende gerichtete Graphen 2 Eingangs und Ausgangsgrad 3 Darstellung von gerichteten Graphen 3 1 Kantenfeld 3 2 Knotenfeld 3 3 Beispiel 4 Klassen von gerichteten Graphen 5 Kombinatorik 6 Programmierung 7 Siehe auch 8 Literatur 9 EinzelnachweiseGrundbegriffe BearbeitenEin gerichteter Graph ohne Mehrfachkanten und Schleifen wird einfacher Digraph 2 auch schlichter Digraph genannt Man sagt dass eine gerichtete Kante e x y displaystyle e x y nbsp von x displaystyle x nbsp nach y displaystyle y nbsp geht Dabei ist x displaystyle x nbsp der Fuss oder Startknoten und y displaystyle y nbsp der Kopf oder Endknoten von e displaystyle e nbsp Weiterhin gilt y displaystyle y nbsp als der direkte Nachfolger von x displaystyle x nbsp und x displaystyle x nbsp als der direkte Vorganger von y displaystyle y nbsp Falls in einem Graphen von x displaystyle x nbsp nach y displaystyle y nbsp ein Pfad fuhrt gilt y displaystyle y nbsp als ein Nachfolger von x displaystyle x nbsp und x displaystyle x nbsp als ein Vorganger von y displaystyle y nbsp Die Kante y x displaystyle y x nbsp heisst umgedrehte oder invertierte Kante von x y displaystyle x y nbsp Ein gerichteter Graph G displaystyle G nbsp heisst symmetrisch falls G displaystyle G nbsp zu jeder Kante auch die entsprechende invertierte Kante enthalt Ein ungerichteter Graph lasst sich einfach in einen symmetrischen gerichteten Graphen umwandeln indem man jede Kante x y displaystyle x y nbsp durch die zwei gerichteten Kanten x y displaystyle x y nbsp und y x displaystyle y x nbsp ersetzt Um eine Orientierung eines einfachen ungerichteten Graphen zu erhalten muss jeder Kante eine Richtung zugewiesen werden Jeder auf diese Art konstruierte gerichtete Graph wird orientierter Graph genannt Ein einfach gerichteter Graph darf im Gegensatz zum orientierten Graphen zwischen zwei Knoten Kanten in beide Richtungen enthalten 1 3 4 Ein gewichteter Digraph ist ein Digraph dessen Kanten Gewichte zugeordnet werden wodurch man einen kantengewichteten Graphen erhalt Ein Digraph mit gewichteten Kanten wird in der Graphentheorie als Netzwerk bezeichnet 5 Die Adjazenzmatrix eines Digraphen mit Schleifen und Mehrfachkanten ist eine ganzzahlige Matrix deren Zeilen und Spalten den Knoten des Digraphen entsprechen Ein Eintrag a i j displaystyle a ij nbsp ausserhalb der Hauptdiagonalen gibt die Anzahl der Kanten vom Knoten i displaystyle i nbsp zum Knoten j displaystyle j nbsp an und der Eintrag der Hauptdiagonalen a i i displaystyle a ii nbsp entspricht der Anzahl der Schleifen im Knoten i displaystyle i nbsp Die Adjazenzmatrix eines Digraphen ist bis auf Vertauschung von Zeilen und Spalten eindeutig Ein Digraph lasst sich auch durch eine Inzidenzmatrix reprasentieren Zusammenhangende gerichtete Graphen Bearbeiten Hauptartikel Zusammenhang Graphentheorie Ein gerichteter Graph G displaystyle G nbsp heisst schwach zusammenhangend oder nur zusammenhangend 6 falls der unterliegende Graph von G displaystyle G nbsp den man mittels Ersetzung aller gerichteter Kanten durch ungerichtete erhalt ein zusammenhangender Graph ist Ein gerichteter Graph heisst stark zusammenhangend oder stark wenn je zwei seiner Knoten gegenseitig erreichbar sind Ein maximaler stark zusammenhangender Untergraph von G displaystyle G nbsp ist eine starke Komponente Eingangs und Ausgangsgrad Bearbeiten nbsp Digraph mit Knotenbeschriftung Eingangs und Ausgangsgrad Hauptartikel Gerichtete Graphen im Artikel Grad Graphentheorie Die Anzahl der direkten Vorganger eines Knotens wird Eingangsgrad auch Innengrad und die Anzahl der direkten Nachfolger Ausgangsgrad oder Aussengrad genannt Der Eingangsgrad eines Knotens v displaystyle v nbsp in einem Graphen G displaystyle G nbsp wird mit d G v displaystyle d G v nbsp und der Aussengrad mit d G v displaystyle d G v nbsp bezeichnet Ein Knoten mit d G v 0 displaystyle d G v 0 nbsp wird Quelle und ein Knoten mit d G v 0 displaystyle d G v 0 nbsp wird Senke genannt Eine Senke heisst universelle Senke falls sie eingehende Kanten von jedem anderen Knoten hat falls also ihr Eingangsgrad gleich V 1 displaystyle V 1 nbsp ist Fur gerichtete Graphen ist die Summe aller Eingangsgrade gleich der Summe aller Ausgangsgrade und beide gleich der Summe der gerichteten Kanten v V d G v v V d G v E displaystyle sum v in V d G v sum v in V d G v E nbsp Falls fur alle Knoten v V displaystyle v in V nbsp die Gleichung d G v d G v displaystyle d G v d G v nbsp gilt wird der Graph balancierter Digraph genannt 7 8 Darstellung von gerichteten Graphen Bearbeiten nbsp Der im Beispiel behandelte gerichtete GraphAusser der naiven Darstellung eines gerichteten Graphen durch Angabe der Knoten und Kantenmenge gibt es noch weitere Darstellungsmoglichkeiten das sogenannte Kanten bzw Knotenfeld Kantenfeld Bearbeiten Ein Kantenfeld ist eine Darstellungsart fur gerichtete Graphen nach folgendem Schema V E E 1 E E displaystyle V E E 1 ldots E E nbsp wobei V displaystyle V nbsp die Anzahl der Knoten E displaystyle E nbsp die Anzahl der Kanten und E 1 E E displaystyle E 1 ldots E E nbsp die Kanten mit E i v w E displaystyle E i v w in E nbsp sind Knotenfeld Bearbeiten Ein Knotenfeld ist eine Darstellungsart fur gerichtete Graphen mit folgendem Aufbau V E ag V 1 Ziel 1 Ziel ag V 1 ag V V Ziel 1 Ziel ag V V displaystyle V E text ag V 1 text Ziel 1 ldots text Ziel text ag V 1 ldots text ag V V text Ziel 1 ldots text Ziel text ag V V nbsp wobei V displaystyle V nbsp die Anzahl der Knoten E displaystyle E nbsp die Anzahl der Kanten und ag V displaystyle operatorname ag V nbsp der Ausgangsgrad des Knotens V displaystyle V nbsp sind Beispiel Bearbeiten Betrachtet man als Beispiel den rechts stehenden gerichteten Graph so ist das Kantenfeld 4 6 1 2 1 4 2 4 3 1 3 2 4 3 displaystyle 4 6 1 2 1 4 2 4 3 1 3 2 4 3 nbsp und das Knotenfeld 4 6 2 2 4 1 4 2 1 2 1 3 displaystyle 4 6 mathbf 2 2 4 mathbf 1 4 mathbf 2 1 2 mathbf 1 3 nbsp Die fett gedruckten Zahlen geben den Ausgangsgrad an Klassen von gerichteten Graphen Bearbeiten nbsp Einfach gerichteter azyklischer Graph nbsp Turniergraph mit 4 KnotenSymmetrisch gerichtete Graphen sind gerichtete Graphen bei denen alle Kanten bidirektional sind d h fur jede Kante die zum Graphen gehort gehort auch die entsprechende umgekehrte Kante dazu Einfache gerichtete Graphen sind gerichtete Graphen ohne Schleifen und ohne Mehrfachkante Vollstandige gerichtete Graphen sind einfache gerichtete Graphen bei denen jedes Knotenpaar durch ein symmetrisches Paar gerichteter Kanten verbunden ist Dies entspricht einem ungerichteten vollstandigen Graphen dessen Kanten durch Paare von gerichteten Kanten ersetzt werden Daraus folgt dass ein vollstandiger gerichteter Graph symmetrisch ist Orientierte Graphen sind gerichtete Graphen ohne bidirektionale Kanten Daraus folgt dass ein gerichteter Graph genau dann ein orientierter Graph ist wenn er keinen 2 Zyklus hat Turniergraphen sind orientierte Graphen die durch Auswahl einer Richtung fur jede Kante in ungerichteten vollstandigen Graphen erhalten werden Ein gerichteter azyklischer Graph oder azyklischer Digraph ist ein gerichteter Graph der keinen gerichteten Kreis enthalt Spezialfalle gerichteter azyklischer Graphen sind Mehrfachbaume je zwei gerichtete Pfade des Graphen die vom selben Startknoten ausgehen durfen sich nicht im selben Endknoten treffen orientierte Baume oder Polybaume Orientierung eines ungerichteten azyklischen Graphen und Wurzelbaume orientierte Baume bei denen alle Kanten des unterliegenden ungerichteten Baumes vom Wurzelknoten wegfuhren Gewichtete gerichtete Graphen oder gerichtete Netzwerke sind einfache gerichtete Graphen mit Gewichten die ihren Kanten zugewiesen sind ahnlich wie gewichtete Graphen die auch als ungerichtete Netzwerke oder gewichtete Netzwerke bezeichnet werden Flussnetzwerke sind gewichtete gerichtete Graphen mit zwei speziellen Knoten der Quelle und der Senke Kontrollflussgraphen sind gerichtete Graphen die in der Informatik zur Darstellung der Pfade verwendet werden die wahrend der Ausfuhrung eines Computerprogramms durchlaufen werden konnen Signalflussgraphen sind gewichtete gerichtete Graphen in denen Knoten Systemvariablen darstellen und Kanten funktionale Verbindungen zwischen Knotenpaaren darstellen Zustandsubergangsdiagramme sind gerichtete Multigraphen die endliche Automaten darstellen Kommutative Diagramme sind gerichtete Graphen die in der Kategorientheorie verwendet werden wobei die Knoten mathematische Objekte und die Kanten mathematische Funktionen darstellen mit der Eigenschaft dass alle gerichteten Pfade mit demselben Start und Endknoten durch Komposition zum gleichen Ergebnis fuhren Kombinatorik BearbeitenDie Anzahl der einfachen gerichteten Graphen mit n displaystyle n nbsp Knoten steigt rasant mit der Anzahl der Knoten und ist gleich 4 n n 1 2 displaystyle 4 tfrac n cdot n 1 2 nbsp Sie steigt also exponentiell zur Anzahl n n 1 2 displaystyle tfrac n cdot n 1 2 nbsp der Kanten des vollstandigen Graphen K n displaystyle K n nbsp Wenn die Knoten nicht nummeriert sind isomorphe Graphen also nicht mitgezahlt werden ist diese Anzahl etwa proportional zu 1 n 4 n n 1 2 displaystyle tfrac 1 n cdot 4 tfrac n cdot n 1 2 nbsp weil fur die meisten Isomorphieklassen alle n displaystyle n nbsp Graphen die sich durch Permutation der nummerierten Knoten ergeben verschieden sind Die folgende Tabelle zeigt die mit Hilfe eines Computers bestimmten Anzahlen fur n 8 displaystyle n leq 8 nbsp 9 10 11 Anzahl der gerichteten Graphen ohne nummerierte Knotenn alle zusammenhangend stark zusammenhangend1 1 1 12 3 2 13 16 13 54 218 199 835 9608 9364 50486 1540944 1530843 10470087 882033440 880471142 7054223628 1793359192848 1792473955306 1580348371788Programmierung BearbeitenDas folgende Beispiel in der Programmiersprache C zeigt die Implementierung eines gerichteten Graphen mit Adjazenzlisten Der gerichtete Graph wird als Klasse DirectedGraph deklariert Bei der Ausfuhrung des Programms wird die Methode main verwendet 12 include lt iostream gt using namespace std Deklariert den Datentyp fur die Knoten des Graphen struct Node int index string value Node next Deklariert den Datentyp fur die Kanten des Graphen struct Edge int startIndex int endIndex Deklariert die Klasse fur den gerichteten Graphen class DirectedGraph public Node headNode Diese Methode fugt einen neuen Knoten in die Adjazenzliste des Graphen ein und gibt ihn als Ruckgabewert zuruck Node insertNewNode int index string value Node node Node newNode new Node Erzeugt einen neuen Knoten vom Typ Node newNode gt index index Setzt den Index newNode gt value value Setzt den Wert newNode gt next node Setzt einen Zeiger auf den Nachfolger return newNode Konstruktor der den gerichteten Graphen mit den gegebenen Knoten und Kanten erzeugt DirectedGraph Node nodes Edge edges int numberOfEdges int numberOfNodes headNode new Node numberOfNodes Initialisiert ein Array von Zeigern fur die Knoten for int i 0 i lt numberOfEdges i for Schleife die alle Kanten des Graphen durchlauft int startIndex edges i startIndex Index des Startknotens der Kante int endIndex edges i endIndex Index des Endknotens der Kante string value nodes endIndex value Wert des Endknotens der Kante Node newNode insertNewNode endIndex value headNode startIndex Aufruf der Methode insertNewNode um einen neuen Knoten einzufugen headNode startIndex newNode Setzt den Zeiger auf den neuen Knoten Gibt alle benachbarten Knoten von node auf der Konsole aus void writeAdjacencyList Node node int i cout lt lt Knoten lt lt i 1 lt lt while node nullptr cout lt lt lt lt node gt index lt lt lt lt node gt value lt lt node node gt next cout lt lt endl Hauptmethode die das Programm ausfuhrt int main Deklariert und initialisiert Arrays fur die Knoten und Kanten Node nodes 0 A 1 B 2 C 3 D 4 E Edge edges 0 1 0 2 1 4 2 3 3 1 4 3 int numberOfNodes sizeof nodes Ermittelt die Anzahl der Knoten int numberOfEdges sizeof edges sizeof edges 0 Ermittelt die Anzahl der Kanten DirectedGraph directedGraph nodes edges numberOfEdges numberOfNodes Erzeugt den gerichteten Graphen mit den gegebenen Knoten und Kanten for int i 0 i lt numberOfNodes i for Schleife die alle Knoten des Graphen durchlauft Node headNode directedGraph headNode i writeAdjacencyList headNode i Gibt die Adjazenzliste fur den Knoten headNode aus Siehe auch BearbeitenKautz GraphLiteratur BearbeitenJorgen Bang Jensen Gregory Gutin Digraphs Theory Algorithms and Applications Springer 2000 ISBN 1 85233 268 9 englisch rhul ac uk John Adrian Bondy U S R Murty Graph Theory with Applications North Holland 1976 ISBN 0 444 19451 7 Reinhard Diestel Graph Theory 3 Auflage Springer 2005 ISBN 3 540 26182 6 diestel graph theory com Frank Harary Robert Z Norman Dorwin Cartwright Structural Models An Introduction to the Theory of Directed Graphs Wiley New York 1965 englisch Einzelnachweise Bearbeiten a b Reinhard Diestel Graphentheorie 4 Auflage Springer Berlin u a 2010 ISBN 978 3 642 14911 5 S 28 30 englisch 4 elektronische Ausgabe 2010 Erstausgabe 1996 Volker Turau Algorithmische Graphentheorie 3 Auflage Oldenbourg Wissenschaftsverlag Munchen 2009 ISBN 978 3 486 59057 9 S 20 24 Eric W Weisstein Oriented Graph In MathWorld englisch Eric W Weisstein Graph Orientation In MathWorld englisch Reinhard Diestel Graphentheorie 4 Auflage Springer Berlin u a 2010 ISBN 978 3 642 14911 5 S 145 168 englisch 4 elektronische Ausgabe 2010 Erstausgabe 1996 Bang Jensen Gutin Digraphs Theory Algorithms and Applications 2 Auflage 2009 S 20 Bhavanari Satyanarayana Kuncham Syam Prasad Discrete Mathematics and Graph Theory PHI Learning Pvt Ltd 2009 ISBN 978 81 203 3842 5 S 460 Richard A Brualdi Combinatorial matrix classes In Encyclopedia of mathematics and its applications Band 108 Cambridge University Press 2006 ISBN 978 0 521 86565 4 S 51 Folge A000088 in OEIS Folge A003085 in OEIS Folge A035512 in OEIS Software Testing Help Graph Implementation In C Using Adjacency List Abgerufen von https de wikipedia org w index php title Gerichteter Graph amp oldid 232854644