Geleiteter acyclic Graph

In der Mathematik und Informatik, einem geleiteten acyclic Graphen (DAG), ist ein geleiteter Graph ohne geleitete Zyklen. D. h. es wird durch eine Sammlung von Scheitelpunkten und geleiteten Rändern, jeder Rand gebildet, der einen Scheitelpunkt mit einem anderen, solch verbindet, dass es keine Weise gibt, an einem Scheitelpunkt v anzufangen und einer Folge von Rändern dass schließlich Schleifen zurück zu v wieder zu folgen.

DAGs kann verwendet werden, um mehrere verschiedene Arten der Struktur in der Mathematik und Informatik zu modellieren. Eine Sammlung von Aufgaben, die in eine Folge bestellt werden müssen, Thema Einschränkungen, dass bestimmte Aufgaben früher durchgeführt werden müssen als andere, kann als ein DAG mit einem Scheitelpunkt für jede Aufgabe und einem Rand für jede Einschränkung vertreten werden; Algorithmen für die topologische Einrichtung können verwendet werden, um eine gültige Folge zu erzeugen. DAGs kann auch an Musterprozesse in der Datenflüsse in einer konsequenten Richtung durch ein Netz von Verarbeitern gewöhnt sein. Die reachability Beziehung in einem DAG bildet eine teilweise Ordnung, und jede begrenzte teilweise Ordnung kann durch einen DAG vertreten werden, der reachability verwendet. Zusätzlich kann DAGs als eine raumeffiziente Darstellung einer Sammlung von Folgen mit überlappenden Subfolgen verwendet werden.

Das entsprechende Konzept für ungeleitete Graphen ist ein Wald, ein ungeleiteter Graph ohne Zyklen. Die Auswahl einer Orientierung für einen Wald erzeugt eine spezielle Art des geleiteten acyclic Graphen genannt einen Polybaum. Jedoch gibt es viele andere Arten des geleiteten acyclic Graphen, die durch die Ortsbestimmung der Ränder eines ungeleiteten acyclic Graphen nicht gebildet werden. Aus diesem Grund kann es genauer sein, geleitete acyclic Graphen acyclic geleitete Graphen oder acyclic Digraphe zu nennen.

Teilweise Ordnungen und topologische Einrichtung

Jeder hat angeordnet, dass acyclic Graph eine teilweise Ordnung  auf seinen Scheitelpunkten verursacht, wo u  v genau, wenn dort ein geleiteter Pfad von u bis v im DAG besteht. Jedoch können viele verschiedene DAGs diese dieselbe reachability Beziehung verursachen: Zum Beispiel hat der DAG mit zwei Rändern ein  b und b  c denselben reachability wie der Graph mit drei Rändern ein  b, b  c und ein  c. Wenn G ein DAG ist, ist seine transitive Verminderung der Graph mit wenigsten Rändern, der denselben reachability wie G vertritt, und sein transitiver Verschluss der Graph mit den meisten Rändern ist, der denselben reachability vertritt.

Der transitive Verschluss von G hat einen Rand u  v für jedes verwandte Paar u  v von verschiedenen Elementen in der reachability Beziehung von G, und kann deshalb als eine direkte Übersetzung der reachability Beziehung  in mit dem Graphen theoretische Begriffe gedacht werden: Jeder teilweise bestellte Satz kann in einen DAG auf diese Weise übersetzt werden. Wenn ein DAG G eine teilweise Ordnung  vertritt, dann ist die transitive Verminderung von G ein Subgraph von G mit einem Rand u  v für jedes Paar in der Bedeckungsbeziehung von ; die transitiven Verminderungen sind im Vergegenwärtigen der teilweisen Ordnungen nützlich, die sie vertreten, weil sie weniger Ränder haben als andere Graphen, die dieselben Ordnungen vertreten, und deshalb zu einfacheren Graph-Zeichnungen führen. Ein Diagramm von Hasse einer teilweisen Ordnung ist eine Zeichnung der transitiven Verminderung, in der die Orientierung jedes Randes durch das Stellen des Startscheitelpunkts des Randes in einer niedrigeren Position gezeigt wird als sein endender Scheitelpunkt.

