Gerichteter Graph

Ein gerichteter Graph mit 3 Knoten und 4 gerichteten Kanten (Doppelpfeil entspricht zwei gegenläufigen Pfeilen)

Ein gerichteter Graph oder Digraph (von englisch directed graph) besteht aus

Die Kanten eines gerichteten Graphen sind gerichtete Kanten (englisch directed edge/edges, manchmal auch Bögen). Diese werden häufig als Pfeile dargestellt und können nur in einer Richtung durchlaufen werden. Im Gegensatz dazu sind die Kanten eines ungerichteten Graphen ungeordnete Knotenpaare . Gerichtete Graphen werden dazu benutzt, Objekte und die dazwischenliegenden Verbindungen, beispielsweise von endlichen Automaten, darzustellen.

Grundbegriffe

Ein gerichteter Graph ohne Mehrfachkanten und Schleifen wird einfacher Digraph[2] (auch schlichter Digraph) genannt.

Man sagt, dass eine gerichtete Kante von nach geht. Dabei ist der Fuß (oder Startknoten) und der Kopf (oder Endknoten) von . Weiterhin gilt als der direkte Nachfolger von und als der direkte Vorgänger von . Falls in einem Graphen von nach ein Pfad führt, gilt als ein Nachfolger von und als ein Vorgänger von . Die Kante heißt umgedrehte oder invertierte Kante von .

Ein gerichteter Graph heißt symmetrisch, falls zu jeder Kante auch die entsprechende invertierte Kante enthält. Ein ungerichteter Graph lässt sich einfach in einen symmetrischen gerichteten Graphen umwandeln, indem man jede Kante durch die zwei gerichteten Kanten und 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 erhält. 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 außerhalb der Hauptdiagonalen gibt die Anzahl der Kanten vom Knoten zum Knoten an, und der Eintrag der Hauptdiagonalen entspricht der Anzahl der Schleifen im Knoten . Die Adjazenzmatrix eines Digraphen ist bis auf Vertauschung von Zeilen und Spalten eindeutig.

Ein Digraph lässt sich auch durch eine Inzidenzmatrix repräsentieren.

Zusammenhängende gerichtete Graphen

Ein gerichteter Graph heißt schwach zusammenhängend (oder nur zusammenhängend),[6] falls der unterliegende Graph von , den man mittels Ersetzung aller gerichteter Kanten durch ungerichtete erhält, ein zusammenhängender Graph ist. Ein gerichteter Graph heißt stark zusammenhängend oder stark, wenn je zwei seiner Knoten gegenseitig erreichbar sind. Ein maximaler stark zusammenhängender Untergraph von ist eine starke Komponente.

Eingangs- und Ausgangsgrad

Digraph mit Knotenbeschriftung (Eingangs- und Ausgangsgrad).

Die Anzahl der direkten Vorgänger eines Knotens wird Eingangsgrad (auch Innengrad) und die Anzahl der direkten Nachfolger Ausgangsgrad (oder Außengrad) genannt.

Der Eingangsgrad eines Knotens in einem Graphen wird mit und der Außengrad mit bezeichnet. Ein Knoten mit wird Quelle und ein Knoten mit wird Senke genannt. Eine Senke heißt universelle Senke, falls sie eingehende Kanten von jedem anderen Knoten hat, falls also ihr Eingangsgrad gleich ist.

Für gerichtete Graphen ist die Summe aller Eingangsgrade gleich der Summe aller Ausgangsgrade, und beide gleich der Summe der gerichteten Kanten:

Falls für alle Knoten die Gleichung gilt, wird der Graph balancierter Digraph genannt.[7][8]

Darstellung von gerichteten Graphen

Der im Beispiel behandelte gerichtete Graph

Außer der naiven Darstellung eines gerichteten Graphen durch Angabe der Knoten- und Kantenmenge gibt es noch weitere Darstellungsmöglichkeiten, das sogenannte Kanten bzw. Knotenfeld.

Kantenfeld

Ein Kantenfeld ist eine Darstellungsart für gerichtete Graphen nach folgendem Schema:

,

