In der Informatik lexikographische Breitensuche oder Lex-BFS ist ein linearer Algorithmus für die Bestellung der Ecken eines Graphen. Der Algorithmus unterscheidet sich von Breitensuche, aber es eine Ordnung, die mit Breitensuche ist produziert.
Die lexikographische Breitensuche-Algorithmus basiert auf der Idee der Partition Verfeinerung und wurde zuerst von Donald J. Rose, Robert E. Tarjan und George S. Lueker entwickelt. Eine detaillierte Übersicht über das Thema wird von Corneil vorgestellt. Es wurde als ein Unterprogramm in anderen Graphalgorithmen einschließlich der Anerkennung der Sehnen Graphen und optimale Färbung abstands erbliche Graphen verwendet.
Algorithmus
Die lexikographische Breitensuche-Algorithmus ersetzt die Warteschlange der Ecken eines Standardbreitensuche mit einer geordneten Abfolge von Sätzen von Eckpunkten. Die Sätze in der Folge bilden eine Aufteilung der restlichen Ecken. Bei jedem Schritt wird eine Ecke v aus dem ersten Satz in der Folge von dieser Menge entfernt, und wenn das Entfernen bewirkt, dass der Satz leer werden, dann wird der Satz von der Sequenz entfernt. Dann wird jeder Satz in der Folge von zwei Teilmengen ersetzt. Nachbarn von v und der nicht-Nachbarn v Die Teilmenge von Nachbarn ist früher in der Sequenz als die Teilmenge der nicht-Nachbarn angeordnet. In Pseudocode kann der Algorithmus wie folgt ausgedrückt werden:
- Initialisieren Sie eine Sequenz Σ von Sätzen, um einen einzigen Satz enthält alle Knoten enthalten.
- Initialisieren Sie die Ausgabereihenfolge der Knoten leer sein.
- Während Σ nicht leer ist:
- Suchen und entfernen Sie eine Ecke v aus dem ersten Satz in Σ
- Wenn der erste Satz in Σ ist jetzt leer ist, entfernen Sie sie aus Σ
- Hinzuzufügen v bis zum Ende der Ausgabesequenz.
- Für jede Kante vw, so dass w noch in Σ gehört zu einer Menge S:
- Wenn die Menge S enthält w noch nicht ersetzt worden, während die Verarbeitung v, erstellen Sie eine neue leere Ersatz-Set T und legen Sie sie vor dem S in der Reihenfolge; andernfalls Sei T die Menge vor der S. sein
- Bewegen Sie w von S nach T, und führt diese Tatsache S leere entfernen S von Σ geworden.
Jeder Knoten einmal verarbeitet, wobei jede Kante wird nur geprüft, wenn seine beiden Endpunkten verarbeitet werden, und bei jeder Iteration der inneren Schleife dauert nur konstante Zeit. Daher, wie einfachere graphische Suchalgorithmen wie Breitensuche und Tiefensuche, dauert dieser Algorithmus lineare Zeit.
Der Algorithmus wird als lexikographische Breitensuche, da die Reihenfolge sie produziert ist eine Bestell, die auch durch eine Breitensuche produziert könnte, und weil, wenn die Bestellung auf Index die Zeilen und Spalten einer Adjazenzmatrix eines Graphen verwendet dann wird der Algorithmus sortiert die Zeilen und Spalten in lexikographische Ordnung.
Anwendungen
Akkord-Diagramme
Ein Graph G ist definiert Sehnen zu sein, wenn seine Ecken haben eine perfekte Beseitigung Bestellung, eine Ordnung, so dass für jede Ecke v die Nachbarn, die später im Bestell auftreten, bilden eine Clique. In einem Sehnen Graphen ist das Gegenteil eines lexikographischen Ordnung immer eine perfekte Beseitigung Bestellung. Daher kann man prüfen, ob ein Graph Sehnen in linearer Zeit durch den folgenden Algorithmus:
- Verwenden lexikographische Breitensuche, um eine lexikographische Ordnung von G zu finden
- In umgekehrter Reihenfolge Bestell
- Für jeden Scheitelpunkt v:
- Sei w der Nachbar von v auftretenden vor v in umgekehrter Reihenfolge, wie in der Nähe von v in der Sequenz wie möglich
- Ist die Menge der früheren Nachbarn v nicht eine Teilmenge des Satzes von früheren Nachbarn w ist der Graph nicht Sehnen
- Sei w der Nachbar von v auftretenden vor v in umgekehrter Reihenfolge, wie in der Nähe von v in der Sequenz wie möglich
- Wenn die Schleife beendet, ohne dafür, dass der Graph nicht Sehnen, dann ist es Sehnen.
Diese Anwendung war die ursprüngliche Motivation, die Rose, Tarjan & amp geführt; Lueker zu entwickeln die lexikographische Breitensuche-Algorithmus.
Graphenfärbungs
Ein Graph G heißt vollkommen bestellbare zu sein, wenn es eine Folge seiner Scheitelpunkte mit der Eigenschaft, dass für jeden Untergraphen von G, einen gierigen Färbung Algorithmus, der Farben der Scheitel in dem induzierten Sequenzordnungs garantiert eine optimale Färbung zu erzeugen.
Für eine Sehnen Graphen, ist eine perfekte Beseitigung Bestell eine perfekte Ordnung: die Nummer der Farbe für jeden Scheitelpunkt verwendet wird, ist die Größe der von ihm und seinen früheren Nachbarn gebildet Clique, so dass die maximale Anzahl der verwendeten Farben gleich der Größe der ist der größte Clique in der Grafik und keine Farbstoffe können weniger Farben zu verwenden. Ein Untergraph eines Sehnen Graph akkordischen und die induzierte Folge von seiner perfekten Eliminierung Bestell ist eine perfekte Beseitigung Bestell auf dem Untergraphen, so Sehnendiagramme sind vollkommen bestellbar und lexikographische Breitensuche kann verwendet werden, um optimal zu färben sie werden.
Die gleiche Eigenschaft gilt für eine größere Klasse von Graphen, die entfernungs erbliche Graphen: Fern erbliche Graphen perfekt bestellbar, mit einer perfekten Bestellung durch den umgekehrten eines lexikographischen Ordnung gegeben, so lexikographische Breitensuche kann in Verbindung verwendet werden, mit gierigen Farbtonalgorithmen, um sie optimal in linearer Zeit zu färben.
Andere Anwendungen
Bretscher et al. beschreiben eine Erweiterung der lexikographischen Breitensuche, die zusätzliche Verbindungen mit dem Komplementgraph des Eingangs graph bricht. Da sie zeigen, kann diese verwendet werden, um cographs in linearer Zeit zu erkennen. Habib et al. beschreibt zusätzliche Anwendungen der lexikographischen Breitensuche einschließlich der Anerkennung der Vergleichbarkeit Graphen und Diagramme Intervall.
Kommentare - 0