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