wobei die Anzahl der Knoten, die Anzahl der Kanten und die Kanten mit sind.

Knotenfeld

Ein Knotenfeld ist eine Darstellungsart für gerichtete Graphen mit folgendem Aufbau:

,

wobei die Anzahl der Knoten, die Anzahl der Kanten und der Ausgangsgrad des Knotens sind.

Beispiel

Betrachtet man als Beispiel den rechts stehenden gerichteten Graph, so ist das Kantenfeld und das Knotenfeld . Die fett gedruckten Zahlen geben den Ausgangsgrad an.

Klassen von gerichteten Graphen

Einfach gerichteter azyklischer Graph
Turniergraph mit 4 Knoten

Symmetrisch gerichtete Graphen sind gerichtete Graphen, bei denen alle Kanten bidirektional sind, d. h. für jede Kante, die zum Graphen gehört, gehört auch die entsprechende umgekehrte Kante dazu.

Einfache gerichtete Graphen sind gerichtete Graphen ohne Schleifen und ohne Mehrfachkante.

Vollständige gerichtete Graphen sind einfache gerichtete Graphen, bei denen jedes Knotenpaar durch ein symmetrisches Paar gerichteter Kanten verbunden ist. Dies entspricht einem ungerichteten vollständigen Graphen, dessen Kanten durch Paare von gerichteten Kanten ersetzt werden. Daraus folgt, dass ein vollständiger 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 für jede Kante in ungerichteten vollständigen Graphen erhalten werden.

Ein gerichteter azyklischer Graph oder azyklischer Digraph ist ein gerichteter Graph, der keinen gerichteten Kreis enthält. Spezialfälle gerichteter azyklischer Graphen sind Mehrfachbäume (je zwei gerichtete Pfade des Graphen, die vom selben Startknoten ausgehen, dürfen sich nicht im selben Endknoten treffen), orientierte Bäume oder Polybäume (Orientierung eines ungerichteten azyklischen Graphen) und Wurzelbäume (orientierte Bäume, bei denen alle Kanten des unterliegenden ungerichteten Baumes vom Wurzelknoten wegführen).

Gewichtete gerichtete Graphen oder gerichtete Netzwerke sind einfache gerichtete Graphen mit Gewichten, die ihren Kanten zugewiesen sind, ähnlich 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 während der Ausführung eines Computerprogramms durchlaufen werden können.

Signalflussgraphen sind gewichtete gerichtete Graphen, in denen Knoten Systemvariablen darstellen und Kanten funktionale Verbindungen zwischen Knotenpaaren darstellen.

Zustandsübergangsdiagramme 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 führen.

Kombinatorik

Die Anzahl der einfachen gerichteten Graphen mit Knoten steigt rasant mit der Anzahl der Knoten und ist gleich . Sie steigt also exponentiell zur Anzahl der Kanten des vollständigen Graphen . Wenn die Knoten nicht nummeriert sind, isomorphe Graphen also nicht mitgezählt werden, ist diese Anzahl etwa proportional zu , weil für die meisten Isomorphieklassen alle Graphen, die sich durch Permutation der nummerierten Knoten ergeben, verschieden sind. Die folgende Tabelle zeigt die mit Hilfe eines Computers bestimmten Anzahlen für :[9][10][11]

Anzahl der gerichteten Graphen ohne nummerierte Knoten
n alle zusammenhängend stark zusammenhängend
1 1 1 1
2 3 2 1
3 16 13 5
4 218 199 83
5 9608 9364 5048
6 1540944 1530843 1047008
7 882033440 880471142 705422362
8 1793359192848 1792473955306 1580348371788

Programmierung

Das folgende Beispiel in der Programmiersprache C++ zeigt die Implementierung eines gerichteten Graphen mit Adjazenzlisten. Der gerichtete Graph wird als Klasse DirectedGraph deklariert. Bei der Ausführung des Programms wird die Methode main verwendet.[12]

#include <iostream>

using namespace std;

// Deklariert den Datentyp für die Knoten des Graphen
struct Node
{
    int index;
    string value;
    Node* next;
};

// Deklariert den Datentyp für die Kanten des Graphen
struct Edge
{
    int startIndex;
    int endIndex;
};

