www.wikidata.de-de.nina.az
Ein Graph ist in der Graphentheorie eine abstrakte Struktur die eine Menge von Objekten zusammen mit den zwischen diesen Objekten bestehenden Verbindungen reprasentiert Die mathematischen Abstraktionen der Objekte werden dabei Knoten auch Ecken des Graphen genannt Die paarweisen Verbindungen zwischen Knoten heissen Kanten manchmal auch Bogen Die Kanten konnen gerichtet oder ungerichtet sein Haufig werden Graphen anschaulich gezeichnet indem die Knoten durch Punkte und die Kanten durch Linien dargestellt werden 1 Schematischer Aufbau eines StammbaumesPlan der Wiener U BahnAnschauliche Beispiele fur Graphen sind ein Stammbaum oder das U Bahn Netz einer Stadt siehe Abbildungen Bei einem Stammbaum stellt jeder Knoten ein Familienmitglied dar und jede Kante ist eine Verbindung zwischen einem Elternteil und einem Kind In einem U Bahn Netz stellt jeder Knoten eine U Bahn Station dar und jede Kante eine direkte Zugverbindung zwischen zwei Stationen Inhaltsverzeichnis 1 Typen von Graphen 1 1 Ungerichteter Graph 1 2 Gerichteter Graph Digraph 1 3 Baum 1 4 Multigraph 1 5 Planarer Graph 1 6 Hypergraph 2 Definitionen 2 1 Abgeleitete Bezeichnungen 2 2 Spezialfalle 2 2 1 Teilgraphen Wege und Zyklen 3 Grundlegende Operationen 4 Bemerkungen 5 Erweiterungen 5 1 Gefarbte Graphen 5 2 Gewichtete Graphen 5 3 Abbildungen zwischen Graphen 6 Kombinatorik 7 Datenstrukturen 8 Programmierung 9 Siehe auch 10 Literatur 11 EinzelnachweiseTypen von Graphen BearbeitenUngerichteter Graph Bearbeiten In ungerichteten Graphen werden die Verbindungen zwischen Knoten durch Kanten gekennzeichnet Die Kanten haben keine Richtung Jede Kante kann in beide Richtungen durchlaufen werden Gerichteter Graph Digraph Bearbeiten Hauptartikel Gerichteter Graph In Digraphen von englisch directed graph auch gerichtete Graphen genannt werden Kanten statt durch Linien durch Pfeile gekennzeichnet wobei der Pfeil von ihrem Anfangs zu ihrem Endknoten zeigt Dies verdeutlicht dass jede Kante des Graphen nur in eine Richtung durchlaufen werden kann 2 Ein Spezialfall davon sind orientierte Graphen in denen es keine ungerichteten Kanten gibt d h gibt es eine Kante von Knoten A nach B dann gibt es nie auch die umgekehrte Kante von B nach A Baum Bearbeiten Hauptartikel Baum Graphentheorie Ein Baum ist in der Graphentheorie ein spezieller Typ von Graph der zusammenhangend ist und keine geschlossenen Pfade also Zyklen der Lange grosser oder gleich 3 enthalt Bei allen Baumen ist die Anzahl der Knoten offensichtlich um 1 grosser als die Anzahl der Kanten Baume haben sehr viele praktische Anwendungen vor allem in der Informatik Viele Algorithmen werden mithilfe von Baumen programmiert Zum Beispiel konnen Netzwerke Verkehrsnetze oder Versorgungsnetze mit einer Breitensuche oder einer Tiefensuche effektiv durchlaufen werden Im Bereich der kunstlichen Intelligenz und der Strategiespiele ist die Alpha Beta Suche wichtig Sie basiert auf Suchbaumen Multigraph Bearbeiten nbsp Multigraph Mehrfachkanten werden durch eine gewichtete Kante visualisiertIn sogenannten Multigraphen konnen zwei Knoten auch durch mehrere Kanten 3 verbunden sein was in einfachen Graphen nicht erlaubt ist Ausserdem durfen Multigraphen Schleifen enthalten Kanten die zum selben Knoten fuhren von dem sie ausgehen 1 Sind Knoten durch mehrere Kanten 3 verbunden wird haufig nur eine Kante gezeichnet und die Anzahl der Kanten zwischen diesen beiden Knoten als Kantengewicht an die eine Kante geschrieben Im Beispiel gibt es 60 Kanten zwischen Knoten A und D Anstatt alle 60 Kanten zu zeichnen wird eine Kante mit dem Kantengewicht 60 gezeichnet Planarer Graph Bearbeiten Hauptartikel Planarer Graph Ein planarer Graph ist ein Graph der auf einer Ebene mit Punkten fur die Knoten und Linien fur die Kanten dargestellt werden kann sodass sich keine Kanten schneiden Jeder planare Graph hat einen dualen Graphen Das ist ein Graph wo jeder Flache des Graphen ein Knoten zugeordnet ist der innerhalb dieser Flache liegt und umgekehrt Die Dualitat von planaren Graphen ist immer gegenseitig das heisst der duale Graph des dualen Graphen jedes planaren Graphen ist der ursprungliche planare Graph Fur planare Graphen gilt der Eulersche Polyedersatz der oft mit der Gleichung E K F 2 displaystyle E K F 2 nbsp dargestellt wird Hypergraph Bearbeiten Bei Hypergraphen verbindet eine Kante auch Hyperkante genannt nicht nur zwei sondern mehrere Knoten gleichzeitig Hypergraphen konnen beispielsweise durch mehrere planare Graphen mit Indizierung der Kanten dargestellt werden Hypergraphen mit wenigen Kanten sogenannte dunne Graphen zeichnet man so dass man eine Menge von Punkten zeichnet die den Knoten entsprechen und die zu einer Hyperkante gehorigen Punkte werden dann durch eine geschlossene Linie umkreist die somit die Teilmenge der zu ihr gehorenden Knoten innerhalb aller Knoten angibt Bei Hypergraphen mit vielen Kanten wird diese Darstellung aber schnell unubersichtlich Weniger intuitiv aber ubersichtlicher ist es dann einen Hypergraphen als bipartiten Meta Graphen darzustellen wobei die eine der beiden Bipartitionsmengen den Knoten des Hypergraphen die andere Bipartitionsmenge den Hyperkanten des Hypergraphen entspricht Die Kanten zwischen diesen beiden Bipartitionsmengen symbolisieren dann die Zugehorigkeit der Knoten zu den Hyperkanten Das Physik Projekt von Stephen Wolfram siehe auch Wolfram Research und Mathematica zur Erklarung der Grundlagen der Physik basiert unter anderem auf dem Raum der Regeln uber Hypergraphen Und zumindest in einer gewissen Annaherung konnen wir dann sagen dass Energie mit der Aktivitat im Hypergraphen die Information durch die Zeit fortpflanzt assoziiert ist wahrend Impuls mit Aktivitat assoziiert ist die Information im Raum fortpflanzt 4 Definitionen BearbeitenEin Graph G displaystyle G nbsp ist ein geordnetes Paar V E displaystyle V E nbsp wobei V displaystyle V nbsp eine Menge von Knoten englisch vertex vertices oft auch Ecken genannt und E displaystyle E nbsp eine Menge von Kanten englisch edge edges manchmal auch Bogen genannt bezeichnet Dabei ist E displaystyle E nbsp in ungerichteten Graphen ohne Mehrfachkanten eine Teilmenge aller 2 elementigen Teilmengen von V displaystyle V nbsp 1 gerichteten Graphen ohne Mehrfachkanten eine Teilmenge aller Paare i j die durch das kartesische Produkt V V displaystyle V times V nbsp entstehen 5 ungerichteten Graphen mit zusammengefassten Mehrfachkanten eine Multimenge uber der Menge W displaystyle W nbsp aller 2 elementigen Teilmengen von V displaystyle V nbsp also eine Funktion E W N 0 displaystyle E colon W to mathbb N 0 nbsp gerichteten Graphen mit zusammengefassten Mehrfachkanten eine Multimenge uber dem kartesischen Produkt V V displaystyle V times V nbsp also eine Funktion E V V N 0 displaystyle E colon V times V to mathbb N 0 nbsp gerichteten Graphen mit eigenstandigen Mehrfachkanten eine beliebige Menge deren Elemente mit Hilfe von zwei Funktionen s r c t g t E V displaystyle mathrm src mathrm tgt colon E to V nbsp die den Elementen einen Quell bzw Zielknoten zuordnen als Kanten angesehen werden so ein Graph ist dasselbe wie ein Funktor G G S e t displaystyle G colon mathcal G to mathbf Set nbsp wobei G displaystyle mathcal G nbsp die recht uberschaubare Kategorie G V s r c E t g t V displaystyle mathcal G V stackrel mathrm src longleftarrow E stackrel mathrm tgt longrightarrow V nbsp mit zwei Objekten und zwei ausgezeichneten Pfeilen ist Hypergraphen eine Teilmenge der Potenzmenge von V displaystyle V nbsp 1 nbsp Ungerichteter Graph ohne Mehrfachkanten nbsp Gerichteter Graph ohne Mehrfachkanten nbsp Ungerichteter Graph mit Mehrfachkanten nbsp Gerichteter Graph mitMehrfachkantenDen Zusatz ohne Mehrfachkanten lasst man gewohnlich weg und nennt Graphen mit Mehrfachkanten Multigraphen Ferner verzichtet man meist auf das Attribut ungerichtet und kennzeichnet nur gerichtete Graphen explizit Ungerichtete Graphen ohne Mehrfachkanten nennt man auch haufig schlicht oder einfach Eine andere Bezeichnung fur gerichtete Graphen ist Digraph Directed Graph Abgeleitete Bezeichnungen Bearbeiten Statt die Knoten und Kantenmenge eines Graphen G displaystyle G nbsp mit den Symbolen V displaystyle V nbsp und E displaystyle E nbsp zu identifizieren kann man auch allgemeine Abbildungen V displaystyle V nbsp und E displaystyle E nbsp definieren die einen Graphen auf dessen Knotenmenge oder Kantenmenge abbilden Fur zwei Graphen G 1 V 1 E 1 displaystyle G 1 V 1 E 1 nbsp und G 2 V 2 E 2 displaystyle G 2 V 2 E 2 nbsp bezeichnen also V G 1 V 1 displaystyle V G 1 V 1 nbsp und E G 1 E 1 displaystyle E G 1 E 1 nbsp sowie V G 2 V 2 displaystyle V G 2 V 2 nbsp und E G 2 E 2 displaystyle E G 2 E 2 nbsp Die Mehrdeutigkeit V G V displaystyle V G V nbsp und E G E displaystyle E G E nbsp wird bei dieser Notation in Kauf genommen obwohl die Abbildungen etwas anderes darstellen als die mit ihr verbundene Knoten und Kantenmenge Als Konvention bietet sich an mit V displaystyle V nbsp bzw E displaystyle E nbsp ohne Argument Knoten bzw Kantenmenge zu bezeichnen V displaystyle V nbsp bzw E displaystyle E nbsp mit Argument bezeichnen dagegen die definierten Abbildungen Ist G displaystyle G nbsp ein Graph so sagt man allgemein v displaystyle v nbsp ist Knoten bzw Ecke von G displaystyle G nbsp wenn v displaystyle v nbsp zu V G displaystyle V G nbsp gehort Ausserdem bezeichnet man Kanten e E G displaystyle e in E G nbsp als ungerichtete Kante von G displaystyle G nbsp falls G displaystyle G nbsp ein ungerichteter Graph ist gerichtete Kante von G displaystyle G nbsp falls G displaystyle G nbsp ein gerichteter Graph ist Hyperkante von G displaystyle G nbsp falls G displaystyle G nbsp ein Hypergraph ist In einer ungerichteten Kante e v w displaystyle e lbrace v w rbrace nbsp bezeichnet man v displaystyle v nbsp und w displaystyle w nbsp als Endknoten von e displaystyle e nbsp In einer gerichteten Kante e v w displaystyle e v w nbsp bezeichnet man v displaystyle v nbsp als Startknoten und w displaystyle w nbsp als Endknoten von e displaystyle e nbsp Bei Multigraphen bezeichnet E G e displaystyle E G e nbsp die Vielfachheit von e displaystyle e nbsp Wenn E G e gt 1 displaystyle E G e gt 1 nbsp gilt so spricht man von einer Multi oder Mehrfachkante Hat eine Kante e displaystyle e nbsp in gerichteten Graphen die Form v v displaystyle v v nbsp so spricht man von einer Schleife Ist die Schleife e displaystyle e nbsp in einem Multigraphen G displaystyle G nbsp zugleich eine Mehrfachkante so spricht man von einer Mehrfachschleife Gerichtete Graphen ohne Schleifen nennt man schleifenlos oder schleifenfrei Als Knotenzahl n G V G displaystyle n G vert V G vert nbsp eines Graphen G displaystyle G nbsp bezeichnet man die Anzahl seiner Knoten als Kantenzahl m G E G displaystyle m G vert E G vert nbsp bezeichnet man die Anzahl seiner Kanten in Multigraphen summiert man uber die Vielfachheit der Kanten Zwei Knoten heissen benachbart wenn eine Kante sie verbindet Spezialfalle Bearbeiten Verbindet in einem gerichteten Graphen die Kante e 1 displaystyle e 1 nbsp zwei Knoten und die Kante e 2 displaystyle e 2 nbsp dieselben Knoten in umgekehrter Richtung kann man beide zusammen auch als eine ungerichtete Kante innerhalb des gerichteten Graphen betrachten Im Falle von Mehrfachkanten mussen die Vielfachheiten beider Kanten ubereinstimmen Gibt es zu jeder Kante eines gerichteten Graphen eine solche entgegengesetzte Kante im Graphen so ist er ein symmetrischer Graph Einen Graphen dessen Knotenmenge endlich ist nennt man einen endlichen Graphen Im Gegensatz dazu nennt man einen Graphen dessen Knotenmenge unendlich ist unendlichen Graphen Meist betrachtet man nur endliche Graphen und lasst daher das Attribut endlich weg wahrend man unendliche Graphen explizit kennzeichnet Teilgraphen Wege und Zyklen Bearbeiten nbsp Ein gerichteter Graph mit Zyklus nbsp Ein gerichteter Graph ohne ZyklusEin Teilgraph G displaystyle G nbsp eines Graphen G displaystyle G nbsp enthalt nur Knoten und Kanten die auch in G displaystyle G nbsp enthalten sind Ein von einer Knotenmenge U induzierter Teilgraph enthalt die Knoten aus U und alle Kanten aus G zwischen diesen Knoten Eine Folge von paarweise verschiedenen Knoten v 1 v n displaystyle v 1 ldots v n nbsp in der aufeinander folgende Knoten v i displaystyle v i nbsp und v i 1 displaystyle v i 1 nbsp im Graphen durch eine Kante verbunden sind bezeichnet man als Weg manchmal auch als Pfad Gilt v 1 v n displaystyle v 1 v n nbsp und ist dies der einzige doppelte Knoten spricht man von einem Zyklus oder Kreis Eine Sequenz von benachbarten Knoten in der sich Knoten wiederholen durfen bezeichnet man als Kantenfolge Die Begriffe Weg Pfad Kantenfolge Kreis und Zyklus werden in der Literatur zum Teil unterschiedlich definiert Enthalt ein gerichteter Graph keinen Zyklus nennt man ihn azyklisch oder zyklenfrei also einen gerichteten azyklischen Graphen englisch DAG directed acyclic graph Ein solcher Graph lasst sich durch die Erganzung aller Kanten die gleichen Ausgangs und Endknoten wie Wege haben also die Umwege uber andere Kanten zu einem Zielknoten abkurzen zu einer endlichen und diskreten Halbordnung erweitern Diesen Vorgang nennt man die Bildung der transitiven Hulle Ein Hasse Diagramm ist ein gerichteter azyklischer Graph bei dem die durch das Transitivitatsgesetz implizierten Kanten weggelassen sind transitive Reduktion Grundlegende Operationen BearbeitenBei der Untersuchung von Grapheneigenschaften kommt es haufiger vor dass man auf Graphen einfache Operationen anwenden muss um moglichst kompakt und damit leichter verstandlich schreiben zu konnen Besonders haufig werden die ublichen Operationen der Mengenlehre Vereinigung Durchschnitt Differenz und Komplement auf Knoten bzw Kantenmengen von Graphen angewendet sodass diese direkt auf Graphen definiert werden Sind G 1 V 1 E 1 displaystyle G 1 V 1 E 1 nbsp und G 2 V 2 E 2 displaystyle G 2 V 2 E 2 nbsp Graphen desselben Typs so bezeichnet G 1 G 2 displaystyle G 1 G 2 nbsp den Graphen der entsteht wenn man die Knoten und Kantenmenge vereinigt G 1 E 2 displaystyle G 1 E 2 nbsp den Graphen der entsteht wenn man E 2 displaystyle E 2 nbsp von der Kantenmenge von G 1 displaystyle G 1 nbsp abzieht und G 1 V 2 displaystyle G 1 V 2 nbsp den Graphen der entsteht wenn man V 2 displaystyle V 2 nbsp von der Knotenmenge von G 1 displaystyle G 1 nbsp abzieht und alle Kanten entfernt die Knoten aus V 2 displaystyle V 2 nbsp enthalten Man beachte dabei die unterschiedliche Definition der Begriffe Vereinigungsmenge und Differenzmenge fur Mengen und Multimengen Man schreibt auch abkurzend G 1 E 2 displaystyle G 1 E 2 nbsp falls V 2 displaystyle V 2 nbsp Teilmenge von V 1 displaystyle V 1 nbsp ist G 1 V 2 displaystyle G 1 V 2 nbsp falls E 2 displaystyle E 2 nbsp leer oder Teilmenge von E 1 displaystyle E 1 nbsp ist G 1 v w displaystyle G 1 v w nbsp falls G 2 v w v w displaystyle G 2 v w v w nbsp G 1 v displaystyle G 1 v nbsp falls G 2 v displaystyle G 2 v nbsp G 1 v w displaystyle G 1 v w nbsp falls E 2 v w displaystyle E 2 v w nbsp und G 1 v displaystyle G 1 v nbsp falls V 2 v displaystyle V 2 v nbsp Kantenkontraktion und die Bildung des Komplementgraphen sind weitere Basisoperationen Bemerkungen BearbeitenUngerichtete Graphen ohne Mehrfachkanten sind Spezialfalle von Hypergraphen Multigraphen in denen keine Mehrfachkanten vorkommen sind zwar nicht formal aber anschaulich aquivalent zu Graphen ohne Mehrfachkanten weshalb man auch diese als Graphen ohne Mehrfachkanten bezeichnet Es gibt eine bijektive Zuordnung zwischen den beiden Varianten In diesem Sinne sind Graphen ohne Mehrfachkanten also Spezialfalle von Graphen mit Mehrfachkanten Ahnlich verhalt es sich mit ungerichteten Graphen die in gewissem Sinn Spezialfalle von gerichteten Graphen sind Ist ein gerichteter Graph symmetrisch und schleifenlos so bezeichnet man diesen auch als ungerichtet da es auch hier eine einfache eineindeutige Zuordnung zwischen beiden Varianten gibt siehe auch Adjazenzmatrix Es lassen sich naturlich auch ungerichtete Graphen mit Schleifen definieren wobei man diese wohl am einfachsten wie eben als formale Spezialfalle von gerichteten Graphen definiert und die Bedingung der Schleifenlosigkeit weg lasst Solche Graphen sind aber nur selten Gegenstand der Betrachtungen in der Graphentheorie Der wohl allgemeinste Typ von Graphen sind gerichtete Hypergraphen mit Mehrfachkanten Jeder oben definierte Graphentyp kann dann als Spezialfall von diesem betrachtet werden Solche Graphen sind aber so gut wie gar nicht Gegenstand der Betrachtungen in der Graphentheorie weshalb sie hier auch nicht naher erlautert werden Sollen Graphen als Darstellung eines Sachverhaltes herhalten werden Algorithmen benotigt die fur das Graphzeichnen benotigt werden Diese Disziplin der Informatik hat sich in den letzten Jahren stets fortentwickelt und liefert Losungen fur unterschiedliche Visualisierungen die auf Graphen beruhen Erweiterungen BearbeitenGraphen konnen mit weiteren Eigenschaften bzw Informationen erganzt werden Gefarbte Graphen Bearbeiten Eine Erweiterung von Graphen G V E displaystyle G V E nbsp zu knotengefarbten Graphen erhalt man indem das Tupel V E displaystyle V E nbsp zu einem Tripel V E f displaystyle V E f nbsp erganzt wird f displaystyle f nbsp ist eine Abbildung von V displaystyle V nbsp in die Menge der naturlichen Zahlen Anschaulich gibt man jedem Knoten damit eine Farbe Statt der Knoten kann man in Graphen ohne Mehrfachkanten und in Hypergraphen auch die Kanten farben und spricht dann von einem kantengefarbten Graphen Dazu erweitert man ebenfalls das Tupel V E displaystyle V E nbsp zu einem Tripel V E f displaystyle V E f nbsp wobei f displaystyle f nbsp aber eine Abbildung von E displaystyle E nbsp statt von V displaystyle V nbsp in die Menge der naturlichen Zahlen ist Anschaulich gibt man jeder Kante damit eine Farbe In Graphen mit Mehrfachkanten ist dies zwar prinzipiell auch moglich aber schwieriger zu definieren insbesondere wenn Mehrfachkanten entsprechend ihrer Vielfachheit mehrere verschiedene Farben zugeordnet werden sollen Man beachte dass die Begriffe Farbung und farben in der Graphentheorie auch eine speziellere Bedeutung besitzen Exakt spricht man dann zwar von gultiger Farbung lasst das Attribut gultig aber meist weg Analog gibt es auch benannte Graphen V E f g displaystyle V E f g nbsp bei denen Knoten und oder Kanten einen Namen tragen und die Abbildungen f displaystyle f nbsp bzw g displaystyle g nbsp den Knoten bzw Kanten einen Namen zuordnen Die zuvor abgebildeten Beispiele sind benannte Graphen bei denen die Knoten mit Buchstaben benannt wurden Dies wird oft bei Visualisierungen gemacht so dass man besser uber den Graphen diskutieren kann Gewichtete Graphen Bearbeiten Statt von knoten bzw kantengefarbten Graphen spricht man von knoten bzw kantengewichteten Graphen falls f displaystyle f nbsp statt in die naturlichen Zahlen in die reellen Zahlen abbildet Knoten bzw kantengefarbte Graphen sind also Spezialfalle von knoten bzw kantengewichteten Graphen Man bezeichnet f v displaystyle f v nbsp bzw f e displaystyle f e nbsp auch als Gewicht des Knotens v displaystyle v nbsp bzw der Kante e displaystyle e nbsp Zur Unterscheidung spricht man auch von Knotengewicht bzw Kantengewicht Eine solche Gewichtung wird erforderlich wenn die Information uber Knotenbeziehungen nicht ausreicht Fasst man beispielsweise das Strassennetz vereinfacht als Graph auf Orte sind Knoten die Orte verbindende Strassen sind Kanten so konnte eine Gewichtung der Kanten Aufschluss uber die Distanz zwischen zwei Orten geben Die Kantengewichte eines Graphen konnen in einer quadratischen Gewichtsmatrix der Adjazenzmatrix gesammelt werden Abbildungen zwischen Graphen Bearbeiten Schliesslich lassen sich auch Abbildungen zwischen Graphen definieren Interessant sind insbesondere solche die mit der Struktur der beiden vertraglich sind so genannte Homomorphismen Seien dazu G 1 V 1 E 1 displaystyle G 1 left V 1 E 1 right nbsp und G 2 V 2 E 2 displaystyle G 2 left V 2 E 2 right nbsp Graphen desselben Typs Eine Abbildung p V 1 V 2 displaystyle p colon V 1 to V 2 nbsp heisst Homomorphismus zwischen G 1 displaystyle G 1 nbsp und G 2 displaystyle G 2 nbsp falls gilt In ungerichteten Graphen ohne Mehrfachkanten Ist v w displaystyle v w nbsp eine Kante von G 1 displaystyle G 1 nbsp so ist p v p w displaystyle p v p w nbsp eine Kante von G 2 displaystyle G 2 nbsp In gerichteten Graphen ohne Mehrfachkanten Ist v w displaystyle v w nbsp Kante von G 1 displaystyle G 1 nbsp dann ist p v p w displaystyle p v p w nbsp Kante von G 2 displaystyle G 2 nbsp In ungerichteten Graphen mit Mehrfachkanten E 1 v w E 2 p v p w displaystyle E 1 v w leq E 2 p v p w nbsp d h je zwei Ecken sind mit hochstens so vielen Kanten verbunden wie ihre Bildecken In gerichteten Graphen mit Mehrfachkanten E 1 v w E 2 p v p w displaystyle E 1 v w leq E 2 p v p w nbsp In gerichteten Graphen mit eigenstandigen Mehrfachkanten p displaystyle p nbsp hat einen dazugehorenden Partner q E 1 E 2 displaystyle q colon E 1 to E 2 nbsp und fur alle Kanten e E 1 displaystyle e in E 1 nbsp gilt s r c 2 q e p s r c 1 e displaystyle mathrm src 2 q e p mathrm src 1 e nbsp sowie t g t 2 q e p t g t 1 e displaystyle mathrm tgt 2 q e p mathrm tgt 1 e nbsp werden G 1 displaystyle G 1 nbsp und G 2 displaystyle G 2 nbsp als Funktoren angesehen ist ein Graphhomomorphismus gerade eine naturliche Transformation In Hypergraphen Ist v 1 v k displaystyle v 1 cdots v k nbsp Kante von G 1 displaystyle G 1 nbsp so ist p v 1 p v k displaystyle p v 1 cdots p v k nbsp Kante von G 2 displaystyle G 2 nbsp Das Bild p G1 ist dann ein Teilgraph von G2 Ist p umkehrbar und die Umkehrfunktion ebenfalls ein Homomorphismus so ist p ein Isomorphismus von Graphen Zu beachten ist dass die Knoten vor den Kanten einen Vorrang haben indem p als Funktion nur auf den Knoten spezifiziert ist die auf den Kanten lediglich eine induzierte Wirkung entfaltet Kombinatorik BearbeitenDie Anzahl der einfachen ungerichteten Graphen mit n displaystyle n nbsp Knoten steigt rasant mit der Anzahl der Knoten und ist gleich 2 n n 1 2 displaystyle 2 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 2 n n 1 2 displaystyle tfrac 1 n cdot 2 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 6 Anzahl der einfachen ungerichteten Graphenn mit nummerierten Knoten ohne nummerierte Knoten1 1 12 2 23 8 44 64 115 1 024 346 32 768 1567 2 097 152 1 0448 268 435 456 12 346Datenstrukturen BearbeitenUngerichteter Graph Adjazenzmatrix nbsp 1 1 0 0 1 0 1 0 1 0 1 0 0 1 0 1 0 0 0 0 1 0 1 1 1 1 0 1 0 0 0 0 0 1 0 0 displaystyle begin pmatrix 1 amp 1 amp 0 amp 0 amp 1 amp 0 1 amp 0 amp 1 amp 0 amp 1 amp 0 0 amp 1 amp 0 amp 1 amp 0 amp 0 0 amp 0 amp 1 amp 0 amp 1 amp 1 1 amp 1 amp 0 amp 1 amp 0 amp 0 0 amp 0 amp 0 amp 1 amp 0 amp 0 end pmatrix nbsp Fur die Reprasentation von Graphen im Computer gibt es im Wesentlichen zwei gebrauchliche Formen die Adjazenzmatrix auch Nachbarschaftsmatrix und die Adjazenzliste Nachbarschaftsliste Die Bedeutung der beiden Darstellungen liegt darin dass praktisch jede algorithmische Losung graphentheoretischer Probleme auf wenigstens eine der beiden Reprasentationen zuruckgreift Eine weitere aber seltener genutzte Moglichkeit zur Darstellung von Graphen im Computer ist die Inzidenzmatrix die man auch als Knoten Kanten Matrix bezeichnet Inzidenzmatrizen sind zwar aufwandiger zu implementieren und zu verwalten bieten aber eine Reihe von Vorteilen gegenuber Adjazenzmatrizen Zum einen verbrauchen sie bei fester Anzahl von Kanten stets nur linear viel Speicherplatz bezuglich der Anzahl der Knoten was insbesondere bei dunnen Graphen also Graphen mit wenig Kanten von Vorteil ist wahrend die Adjazenzmatrix quadratischen Platzbedarf bezuglich der Anzahl Knoten besitzt dafur aber kompakter bei dichten Graphen also Graphen mit vielen Kanten ist Zum anderen lassen sich viele graphentheoretische Probleme nur mit Adjazenzlisten in linearer Zeit losen In der Praxis verwendet man daher meist diese Form der Reprasentation Programmierung 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 7 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 nodes Node headNodes 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 mynodes Edge edges int numberOfEdges int numberOfNodes nodes mynodes speichert Knoten headNodes new Node numberOfNodes Initialisiert ein Array von Zeigern fur die Nachbarknoten 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 headNodes startIndex Aufruf der Methode insertNewNode um einen neuen Knoten einzufugen headNodes startIndex newNode Setzt den Zeiger auf den neuen Knoten Gibt alle benachbarten Knoten von node auf der Konsole aus void writeAdjacencyList Node node Node neighbor cout lt lt Knoten lt lt node gt index lt lt lt lt node gt value lt lt while neighbor nullptr cout lt lt lt lt neighbor gt index lt lt lt lt neighbor gt value lt lt neighbor neighbor 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 sizeof nodes 0 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 headNodes i writeAdjacencyList amp nodes i headNode Gibt die Adjazenzliste fur den Knoten node mit Nachbarn headNode aus Siehe auch BearbeitenGraphenspiele Kleine Welt Phanomen Small world Netzwerk Skalenfreies Netz Zufallsgraph Bandgraph MengensystemLiteratur BearbeitenThomas H Cormen Charles Leiserson Ronald L Rivest Clifford Stein Algorithmen Eine Einfuhrung 2 Auflage Oldenbourg Wissenschaftsverlag Munchen 2007 ISBN 978 3 486 58262 8 S 531 533 Reinhard Diestel Graphentheorie 4 Auflage Springer Berlin u a 2010 ISBN 978 3 642 14911 5 online 4th Electronic Edition 2010 Free preview version Erstausgabe 1996 Jurgen Ebert Effiziente Graphenalgorithmen In Studien Texte Informatik Akademische Verlags Gesellschaft Wiesbaden 1981 ISBN 3 400 00424 3 Zugleich Habilitationsschrift an der Universitat Osnabruck 1982 Dieter Jungnickel Graphen Netzwerke und Algorithmen 3 vollstandig uberarbeitete und erweiterte Auflage BI Wissenschafts Verlag Mannheim u a 1994 ISBN 3 411 14263 4 Inhaltsverzeichnis PDF 1 2 MB Manfred Nitzsche Graphen fur Einsteiger Rund um das Haus vom Nikolaus In Studium 3 uberarbeitete und erweiterte Auflage Vieweg Teubner Wiesbaden 2009 ISBN 978 3 8348 0813 4 Einzelnachweise Bearbeiten a b c d Reinhard Diestel Graphentheorie 4 Auflage Springer Berlin u a 2010 ISBN 978 3 642 14911 5 S 1 34 online 4th elektronische Ausgabe 2010 Erstausgabe 1996 Directed Graphs In Claude Sammut Geoffrey I Webb Hrsg Encyclopedia of Machine Learning Springer US 2010 S 279 doi 10 1007 978 0 387 30164 8 218 a b bei gerichteten Graphen in derselben Richtung lt https writings stephenwolfram com 2020 04 finally we may have a path to the fundamental theory of physics and its beautiful dateline no gt Brigitte Werners Grundlagen des Operations Research 3 Auflage Springer Berlin Heidelberg 2013 ISBN 978 3 642 40101 5 S 175 209 Folge A000088 in OEIS Software Testing Help Graph Implementation In C Using Adjacency List nbsp Dieser Artikel ist als Audiodatei verfugbar source source Speichern 26 00 Minuten 12 3 MB Text der gesprochenen Version 16 Juni 2022 Mehr Informationen zur gesprochenen Wikipedia Abgerufen von https de wikipedia org w index php title Graph Graphentheorie amp oldid 237321631