Jeder geleitete acyclic Graph hat eine topologische Einrichtung, eine Einrichtung der solcher Scheitelpunkte, dass der Startendpunkt jedes Randes früher in der Einrichtung vorkommt als der endende Endpunkt des Randes. Im Allgemeinen ist diese Einrichtung nicht einzigartig; ein DAG hat eine einzigartige topologische Einrichtung, wenn, und nur wenn er einen geleiteten Pfad hat, der alle Scheitelpunkte enthält, in welchem Fall die Einrichtung dasselbe als die Ordnung ist, in der die Scheitelpunkte im Pfad erscheinen. Die Familie der topologischen Einrichtung eines DAG ist dasselbe als die Familie von geradlinigen Erweiterungen der reachability Beziehung für den DAG, so haben irgendwelche zwei Graphen, die dieselbe teilweise Ordnung vertreten, denselben Satz von topologischen Ordnungen. Das topologische Sortieren ist das algorithmische Problem, topologische Einrichtung zu finden; es kann in der geradlinigen Zeit gelöst werden. Es ist auch möglich zu überprüfen, ob ein gegebener geleiteter Graph ein DAG in der geradlinigen Zeit ist, indem er versucht wird, eine topologische Einrichtung und dann Prüfung zu finden, ob die resultierende Einrichtung gültig ist.

Einige Algorithmen werden einfacher, wenn verwendet, auf DAGs statt allgemeiner Graphen, die auf dem Grundsatz der topologischen Einrichtung gestützt sind. Zum Beispiel ist es möglich, kürzeste Pfade und längste Pfade von einem gegebenen Startscheitelpunkt in DAGs in der geradlinigen Zeit durch die Verarbeitung der Scheitelpunkte in einer topologischen Ordnung und das Rechnen der Pfad-Länge für jeden Scheitelpunkt zu finden, um die minimale oder maximale über einigen seiner eingehenden Ränder erhaltene Länge zu sein.

Im Gegensatz für willkürliche Graphen kann der kürzeste Pfad langsamere Algorithmen wie der Algorithmus von Dijkstra oder der Algorithmus von Ford des Öffentlichen Ausrufers verlangen, und längste Pfade in willkürlichen Graphen sind NP-hard, um zu finden.

DAG Darstellungen der teilweisen Einrichtung haben viele Anwendungen in der Terminplanung von Problemen für Systeme von Aufgaben mit der Einrichtung von Einschränkungen. Zum Beispiel kann ein DAG verwendet werden, um die Abhängigkeiten zwischen Zellen eines Spreadsheets zu beschreiben: Wenn eine Zelle durch eine Formel geschätzt wird, die den Wert einer zweiten Zelle einschließt, ziehen Sie einen DAG Rand von der zweiten Zelle bis die erste. Wenn der Eingang zur Spreadsheet-Änderung schätzt, können alle restlichen Werte des Spreadsheets mit einer einzelnen Einschätzung pro Zelle, durch die topologische Einrichtung der Zellen und das Wiederauswerten jeder Zelle in dieser Ordnung wieder gerechnet werden. Ähnliche Probleme der Aufgabe, die bestellt, entstehen in makefiles für die Programm-Kompilation, Instruktionsterminplanung für die auf niedriger Stufe Computerprogramm-Optimierung und KECKER Terminplanung für das Management von großen menschlichen Projekten. Abhängigkeitsgraphen ohne kreisförmige Abhängigkeitsform haben acyclic Graphen geleitet.

Daten, die Netze bearbeiten

Ein geleiteter Graph kann verwendet werden, um ein Netz von in einer Prozession gehenden Elementen zu vertreten; in dieser Formulierung gehen Daten in ein in einer Prozession gehendes Element durch seine eingehenden Ränder ein und verlassen das Element durch seine aus dem Amt scheiden Ränder. Beispiele davon schließen den folgenden ein:

  • Im elektronischen Stromkreis-Design ist ein combinational Logikstromkreis ein acyclic System von Logiktoren, das eine Funktion eines Eingangs schätzt, wo der Eingang und die Produktion der Funktion als individuelle Bit vertreten werden.
  • Programmiersprachen von Dataflow beschreiben Systeme von Werten, die mit einander durch einen geleiteten acyclic Graphen verbunden sind. Wenn sich ein Wert ändert, werden seine Nachfolger wiederberechnet; jeder Wert wird als eine Funktion seiner Vorgänger im DAG bewertet.
  • In Bearbeitern kann Code der Gerade (d. h. Folgen von Behauptungen ohne Schleifen oder bedingte Zweige) durch einen DAG das Beschreiben der Eingänge und Produktionen von jeder der arithmetischen innerhalb des Codes durchgeführten Operationen vertreten werden; diese Darstellung erlaubt dem Bearbeiter, allgemeine Subausdruck-Beseitigung effizient durchzuführen.
  • In den meisten Spreadsheet-Systemen muss der Abhängigkeitsgraph, der eine Zelle mit einem anderen verbindet, wenn die erste Zelle eine Formel versorgt, die den Wert in der zweiten Zelle verwendet, ein geleiteter acyclic Graph sein. Zyklen von Abhängigkeiten werden zurückgewiesen, weil sie die am Zyklus beteiligten Zellen veranlassen, einen bestimmten Wert nicht zu haben. Zusätzlich erlaubt das Verlangen die Abhängigkeiten, acyclic zu sein, einer topologischen Ordnung, verwendet zu werden, um die Wiederberechnungen von Zellwerten zu planen, wenn das Spreadsheet geändert wird.

