Minimierung der Anzahl an Kanten

Werbung
Software-Praktikums-Bericht:
Minimierung der Anzahl an Kanten-Intervallen in
Graphen
Gabi Dorfmüller
27. September 2002
Zusammenfassung
Intervall-Routing ist eine Möglichkeit kürzeste Wege eines Graphen kompakt
zu repräsentieren. Es basiert darauf, dass zu den Kanten des Graphen jeweils die
Zielknoten der kürzesten Wege, die die betrachtete ausgehende Kante benutzen,
gespeichert werden. Hierfür soll möglichst wenig Speicherplatz verbraucht werden. Deshalb wird eine Knoten-Reihenfolge gesucht, so dass zur Speicherung der
betrachteten Information auf möglichst wenige Teilstücke, die sogenannten Intervalle, dieser Reihenfolge gezeigt werden muss. Um nicht alle möglichen KnotenKombinationen ausprobieren zu müssen, wird die Methode “Branch and Cut” verwendet, und diese durch Verwendung einer speziellen Schranke versucht zu verbessern.
1
Einleitung
Dies ist ein Bericht über meine Arbeit im Rahmen des Software-Praktikums beim Lehrstuhl von Frau Prof. Dr. Wagner an der Universität Konstanz.
1.1
Zusammenfassung
Sogenannte Router sind Algorithmen, die eine Art Streckenpläne erzeugen, um eine
effiziente Berechnung kürzester Wege in Netzwerken zu ermöglichen. Sie finden zum
Beispiel beim Verschicken von Nachrichten im Internet Anwendung.
Einen sehr kompakten Streckenplan liefert das Intervall-Routing. Die Idee dahinter
ist, dass zur Kante von Knoten A nach Knoten B eines Graphen alle Knoten gespeichert werden, deren kürzeste Wege von A aus über die betrachtete Kante verlaufen.
Wenn man die zur jeweiligen Kante betrachteten Knoten einzeln speichert, benötigt
man dafür bei großen Graphen ziemlich viel Speicherplatz. Deshalb sucht man eine
Reihenfolge aller Knoten des Graphen, so dass diese nur einmal im Speicher auftaucht,
und zur Speicherung der betrachteten Information möglichst wenige Teilstücke dieser
Reihenfolge, die sogenannten Intervalle, gespeichert werden müssen.
1
Zur Ermittlung einer günstigen Knoten-Reihenfolge wird die Methode “Branch and
Cut” angewendet: In einer rekursiven Funktion werden dazu die einzelnen KnotenReihenfolgen Stück für Stück erzeugt und nach jeder Festlegung eines Knotens die
Anzahl an Intervallen mit einer vorher festgelegten oberen Schranke verglichen. Indem
jede Knoten-Kombination nur so lange erweitert wird, wie die Intervall-Anzahl die
obere Schranke nicht überschreitet, und die Schranke jedesmal verbessert wird, wenn
eine vollständige Knoten-Reihenfolge mit kleinerer Anzahl an Intervallen gefunden
wird, liefert der Algorithmus eine der günstigsten Kombinationen, ohne alle möglichen
Reihenfolgen ausprobiert haben zu müssen.
In dieser Arbeit wird die oben beschriebene Funktion mit zwei verschiedenen Optimierungskriterien getestet, und die dadurch erhaltenen Ergebnisse aufgrund ihrer unterschiedlichen Eigenschaften miteinander verglichen. Desweiteren wird untersucht,
ob weniger Rekursionsaufrufe benötigt werden, wenn man eine spezielle Schranke verwendet. Hierfür werden die Knoten nach ihrer Zugehörigkeit zu Cliquen sortiert und
die Anzahl an Intervallen zu dieser Knoten-Reihenfolge als Schranke benutzt.
1.2 Übersicht
Im folgenden Abschnitt wird beschrieben, wie die zu speichernde Information aller
Kanten in einer Matrix dargestellt werden kann, und wie in dieser dann mit der Methode “Branch and Cut” zwei verschiedene günstige Knoten-Reihenfolgen bestimmt
werden. Diese werden in Hinsicht auf ihre unterschiedlichen Eigenschaften miteinander verglichen. Desweiteren wird erklärt, wie die nach der Zugehörigkeit zu Cliquen sortierte Knoten-Reihenfolge ermittelt wird, welche schließlich als Schranke für
“Branch and Cut” getestet wird. Im folgenden Abschnitt werden die Ergebnisse der
verschiedenen Untersuchungen dargelegt und ausgewertet. Am Schluss folgt noch eine
Zusammenfassung und ein Ausblick, was infolge dieser Arbeit noch untersucht werden
könnte.
2 Experimentaufbau
2.1 Problemstellung
In einem Graphen mit n Knoten sollen zu jeder Kante die Knoten gespeichert werden,
zu denen die kürzesten Wege die betrachtete Kante durchlaufen. Kompakt zu untersuchen ist diese Information auf die folgende Art und Weise: Man ermittelt zu jedem
Knotenpaar im Graphen die erste Kante des kürzesten Weges und speichert diese an
entsprechender Stelle in einer n×n-Matrix. Dabei stellen die Zeilen der Matrix die verschiedenen Start- und die Spalten die Zielknoten der betrachteten kürzesten Wege dar.
Gesucht ist in dieser Matrix dann eine Spalten-Reihenfolge, also eine Reihenfolge der
Zielknoten, so dass in jeder Zeile möglichst all die Zielknoten nebeneinander stehen,
die dieselbe ausgehende Kante benutzen. Dabei soll jeweils die Kante am Zeilenanfang
mit der Kante am Ende derselben Zeile benachbart sein. Hier werden die Gruppierungen der einzelnen Kanten in den Zeilen wieder Intervalle genannt.
2
2.2
Methode “Branch and Cut”
Um bei großen Graphen nicht alle möglichen Spaltenreihenfolgen auf ihre Anzahl an
Intervallen untersuchen zu müssen, wird diese Aufgabe mit der Methode “Branch and
Cut” gelöst. Das heißt, jede Spalten-Reihenfolge wird durch eine rekursive Funktion Spalte für Spalte aufgebaut (“Branch”) und nach jedem Schritt wird getestet, ob
die Anzahl an Intervallen der bisherigen Spalten-Reihenfolge kleiner ist als eine obere Schranke, welche die Anzahl an Intervallen einer beliebigen Spalten-Reihenfolge
ist. Trifft dies nicht zu, brauchen alle Erweiterungen und so auch alle Vervollständigungen dieser angefangenen Spalten-Reihenfolge nicht mehr betrachtet werden, da die
Intervall-Anzahl dieser nur größer sein kann. Die Rekursion wird also an dieser Stelle
abgebrochen (“Cut”). Wurde durch die rekursive Funktion eine vollständige SpaltenReihenfolge erstellt, und ist die Anzahl an Intervallen zu dieser kleiner als die Schranke, so wird die Schranke durch den kleineren Wert ersetzt. Eine kleine Modifikation
dieser Methode ist, dass die Funktion bis zu einer Länge der aufgebauten Reihenfolge
von 1/4 der Spaltenanzahl garantiert rekursiv aufgerufen wird, da es bis dahin recht
unwahrscheinlich ist, dass deren Anzahl an Intervallen die Schranke schon überschreitet.
Mit einer ähnlichen Rekursion kann man die Spalten- bzw. Knoten-Reihenfolge
bestimmen, deren Anzahl an Kanten mit nur einem Intervall maximal ist. Hierfür wird
im “Cut”-Teil der Methode “Branch and Cut” die Anzahl an Kanten mit mehr als einem
Intervall minimiert. Bei der so erhaltenen Spalten-Reihenfolge muss allerdings nicht
unbedingt die Anzahl an Intervallen insgesamt minimal sein, weil bei einem Maximum
an Kanten mit nur einem Intervall andere Kanten sehr viele Intervalle haben können. Es
wird schließlich untersucht, wie stark die gesamte Anzahl an Intervallen dieser SpaltenReihenfolge im Schnitt vom Minimum abweicht, und auch um wieviel die Anzahl an
Kanten mit nur einem Intervall bei der Spalten-Reihenfolge mit minimaler IntervallAnzahl durchschnittlich kleiner ist als das Maximum.
2.3
Experimente
Als Schranke zu Beginn beider Rekursionen kann natürlich die Anzahl an Intervallen
ingesamt bzw. die Anzahl an Kanten mit nur einem Intervall jeder beliebigen SpaltenReihenfolge verwendet werden. Es wird nun getestet, ob man schneller, also mit weniger Rekursions-Aufrufen zum Ziel kommt, wenn man für die Schranke anstelle einer
zufälligen Spalten-Reihenfolge eine auf eine bestimmte Art und Weise sortierte verwendet. Motivation für eine Erfolg versprechende Spalten-Reihenfolge bietet folgender Satz, zu dem sich ein Beweis im Paper [GP98] befindet:
Wenn die Knoten eines Graphen nach ihrer Zugehörigkeit zu Cliquen sortiert werden, haben bei genügend großen Graphen alle Kanten nur ein Intervall, ausgenommen von höchstens O(log3 n) ausgehenden Kanten pro
Knoten mit zwei Intervallen, wobei n die Anzahl an Knoten ist.
Aufgrund dessen wird in diesem Experiment untersucht, wie stark die Anzahl an Kanten mit nur einem Intervall bei der Knoten-Sortierung nach Cliquen vom möglichen
Maximalwert abweicht.
3
Die Cliquen eines jeden Graphen werden bestimmt, indem nacheinander für jeden Knoten geprüft wird, ob er zu einer der schon vorhandenen Cliquen hinzu gefügt
werden kann, also ob er zu allen Knoten einer dieser Cliquen adjazent ist. Wenn dies
nicht der Fall ist, wird eine neue Clique gebildet, die nur aus diesem einzelnen Knoten
besteht. Schließlich ist die zu testende Schranke, ab jetzt Cliquen-Schranke genannt,
die Anzahl an Intervallen bei der Spalten-Reihenfolge, in der die zu den Knoten einer
Clique gehörenden Spalten nebeneinander liegen. Man erhält zwar auf diesem Wege
keine größtmöglichen Cliquen, aber es kann in polynomialer Zeit geprüft werden, ob
der Einsatz der so erhaltenen Schranke die Rekursion beschleunigt.
3 Ergebnisse und Auswertung
Es werden also Spalten-Reihenfolgen mit folgenden Eigenschaften ermittelt:
• minimale Anzahl an Intervallen insgesamt
(Min-IV-Reihenfolge)
• maximale Anzahl an Kanten mit nur einem Intervall
(Max-1-IV-Reihenfolge)
• sortiert nach Zugehörigkeit zu Cliquen
(Cliquen-Reihenfolge)
Im Paper [GP98] heißt es, dass der Anteil an Kanten mit nur einem Intervall bei
der Cliquen-Reihenfolge sehr hoch ist. Allerdings gilt dies nur für genügend große
Graphen, und es können in diesem Experiment aufgrund der hohen Rechendauer für
die Rekursion nur Graphen mit höchstens 11 Knoten bearbeitet werden. Somit kann
die Behauptung des Papers hier nicht geprüft werden.
Stattdessen wird untersucht, wie sich die Anzahl an Intervallen bei der CliquenReihenfolge, sowie auch bei einer beliebigen und der Min-IV-Reihenfolge im Schnitt
zum berechneten Maximum verhält. Hierfür werden 3000 Zufallsgraphen G(n,p) mit
der Knoten-Anzahl n ∈ {5; 6; 7; 8; 9; 10} und der Kanten-Wahrscheinlichkeit p = d/n
mit d ∈ {2, 5; 3, 0; 3, 5} untersucht.
Die gesuchten Durchschnittswerte werden aus insgesamt 3000 Zufallsgraphen mit
5 bis 10 Knoten und im Schnitt 2 bis 4 ausgehenden Kanten pro Knoten berechnet.
In Tabelle 1 ist nun angegeben, wieviel Prozent weniger Kanten mit nur einem Intervall die einzelnen Spalten-Reihenfolgen besitzen, gemessen an der maximal möglichen
Anzahl. Man sieht hier, dass die betrachtete Anzahl bei der Cliquen-Reihenfolge im
Min-IV-Reihenfolge
Cliquen-Reihenfolge
beliebige Reihenfolge
- 0,02 %
- 35 %
- 43 %
Tabelle 1: Anzahl Kanten mit einem Intervall im Vergleich zum Maximum
4
Schnitt weniger stark vom Maximum abweicht als die Anzahl bei irgendeiner beliebigen Knoten-Reihenfolge. Außerdem ist die Anzahl an Kanten mit nur einem Intervall
bei der Min-IV-Reihenfolge kaum kleiner als das Maximum.
Wenn man jetzt umgekehrt zur Max-1-IV-Reihenfolge die Anzahl an Intervallen
insgesamt bestimmt, erhält man ein ähnliches Ergebnis:
Die Anzahl an Intervallen insgesamt bei der Max-1-IV-Reihenfolge ist im
Schnitt nur weniger als 0,2 % größer als das Minimum.
Die mit Hilfe der beiden Rekursionen erhaltenen Knoten-Reihenfolgen unterscheiden sich in Anbetracht ihrer verschiedenen Eigenschaften also nur geringfügig. Damit
liegt die Vermutung nahe, dass die Cliquen-Reihenfolge auch in Hinsicht auf die Anzahl an Intervallen insgesamt besser ist als die Anzahl bei einer beliebigen KnotenReihenfolge.
Nun wird getestet, ob die besseren Eigenschaften der Cliquen-Reihenfolge gegenüber einer beliebigen Reihenfolge nützlich für die beiden Rekursionen sind. Hierfür
werden wieder 3000 Zufallsgraphen mit 5 bis 10 Knoten, unterschiedlichen Kantenwahrscheinlichkeiten und diesmal entweder ungewichtet oder mit zufälligen Kantengewichten zwischen 0 und 1 bearbeitet. Die Ergebnisse der Untersuchung befinden sich
in Tabelle 2.
ungewichtet
Kantengewichte
aus [0,1]
Minimierung der Anzahl
an Intervallen
insgesamt
Maximierung der Anzahl
an Kanten mit nur
einem Intervall
- 0,4 %
- 43 %
- 77 %
- 0,6 %
Tabelle 2: Anzahl Rekursionsaufrufe mit Cliquen-Schranke im Vergleich zur Rekursion
mit beliebiger Schranke
Aufgrund der stark unterschiedlichen Werte werden die Ergebnisse der Graphen im
einzelnen betrachtet und festgestellt, dass bei den meisten Graphen bei Verwendung der
Cliquen-Schranke geringfügig weniger Rekursionsaufrufe benötigt werden. Die zwei
großen Prozent-Zahlen in der Tabelle werden nur durch eine kleine Anzahl von Graphen verursacht, bei denen die Cliquen-Schranke eine enorme Verbesserung gegenüber
einer beliebigen Schranke hervorruft. Man kann also mit dieser Untersuchung für Graphen mit höchstens 10 Knoten bestätigen, dass die Verwendung der Cliquen-Schranke
die Methode “Branch and Cut” ein wenig verbessert.
5
4
Zusammenfassung und Ausblick
Die Cliquen-Reihenfolge hat im Schnitt auch für kleine Graphen in Bezug auf die
Anzahl an Intervallen insgesamt und an Kanten mit nur einem Intervall bessere Eigenschaften als eine beliebige Reihenfolge. Jedoch die erhoffte Beschleunigung der beiden
Rekursionen durch die Verwendung der Cliquen-Schranke tritt wohl erst bei genügend
großen Graphen ein, bei denen der Satz aus dem Paper zutrifft.
Was man in diesem Zusammenhang noch weiter untersuchen könnte, wäre die Verwendung der Intervall-Anzahl der aus den beiden Rekursionen erhaltenen Reihenfolgen als Schranke für die jeweils andere Rekursion. Hier müßte ja aufgrund ihrer guten
Eigenschaften eine Verbesserung der Methode “Branch and Cut” zu erkennen sein. Jedoch ist diese zeitaufwendige Art und Weise der Bestimmung einer Schranke nicht sehr
sinnvoll.
Literatur
[GP98]
C. Gavoille and D. Peleg. The Compactness of Interval Routing for Almost
All Graphs. DISC 1998: 161-174.
6
Herunterladen