Schnelles Durchsuchen eines Graphen

Werbung
Rheinische Friedrich-Wilhelms-Universität Bonn
Institut für Informatik I
Florian Schmidt
Schnelles Durchsuchen
eines Graphen
16. Oktober 2008
Seminararbeit im Sommersemester 2008
Zusammenfassung
On the Fast Searching Problem[2] stellt ein neues Problem der Graphentheorie vor, die sogenannte Schnelle Suche in einem Graphen. Diese ist eine Abwandlung des gründlich erforschten Edge Searching Problems, eine monotone interne Suche in Zeit O (|E|). Das Paper enthält
erste Lösungsansätze und Ergebnisse für die schnelle Suche in Bäumen
und bipartiten Graphen. Diese Seminararbeit erläutert die Grundlagen
der schnellen Suche und erläutert die Ergebnisse.
Inhaltsverzeichnis
1 Einführung
2
2 Grundlagen
2
3 Allgemeine Betrachtungen
3
4 Bäume
4
5 Bipartite Graphen
6
6 Zusammenfassung
9
1
1
Einführung
Das Durchsuchen eines Graphen mit der minimalen Anzahl von Suchern ist
ein gründlich studiertes Problem. Ausgangspunkt ist ein Wegenetz (Tunnel, Straßen), das als kontaminiert angesehen wird. Je nach Interpretation
ist das gesamte Netz mit einem giftigen Gas geflutet, es ist ein flüchtiger
Gefangener in diesem Netz oder eine Person oder ein Gegenstand ist dort
verlorengegangen. Das Originalpaper zitiert eine Gruppe von Höhlenwanderern auf der Suche nach einer verlorenen Person. Diese Gruppe wollte wissen,
wieviele Personen die Suchmannschaft mindestens benötigt, um die verlorene Person überhaupt mit Sicherheit finden zu können. Im Gegensatz zum
Problem des bloßen Durchsuchens eines Graphen, etwa mit Breiten- oder
Tiefensuche, ist das Ziel nicht, einen unbeweglichen Gegenstand zu finden,
so dass ein Sucher ausreicht. Das Problem der garantierten Suche ist es, die
Zielperson zu finden, unabhängig davon, ob und wie sie sich bewegt.
Ziel ist es, den ursprünglich ,,kontaminierten” Graphen sukzessive zu
säubern, indem die Sucher an Kanten des Graphen entlanggehen. Eine Variante dieses Problems ist das ,,schnelle Durchsuchen” (Fast Searching), eine
interne monotone Suche, bei der jede Kante exakt einmal traversiert wird.
Die ,,Fast Searching Number” eines Graphen ist die minimale Anzahl Sucher, die für das schnelle Durchsuchen eines Graphen benötigt wird. Das
Paper stellt einen Linearzeitalgorithmus zur Bestimmung der Fast Searching
Number von Bäumen vor und ermittelt die Fast Searching Number von bipartiten Graphen.
Diese Seminararbeit ist wie folgt aufgebaut: Zunächst werden die Grundlagen des Schnellen Durchsuchens eines Graphen erläutert und definiert. Im
Kapitel Abschnitt 4 wird der Algorithmus zur Berechnung der Suchzahl eines Baumes vorgestellt, im nächsten Kapitel wird auf bipartite Graphen
eingegangen.
2
Grundlagen
Grundlage des Originalpapers ist ein Tunnelsystem. Dieses wird modelliert
durch einen endlichen, verbundenen, einfachen Graphen G = (V, E). Die
gesuchte Instanz wird im folgenden Zielperson genannt, und befindet sich
zu jedem Zeitpunkt auf einer Ecke des Graphen. Die Instanzen, die die Zielperson suchen, werden Sucher genannt. Das Geschehen wird entlang einer
Zeitachse mit diskreten Zeitschritten (Runden) modelliert, so dass die Sucher und die Zielperson rundenbasierte Züge machen. In jeder Runde stehen
alle Sucher und die Zielperson jeweils auf einer Ecke des Graphen. Es dürfen
2
mehrere Sucher auf der gleichen Ecke stehen. In jedem Zug zieht einer der
Sucher auf eine angrenzende Ecke, danach zieht die Zielperson beliebig weit
entlang verbundener Ecken oder bleibt stehen. Die Zielperson darf dabei auf
keine Ecke ziehen, auf der ein Sucher steht. Wenn ein Sucher auf eine Ecke
zieht, auf der die Zielperson steht, ist das Geschehen beendet, die Zielperson
ist gefunden.
Zu Beginn des Geschehens ist der Graph ,,kontaminiert”, zur Verdeutlichung bietet sich der Vergleich einer Verseuchung mit Gas an. Ein Knoten,
an dem ein Sucher steht, heißt ,,bewacht”. Analog heißt ein Knoten ohne
Sucher ,,unbewacht”. Die Idee ist, dass das Gas an keinem Sucher vorbeigelangen kann. Wenn ein Sucher von einer Ecke u entlang einer Kante uv
nach v zieht, wird uv dabei ,,gesäubert” (engl. cleaned). Wenn ein Sucher
allerdings eine Kreuzung verlässt, von der aus mehr als ein angrenzender
Weg verseucht ist, wird das Gas die schon gesäuberten Wege wieder fluten.
Eine solche Kante wird als ,,rekontaminiert” bezeichnet. Bei der Interpretation der Suche nach einer Zielperson ist klar, dass die Zielperson sich auf
keiner Ecke befindet, die zu einer sauberen Kante gehört. Dagegen kann der
Aufenthalt an einer rekontaminierten Kante nicht ausgeschloßen werden.
Die beschriebene Form der Suche auf dem Graphen wird in der Literatur als ,,interne Suche” bezeichnet. Die Sucher werden nur einmal platziert,
und dürfen danach nur auf angrenzende Ecken ziehen, nicht aber zu anderen
Ecken ,,springen”. Der allgemeinere Fall heißt ,,Kantensuche”. Eine weitere Einschränkung ist die ,,monotone Suche”, hierbei darf eine gesäuberte
Kante niemals rekontaminiert werden. Die ,,schnelle Suche” ist eine interne,
monotone Suche, d.h. insbesondere wird jede Kante nur einmal traversiert.
Die Suche selbst ist also in O (|E|) Schritten abgeschlossen. Die Herausforderung ist, zu einem gegebenen Graphen in geringer Zeitkomplexität die
minimale Anzahl Sucher, die sogenannte Suchzahl zu finden. Die minimale
Anzahl Sucher, die für eine schnelle Suche benötigt werden, heißt ,,schnelle
Suchzahl”. Die Suchzahl wird mit s (G) bezeichnet, die schnelle Suchzahl
mit sf (G). Da die schnelle Suche eine Einschränkung der Kantensuche ist,
folgt s (G) ≤sf (G) für alle Graphen G.
Definition 1 Eine ,,Suchstrategie” ist eine Folge von Zügen, in denen der
Graph G = (V, E) komplett gesäubert wird. Eine ,,schnelle Suchstrategie”
ist eine Suchstrategie, die aus genau |E| Zügen besteht.
3
Allgemeine Betrachtungen
[2] erläutert zuerst, dass die schnelle Suchzahl von der Anzahl der Knoten
mit ungeradem Knotengrad (im Folgenden ,,ungerade Knoten”) abhängt.
3
Lemma 2 Sei VU ⊂V die Menge der ungeraden Knoten im Graphen G =
(V, E). Dann gilt sf (G) ≥ |VU | /2.
Beweis. Betrachte einen Knoten k∈VU mit ungeradem Knotengrad, und
eine schnelle Suchstrategie S. Da jede Kante nur einmal durchlaufen wird,
muss es einen Sucher geben, der k als Start- oder Endpunkt seiner Suche hat.
Andernfalls würde eine der angrenzenden Kanten mehr als einmal durchlaufen werden. Es kann aber sein, dass ein Sucher Start- und Endpunkt seiner
Suche in jeweils einem ungeraden Knoten hat, so dass die untere Schranke
für die Anzahl der Sucher |VU | /2 ist.
2
4
Bäume
Es zeigt sich, dass die untere Schranke für die schnelle Suchzahl im Fall von
Bäumen scharf ist. Desweiteren lässt sich für jeden Baum in Zeit O (|E|) eine schnelle Suchstrategie finden. Dazu wird der Baum mittels eines weiteren
Algorithmus in Pfade zerlegt. Im Folgenden sollen beide Algorithmen durch
ein Beispiel verdeutlicht werden.
Algorithmus 4.1 Baumzerlegung
// Dieser Algorithmus färbt einen Baum in knotendisjunkte Pfade:
i := 1 ;
while T 6=∅ do
Wähle ein Blatt u in T .
while deg(u)≥0 do
Setze Kante e = uv
färbe e mit Farbe i und entferne e aus T
Setze u := v , v := w , wobei w angrenzender Knoten von v ist.
end while
end while
Abbildung 1 zeigt die Schritte des Färbungsalgorithmus Algorithmus 4.1
an Hand eines kleinen Baumes. Zunächst wird von einem Blatt des Baumes
ausgehend eine Kante mit der ersten Farbe (hier: rot) gefärbt. Die Kante
wird gelöscht, im verbleibenden Baum wird nach einer angrenzenden Kante gesucht. Die beiden Schritte werden wiederholt, bis ein isolierter Knoten
gefunden ist. Solange es noch Blätter gibt, wird mit der nächsten Farbe weitergemacht.
Durch das Löschen der bearbeiteten Kanten ist sofort klar, dass der
Baum gültig gefärbt wird, d.h. jeder Kante genau eine Farbe zugewiesen
wird. Im Originalpaper wird argumentiert, dass nun jede Farbe einen Pfad
4
Abbildung 1: Färbungsalgorithmus
5
Algorithmus 4.2 Schnelle Suche in einem Baum
// Dieser Algorithmus durchsucht einen von Algorithmus 4.1 gefärbten
Baum:
for all Pi do
Setze einen Sucher λi auf einen Endpunkt von Pi
end for
while T 6=∅ do
Wähle einen Sucher λi auf einem Blattknoten u.
repeat
Setze Kante e := uv ∈ Pi mit Position u des Suchers λi .
Ziehe mit dem Sucher λi entlang der Kante e nach v
until deg(v ) == 1 oder (deg(v ) > 2 und v leer)
Lösche alle durch λi gesäuberten Kanten aus T
end while
durch den Baum definiert, dessen Anfangs- und Endpunkt ungeraden Knotengrad haben. Da nicht zwangsläufig jeder ungerade Knoten getroffen wurde, wurden höchstens |VU | /2 Farben verwendet.
Der Suchalgorithmus Algorithmus 4.2 berechnet aus der erzeugten Färbung
eine schnelle Suchstrategie, indem für jede Farbe ein Sucher auf einem Endpunkt des zugehörigen Pfades platziert wird. Der Baum wird durchsucht,
indem die Sucher an ihrem zugewiesenen Pfad entlang ziehen.
Mit dem zweiten Algorithmus wird also eine schnelle Suchstrategie erzeugt, die höchstens |VU | /2 Sucher braucht. Es wurde aber in Lemma 2
gezeigt, dass sf (G) ≥ |VU | /2. Es folgt sf (G) = |VU | /2 für Bäume.
5
Bipartite Graphen
In diesem Abschnitt soll gezeigt werden, wie die schnelle Suchzahl von bipartiten Graphen berechnet wird. Für einige Parameter m ≤ n des bipartiten
Graphen Km,n gibt es direkte Ergebnisse, für andere nur obere Schranken
der schnellen Suchzahl.
Für die Fälle m=1, 2 oder 4 sind die schnellen Suchzahlen in Tabelle ??
aufgeführt. Im allgemeinen Fall 3 ≤ m ≤ n kann die untere Schranke durch
die Kantensuchzahl wie folgt abgeschätzt [1] werden: s(Km,n ) = m + 2 ≤
sf (Km,n ).
Die Knoten in einem bipartiten Graphen sind in zwei Teilmengen, die
Bipartitionen U und V aufgeteilt. In einem vollständigen bipartiten Graphen Km,n mit m ≤ n und |U | = m, |V || = n ist jeder Knoten u ∈ U mit
allen Knoten n ∈ V verbunden, jedoch mit keinem aus U . Damit ein Sucher
6
Abbildung 2: Km,n mit geradem m, erster Zug einer Suchstrategie. Die
grünen Knoten sind bewacht, der gelbe gesäubert, die roten kontaminiert.
Keiner der Sucher kann ziehen, ohne dass alle Kanten rekontaminiert werden.
einer schnellen Suchstragie einen Knoten u nach v verlassen kann, muss u
entweder direkt bewacht sein, oder die n oder m inzidenten Kanten (mithin
die Verbindungen zur gesamten anderen Bipartition) müssen Teil eines bewachten Pfades sein. In einem darauf folgenden Zug kann derselbe Sucher
seinen Standort wieder nur verändern, wenn v bewacht ist, oder die gesamte
andere Bipartition bewacht ist. Wegen der Forderung nach einer schnellen
Suche kann kein Sucher von u auf v nachrücken, so dass mindestens m Sucher benötigt werden.
Die folgenden oberen Schranken für sf (Km,n ) hängen davon ab, ob m gerade oder ungerade ist. Wie gezeigt wurde, muss ein Knoten mit ungeradem
Knotengrad Start- oder Endknoten im Suchpfad mindestens eines Suchers
sein. Infolgedessen gibt es bei ungeradem m entweder n/2 oder im Falle von
ungeradem n sogar m+n
Sucher im günstigsten Fall.
2
Zunächst wird in [2] eine Suchstrategie vorgestellt, mit der bei geradem
m eine schnelle Suche möglich ist. Sind m Sucher auf einem Knoten v1 ∈ V
platziert, und ziehen nacheinander auf sämtliche Knoten von U , so ist der
Knoten v1 mit allen angrenzenden Kanten gesäubert. Jetzt kann aber keiner der Sucher weiterziehen, ohne diesen Zustand komplett rückgängig zu
machen, denn jeder Knoten ui in U ist mit n − 1 kontaminierten Knoten in
V verbunden (Abb. 2). Es sind also zusätzliche Sucher auf den V -Knoten
nötig, um die Suche fortzusetzen.
Abb. 3 zeigt eine Strategie, mit der m + 3 Suche einen Graphen säubern.
Nachdem zunächst ein Knoten gesäubert wird, werden alle seine ausgehenden Kanten bewacht. Drei weitere Sucher säubern sukzessive Teilgraphen
7
Abbildung 3: Mit drei weiteren Suchern (dunkelgrün) lässt sich der Graph
nach und nach säubern. Hierbei werden nacheinander Teilgraphen K2,3
gesäubert.
8
der Größe K2,3 . Wenn n gerade ist, wird schließlich noch der letzte Knoten
vn mit allen Suchern von ui gesäubert. Die Autoren zeigen weiter, dass die
obere Schranke m + 3 scharf ist, es also nicht weniger Sucher geben darf,
indem sie Argumentieren, dass die 2 übrigen Sucher schon nach wenigen
Zügen keine Möglichkeiten mehr haben, wenn die ersten m die Knoten in U
bewachen.
6
Zusammenfassung
In dieser Seminararbeit wurden ausgewählte Fragestellungen, Lösungsansätze
und Ergebnisse der Arbeit [2] vorgestellt und erläutert. Es behandelt die
schnelle Suche (Fast Searching Problem”), eine Abwandlung der Kantensuche (Edge Searching), die schon intensiv erforscht wurde. Die schnelle Suche
ist eine monotone, interne Suche in einem einfachen, endlichen und verbundenen Graphen G, bei der jede Kante nur einmal durchsucht werden darf.
Dies ist die minimale Zeitkomplexität, die eine Kantensuche annehmen kann.
Die minimale Suchzahl sf (G) eines Graphen bezeichnet dabei die minimale
Anzahl Sucher, mit der die schnelle Suche auf G möglich ist.
Es wurde gezeigt, dass sf für vollständige Graphen Kn , n ≥ 3 genau n
ist, und bei Weglassen einer Kante den Wert n − 1 annimmt. Die allgemeine
untere Schranke bei beliebigen Graphen wird durch die Menge der Knoten
mit ungeradem Knotengrad Vu bestimmt, es gilt sf (G) ≥ |Vu | /2. Diese untere Schranke ist für den Spezialfall von zyklenfreien Graphen (Bäumen)
scharf, dies wurde durch die Angabe einer Suchstrategie mit dieser Anzahl
Sucher gezeigt. Im Fall von bipartiten Graphen Km,n , 1 ≤ m ≤ n hängt die
schnelle Suchzahl erheblich von der Größe der Bipartitionen ab. Allgemein
gilt die untere Schranke sf ≤ m + 2 aus der Theorie der Kantensuche. Für
gerade m gilt sf (Km,n ) = m + 3, für ungerade m ist eine untere Schranke
bei ungeradem n. Weiterhin gilt für ungerade m
n/2 bei geradem n, m+n
2
die obere Schranke m + ⌈ n2 ⌉, und n + 3 bei geradem n.
Literatur
[1] B. Alspach, D. Dyer, D. Hanson, and B. Yang. Lower bounds on edge
searching. In ESCAPE, pages 516–527, 2007.
[2] D. Dyer, B. Yang, and O. Yasar. On the fast searching problem. In
R. Fleischer and J. Xu, editors, AAIM, volume 5034 of Lecture Notes in
Computer Science, pages 143–154. Springer, 2008.
9
Herunterladen