// Deklariert die Klasse für den gerichteten Graphen
class DirectedGraph
{
public:
    Node** headNode;

    // Diese Methode fügt einen neuen Knoten in die Adjazenzliste des Graphen ein und gibt ihn als Rückgabewert zurück
    Node* insertNewNode(int index, string value, Node* node)
    {
        Node* newNode = new Node; // Erzeugt einen neuen Knoten vom Typ Node
        newNode->index = index; // Setzt den Index
        newNode->value = value; // Setzt den Wert
        newNode->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 für die Knoten
        for (int i = 0; i < numberOfEdges; i++) // for-Schleife, die alle Kanten des Graphen durchläuft
        {
            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 einzufügen
            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 << "Knoten " << (i + 1) << ": ";
    while (node != nullptr)
    {
        cout << "(" << node->index << ", " << node->value << ") ";
        node = node->next;
    }
    cout << endl;
}

// Hauptmethode, die das Programm ausführt
int main()
{
    // Deklariert und initialisiert Arrays für 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 < numberOfNodes; i++) // for-Schleife, die alle Knoten des Graphen durchläuft
    {
        Node* headNode = directedGraph.headNode[i];
        writeAdjacencyList(headNode, i); // Gibt die Adjazenzliste für den Knoten headNode aus
    }
}

Siehe auch

Literatur

  • Jørgen 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

  1. 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).
  2. Volker Turau: Algorithmische Graphentheorie. 3. Auflage. Oldenbourg Wissenschaftsverlag, München 2009, ISBN 978-3-486-59057-9, S. 20–24.
  3. Eric W. Weisstein: Oriented Graph. In: MathWorld (englisch).
  4. Eric W. Weisstein: Graph Orientation. In: MathWorld (englisch).
  5. 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).
  6. Bang-Jensen, Gutin: Digraphs: Theory, Algorithms and Applications, 2. Auflage, 2009, S. 20.
  7. Bhavanari Satyanarayana, Kuncham Syam Prasad: Discrete Mathematics and Graph Theory. PHI Learning Pvt. Ltd., 2009, ISBN 978-81-203-3842-5, S. 460.
  8. 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.
  9. Folge A000088 in OEIS
  10. Folge A003085 in OEIS
  11. Folge A035512 in OEIS
  12. Software Testing Help: Graph Implementation In C++ Using Adjacency List

Read other articles:

Pemandangan kota Tel Aviv dari gunung Ebal. Gunung Ebal (Arab: جبل عيبالcode: ar is deprecated Jabal ‘Aybāl; Ibrani: הר עיבלcode: he is deprecated Har ‘Eival; Inggris: Mount Ebalcode: en is deprecated ) adalah satu dari dua gunung di dekat kota Nablus di wilayah Tepi Barat (yaitu bekas kota kuno Sikhem), yang membentuk sisi utara lembah di mana Nablus berada; sisi selatan dibentuk oleh gunung Gerizim.[1] Gunung ini merupakan yang tertinggi puncaknya di Tepi Barat, m...

 

1966 Indian filmAggi BarataTheatrical release posterDirected byB. VittalacharyaWritten byG.K.Murthy (dialogues)Screenplay byB. V. AcharyaStory byB. V. AcharyaProduced byB. VittalacharyaStarringN. T. Rama RaoRajasreeCinematographyD. VaradarajanEdited byK. Govinda SwamyMusic byVijaya Krishna MurthyProductioncompanySri Vital CombinesRelease date 17 October 1966 (1966-10-17) Running time124 minutesCountryIndiaLanguageTelugu Aggi Barata (transl. Fire Blast) is a 1966 Telugu-l...

 

Pour l’article homonyme, voir Flammarion. Camille FlammarionPortrait photographique de Flammarion par Eugène Pirou en 1883.BiographieNaissance 26 février 1842Montigny-le-RoiDécès 3 juin 1925 (à 83 ans)Juvisy-sur-OrgeSépulture Parc Camille-Flammarion (d)Nom de naissance Nicolas Camille FlammarionNationalité françaiseFormation Séminaire de LangresActivités Astronome, aérostier, écrivain, écrivain de science-fictionPère Jules Flammarion (d)Mère Françoise Lomon (d)Fratrie ...