Kausale und zeitliche Strukturen

Graphen, die Scheitelpunkte haben, die Ereignisse und Ränder vertreten, die kausale Beziehungen zwischen Ereignissen vertreten, sind häufig acyclic. Zum Beispiel vertritt ein Netz von Bayesian ein System von probabilistic Ereignissen als Knoten in einem geleiteten acyclic Graphen, in dem die Wahrscheinlichkeit eines Ereignisses von der Wahrscheinlichkeit seiner Vorgänger im DAG berechnet werden kann. In diesem Zusammenhang ist der moralische Graph eines DAG der ungeleitete geschaffene Graph durch das Hinzufügen eines (ungeleiteten) Randes zwischen allen Eltern desselben Knotens (manchmal genannt Verbindung), und dann das Ersetzen aller geleiteten Ränder durch ungeleitete Ränder.

Ein anderer Typ des Graphen mit einer ähnlichen kausalen Struktur ist ein Einfluss-Diagramm, dessen Knoten entweder Entscheidungen vertreten, gemacht zu werden, oder unbekannte Information, und, dessen Ränder kausale Einflüsse von einem Knoten bis einen anderen vertreten. In der Epidemiologie, zum Beispiel, werden diese Diagramme häufig verwendet, um den erwarteten Wert verschiedener Wahlen für das Eingreifen zu schätzen.

Stammbäume können auch, wie geleitet, acyclic Graphen, mit einem Scheitelpunkt für jedes Familienmitglied und einem Rand für jede Elternteilkind-Beziehung gesehen werden. Trotz des Namens sind diese Graphen nicht notwendigerweise Bäume wegen der Möglichkeit von Ehen zwischen entfernten Verwandten, aber die Zeit, von Geburten bestellend (ist ein Geburtstag eines Elternteils immer vor dem Geburtstag ihres Kindes) veranlasst diese Graphen, acyclic zu sein. Aus demselben Grund hat die Versionsgeschichte eines verteilten Revisionsregelsystems allgemein die Struktur eines geleiteten acyclic Graphen, in dem es einen Scheitelpunkt für jede Revision und einen Rand gibt, der Paare von Revisionen verbindet, die aus einander direkt abgeleitet wurden.

Pfade mit der geteilten Struktur

Ein dritter Typ der Anwendung von geleiteten acyclic Graphen entsteht im Darstellen einer Reihe von Folgen als Pfade in einem Graphen. Zum Beispiel ist der geleitete acyclic Wortgraph eine Datenstruktur in der Informatik, die durch einen geleiteten acyclic Graphen mit einer einzelnen Quelle und mit Rändern gebildet ist, die durch Briefe oder Symbole etikettiert sind; die Pfade von der Quelle zum Becken in diesem Graphen vertreten eine Reihe von Schnuren wie englische Wörter.

Jeder Satz von Folgen kann als Pfade in einem Baum vertreten werden, indem er einen Baumknoten für jedes Präfix einer Folge gebildet wird und den Elternteil von einem dieser Knoten die Folge mit einem weniger Element vertreten lässt; der Baum gebildet auf diese Weise für eine Reihe von Schnuren wird einen trie genannt. Ein geleiteter acyclic Wortgraph spart Raum über einen trie, indem er Pfaden erlaubt wird, abzuweichen und sich wieder zu vereinigen, so dass eine Reihe von Wörtern mit denselben möglichen Nachsilben durch einen einzelnen Baumknoten vertreten werden kann.

