Eberhard Karls Universität Tübingen
Wilhelm-Schickard-Institut für Informatik (WSI)
Arbeitsbereich für Theoretische Informatik/Formale Sprachen
Impressum | Intern
Home | Lehre | Wintersemester 05/06 | Vorlesung Randomisierte Algorithmen | Java Applets

Global Wiring

Im Applet ist ein Verdrahtungsproblem zu sehen: Die angezeigten Knoten gehören paarweise zusammen - was an der Farbe zu erkennen ist - und zwei Knoten gleicher Farbe sollen durch einen Draht verbunden werden. Der Draht soll nur horizontal und vertikal verlaufen und maximal einen 90-Grad Knick habe - es gibt also nur zwei Möglichkeiten: man kann sich mit der Taste "zufällige Lösung berechnen" zufällig per Münzwurf erzeugte Verdrahtungen anzeigen lassen. Wenn eine Drahtverbindung gezogen wird, läuft sie über die 6 vertikalen und 6 horizontalen dünnen schwarzen Kanten, die es zwischen den 9 Feldern gibt. Eine dieser Kanten wird also von mehreren Drahtverbindungen überkreuzt. Diese Überkreuzungs-Anzahl ist in technischen Anwendungen (VLSI Design) ein Wert, den es klein zu halten gilt. Das Ziel ist es also, alle Knotenpaare zu verbinden und dabei die größte Überkreuzungs-Anzahl (von allen Kanten) möglichst klein zu halten. Dieses MinMax Optimierungproblem ist rechts als Lineares Gleichungssystem angegeben (die Ungleichungen sind in der Reihenfolge der schwarzen Kanten in der Skizze geordnet, und zwar primär von oben nach unten und sekundär von links nach rechts). Mit der Taste "relaxierte Lösung berechnen" wird mit Hilfe des Simplex Algorithmus eine optimale relaxierte Lösung berechnet, d.h. eine, die sich nicht notwendigerweise entscheidet, ob ein Draht entweder über die eine oder die andere mögliche Stecke verlegt wird, sondern z.B. auch sagt: 40% der Verbindung geht über die eine Strecke und 60% über die andere. In der Skizze ist diese vorläufige Lösung durch die Dicke des Verbindungsdrahts dargestellt. Für das vorgegebene Verdrahtungsproblem ist eine relaxierte Lösung natürlich nicht brauchbar. Deshalb wird aus der relaxierten Lösung mit der Taste "randomisierte Lösung berechnen" die folgende 0/1-Lösung gemacht: ein relaxierter Wert x des Lösungsvektors, dessen Werte ja zwischen jeweils einschließlich 0 und 1 liegen, wird mit Wahrscheinlichkeit x zu 1 und mit Wahrscheinlichkeit 1-x zu 0.


Dieser randomisierte Algorithmus und insbesondere das randomisierte Runden wurde 1987 von P. Raghavan und C. D. Thompson vorgestellt.

Das Applet wurde von Jonas Behr geschrieben. Datum: 6.2.2006. Der Java-Quellcode für das Applet.

Home WSI Fachschaft Uni-Tübingen Tübingen Externe Links