Official residence of the royal governors of Virginia 37°16′27.3″N 76°42′7.6″W / 37.274250°N 76.702111°W / 37.274250; -76.702111 Governor's PalaceGeneral informationArchitectural styleEnglish Baroque (original)Colonial Revival (Reconstruction)LocationWilliamsburg, VirginiaCountryUnited States of AmericaConstruction started1706 (original)1931 (reconstruction)DestroyedDecember 22, 1781OwnerColonial WilliamsburgGovernor's PalaceU.S. National Historic Landmark ...

 

نورتش    شعار الاسم الرسمي (بالإنجليزية: Norwich)‏    الإحداثيات 52°37′43″N 1°17′34″E / 52.628611111111°N 1.2927777777778°E / 52.628611111111; 1.2927777777778  [1] تاريخ التأسيس 1004  تقسيم إداري  البلد المملكة المتحدة[2][3]  عاصمة لـ نورفك  خصائص جغرافية  المساحة 52.6 �...

 

24°50′52″N 121°05′44″E / 24.84778°N 121.09556°E / 24.84778; 121.09556 Urban townshipXinpu Township新埔鎭Urban townshipPersimmons drying in Xinpu TownshipXinpu Township in Hsinchu CountyLocationHsinchu County, TaiwanArea • Total72 km2 (28 sq mi)Population (February 2023) • Total33,002 • Density460/km2 (1,200/sq mi) Hsinpu Township office Xinpu Township (Chinese: 新埔鎭; pinyin: Xīnp�...

Pour les articles homonymes, voir Samira et Wiley. Samira Wiley Samira Wiley en 2013 Données clés Nom de naissance Samira Denise Wiley Naissance 15 avril 1987 (36 ans)Washington D.C. Nationalité Américaine Profession Actrice Films notables Nerve Séries notables Orange Is the New BlackThe Handmaid's Tale modifier Samira Wiley, née le 15 avril 1987 à Washington D.C., est une actrice américaine. Elle est révélée au grand public dans la série Orange Is the New Black (2013-2016) ...

 

David Joel Stern David Joel Stern (New York, 22 settembre 1942 – New York, 1º gennaio 2020[1]) è stato un avvocato e dirigente sportivo statunitense. Dal 1984 al 2014 è stato il Commissario della National Basketball Association. È membro del Naismith Memorial Basketball Hall of Fame dal 2014, e del FIBA Hall of Fame dal 2016 in qualità di contributore. È scomparso nel gennaio 2020 all'età di 77 anni a seguito di un'emorragia cerebrale che lo aveva colpito un mese prima. Indic...

 

Village and civil parish in Warwickshire, England Church of St. Margaret Hunningham is a small village and civil parish in Warwickshire, England. It is 3 miles to the north-east of Leamington Spa, within the Radford Semele ward. In 2005 the village population was 198. Hunningham village is part of the Manor of Hunningham. The history of the Manor of Hunningham is of great interest because it has been documented continuously for a thousand years, from the time of the Domesday Book, written in ...

Helmet decorated with wings, usually on both sides For the American football helmet used by the University of Michigan and other colleges, see winged football helmet. A 19th-century ship's figurehead depicting Brennus wearing a winged helmet A winged helmet is a helmet decorated with wings, usually one on each side. Ancient depictions of the god Hermes, Mercury and of Roma depict them wearing winged helmets, and in the 19th century the winged helmet became widely used to depict the Celts. It ...

 

ApollosaKomuneComune di ApollosaLokasi Apollosa di Provinsi BeneventoNegaraItaliaWilayah CampaniaProvinsiBenevento (BN)Luas[1] • Total21,12 km2 (8,15 sq mi)Ketinggian[2]430 m (1,410 ft)Populasi (2016)[3] • Total2.697 • Kepadatan130/km2 (330/sq mi)Zona waktuUTC+1 (CET) • Musim panas (DST)UTC+2 (CEST)Kode pos82030Kode area telepon0824Situs webhttp://www.comune.apollosa.bn.it Apollosa adala...

 

Intervals of expansion and recession in economic activity This article's lead section may be too long. Please read the length guidelines and help move details into the article's body. (March 2024) Part of a series onMacroeconomics Basic concepts Aggregate demand Aggregate supply Business cycle Deflation Demand shock Disinflation Effective demand Expectations Adaptive Rational Financial crisis Growth Inflation Demand-pull Cost-push Interest rate Investment Liquidity trap Measures of national i...

Artikel ini membutuhkan rujukan tambahan agar kualitasnya dapat dipastikan. Mohon bantu kami mengembangkan artikel ini dengan cara menambahkan rujukan ke sumber tepercaya. Pernyataan tak bersumber bisa saja dipertentangkan dan dihapus.Cari sumber: Universitas Philipp Marburg – berita · surat kabar · buku · cendekiawan · JSTOR (February 2012) Universitas Philipp MarburgPhilipps-Universität Marburgbahasa Latin: Schola MarpurgensisJenisnegeriDidirik...

 

О, светлая майская зарячерног. Оj, свиjетла маjска зоро Автор слов Народная песня, некоторые изменения сделал Секула Дрлевич Композитор народная, аранжировка — Жарко Миркович Страна  Черногория Утверждён 1863, повторно 2004 О, светлая майская заря (черног. Ој, свијетла мајс�...

 

2008 American filmStep Up 2 the StreetsTheatrical release posterDirected byJon M. ChuWritten by Toni Ann Johnson Karen Barna Based onCharactersby Duane AdlerProduced by Patrick Wachsberger Erik Feig Adam Shankman Jennifer Gibgot Starring Briana Evigan Robert Hoffman Will Kemp Cassie Ventura CinematographyMax MalkinEdited by Andrew Marcus Nicholas Erasmus Music byAaron ZigmanProductioncompanies Touchstone Pictures Summit Entertainment Offspring Entertainment Distributed byWalt Disney StudiosMo...

Beverage pertaining to the United States American Hard Cider in a Bottle In the United States, the definition of cider is broader than in Europe. There are two types: one is the traditional fermented product, called hard cider, and the second is sweet or soft cider.[1] However, in some regions, cider is the alcoholic version, whether made from apples or pears, and apple cider is the non-alcoholic version. Hard cider Cider Making, painting by William Sidney Mount, 1840–1841, depictin...

 

College of the University of Cambridge A major contributor to this article appears to have a close connection with its subject. It may require cleanup to comply with Wikipedia's content policies, particularly neutral point of view. Please discuss further on the talk page. (August 2023) (Learn how and when to remove this message) Lucy Cavendish CollegeUniversity of CambridgeLucy Cavendish College Bertram, De Brye and New Build view from the courtyardArms of Lucy Cavendish CollegeScarf colours:...

 

奥林匹克运动会土库曼斯坦代表團土库曼斯坦国旗IOC編碼TKMNOC土库曼斯坦國家奧林匹克委員會網站olympic.tm(英文)(俄文)(土庫曼文)历届奥林匹克运动会参赛记录(总结)夏季奥林匹克运动会19962000200420082012201620202024其他相关赛事参赛记录 俄罗斯帝国(1900年-1912年) 苏联(1952年-1988年) 独联体(1992年) 土库曼斯坦參加了6次夏季奥林匹克运动会,第一次�...

Violent period during which no recognized King of Portugal reigned This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: 1383–1385 Portuguese interregnum – news · newspapers · books · scholar · JSTOR (October 2020) (Learn how and when to remove this message) 1383–1385 Portuguese interregnumPart of the Hundred ...

 

2012 في البرازيلمعلومات عامةالسنة 2012 البلد البرازيل 2011 في البرازيل 2013 في البرازيل تعديل - تعديل مصدري - تعديل ويكي بيانات سنوات 2010 2011 2012 2013 2014 علم البرازيل الجدول الزمني لتاريخ البرازيل فيما يلي قوائم الأحداث التي وقعت خلال عام 2012 في البرازيل. رياضة 1 يناير – الدوري البرازيلي ...