Dieselbe Idee, einen DAG zu verwenden, um eine Familie von Pfaden zu vertreten, kommt im binären Entscheidungsdiagramm, einer DAG-basierten Datenstruktur vor, um binäre Funktionen zu vertreten. In einem binären Entscheidungsdiagramm wird jeder Nichtbecken-Scheitelpunkt durch den Namen einer zweiwertigen Variable etikettiert, und jedes Becken und jeder Rand werden durch 0 oder 1 etikettiert. Der Funktionswert für jede Wahrheitsanweisung zu den Variablen ist der Wert am Becken, das durch den folgenden ein Pfad gefunden ist, vom einzelnen Quellscheitelpunkt anfangend, der an jedem Nichtbecken-Scheitelpunkt dem aus dem Amt scheiden mit dem Wert der Variable dieses Scheitelpunkts etikettierten Rand folgt. Genauso geleitete acyclic Wortgraphen können angesehen werden wie eine komprimierte Form von Versuchen, binäre Entscheidungsdiagramme können als komprimierte Formen von Entscheidungsbäumen angesehen werden, die Raum sparen, indem sie Pfaden erlaubt wird sich wieder anzuschließen, wenn sie sich über die Ergebnisse aller restlichen Entscheidungen einigen.

In vielen randomized Algorithmen in der rechenbetonten Geometrie erhält der Algorithmus eine Geschichte DAG das Darstellen von Eigenschaften von etwas geometrischem Aufbau aufrecht, die durch spätere Eigenschaften der feineren Skala ersetzt worden sind; auf Punkt-Positionsabfragen kann bezüglich der obengenannten zwei Datenstrukturen durch folgende Pfade in diesem DAG geantwortet werden.

Beziehung zu anderen Arten von Graphen

Ein Polybaum ist ein geleiteter gebildeter Graph durch die Ortsbestimmung der Ränder eines freien Baums. Jeder Polybaum ist ein DAG. Insbesondere das trifft auf den gebildeten arborescences durch die Richtung aller Ränder nach außen von der Wurzel eines Baums zu. Ein Mehrbaum (hat auch einen stark zweideutigen Graphen oder einen Mangrovebaum genannt), ist ein geleiteter Graph, in dem es an meisten einen geleiteten Pfad (in jeder Richtung) zwischen irgendwelchen zwei Knoten gibt; gleichwertig ist es ein DAG, in dem, für jeden Knoten v, der Satz von von v erreichbaren Knoten einen Baum bildet.

Jeder ungeleitete Graph kann in einen DAG durch die Auswahl eines Gesamtbezugs für seine Scheitelpunkte und die Ortsbestimmung jedes Randes vom früheren Endpunkt in der Ordnung zum späteren Endpunkt gemacht werden. Jedoch können verschiedene Gesamtbezüge zu derselben acyclic Orientierung führen. Die Zahl von acyclic Orientierungen ist | χ (-1 gleich) |, wo χ das chromatische Polynom des gegebenen Graphen ist.

Jeder geleitete Graph kann in einen DAG durch das Entfernen eines Feed-Back-Scheitelpunkt-Satzes oder eines Feed-Back-Kreisbogen-Satzes gemacht werden. Jedoch ist das kleinste solcher Satz NP-hard, um zu finden. Ein willkürlicher geleiteter Graph kann auch in einen DAG, genannt seine Kondensation, durch das Zusammenziehen von jedem seiner stark verbundenen Bestandteile in einen einzelnen Superscheitelpunkt umgestaltet werden. Wenn der Graph bereits acyclic ist, sind seine kleinsten Feed-Back-Scheitelpunkt-Sätze und Feed-Back-Kreisbogen-Sätze leer, und seine Kondensation ist der Graph selbst.

Enumeration

Das Graph-Enumerationsproblem zu zählen hat angeordnet, dass acyclic Graphen dadurch studiert wurden.

Die Zahl von DAGs auf n hat Knoten, für n = 1, 2, 3 etikettiert..., ist

:1, 3, 25, 543, 29281, 3781503....

Diese Zahlen können durch die Wiederauftreten-Beziehung geschätzt werden

:

Eric W. Weisstein hat gemutmaßt und hat sich erwiesen, dass dieselben Zahlen (0,1) matrices zählen, in dem alle eigenvalues positive reelle Zahlen sind. Der Beweis ist bijektiv: Eine Matrix A ist eine Angrenzen-Matrix eines DAG, wenn, und nur wenn der eigenvalues (0,1) Matrix + ich positiv bin, wo ich die Identitätsmatrix anzeige.

Außenverbindungen


Netz von Bayesian / Nahe passerine
Impressum & Datenschutz