Heuristiken - TU Freiberg

Werbung
Prof. Dr. I. Schiermeyer, B.Sc. C. Brause
Institut für Diskrete Mathematik und Algebra
Heuristiken
Problem TSP
Ein Handlungsreisender hat n Städte zu besuchen, jede Stadt dabei genau einmal, und kehrt danach wieder zur Ausgangsstadt zurück. Die Reiselänge (-zeit, -kosten) ist zu minimieren.
Algorithmus SB
Eingabe Ein Graph G, der die Dreiecksungleichung erfüllt.
Schritt 1 Bestimme ein Minimalgerüst T für G.
Schritt 2 Verdopple alle Kanten von T und erhalte so einen eulerschen Graphen.
Schritt 3 Bestimme eine Eulertour in G.
Schritt 4 Streiche aus der Eulertour alle doppelt besuchten Knoten und erhalte eine TSP-Tour.
Ausgabe Eine TSP-Tour.
Algorithmus NEAREST INSERTION
Eingabe Ein Graph G, der die Dreiecksungleichung erfüllt.
Schritt 1 Starte mit einer beliebigen Stadt s1 und setze k = 1, T1 = (s1 ).
Schritt 2 Sei Tk = (s1 , s2 , . . . , sk , s1 ) die aktuelle (Teil)Tour mit k Städten. Wähle eine Stadt sk+1 , die noch
nicht zu Tk gehört, und eine Stadt si aus Tk , so dass d(si , sk+1 ) minimal ist. Streiche eine der Kanten
von Tk , die mit si inzidieren und verbinde deren Endknoten mit sk+1 . Füge sk+1 zu Tk hinzu und
setzte k = k + 1.
Schritt 3 Ist k < n gehe zu Schritt 2, sonst STOP.
Ausgabe Eine TSP-Tour.
Algorithmus NEAREST NEIGHBOUR
Eingabe Ein Graph G, der die Dreiecksungleichung erfüllt.
Schritt 1 Starte mit einer beliebigen Stadt s1 und setze k = 1, T1 = (s1 ).
Schritt 2 Sei Tk = (s1 , s2 , . . . , sk ) der aktuelle Weg mit k Städten. Wähle eine Stadt sk+1 , die noch nicht zu
Tk gehört, so dass d(sk , sk+1 ) minimal wird. Verbinde sk mit sk+1 und füge sk+1 zu Tk hinzu. Setze
k = k + 1.
Schritt 3 Ist k < n gehe zu Schritt 2, sonst verbinde s1 mit sn und STOP.
Ausgabe Eine TSP-Tour.
Problem VC
In einem Graphen G = (V, E) soll eine Teilmenge C der Knotenmenge V so bestimmt werden, dass für
jede Kante e = {x, y} ∈ E gilt, x ∈ C ∨ y ∈ C.
[email protected]
1/3
Prof. Dr. I. Schiermeyer, B.Sc. C. Brause
Institut für Diskrete Mathematik und Algebra
Algorithmus LARGEST DEGREE / MAXIMUM DEGREE
Eingabe Ein Graph G.
Schritt 1 Setze C = ∅.
Schritt 2 Wähle einen Knoten v ∈ V mit maximalem Knotengrad und füge ihn zu C hinzu. Lösche v und
alle zu ihm inzidenten Kanten aus G.
Schritt 3 Ist E 6= ∅ gehe zu Schritt 2, sonst STOP.
Ausgabe Eine Knotenüberdeckung C.
Problem MM
In einem Graphen G = (V, E) soll eine Teilmenge M der Kantenmenge E so bestimmt werden, dass für
jeden Knoten v ∈ V eine zu v inzidente Kante in M existiert.
Algorithmus APPROX-MATCHING
Eingabe Ein Graph G mit V = {v1 , v2 , . . . , vn }.
Schritt 1 Setze M = ∅ und i = 1.
Schritt 2 Gibt es eine Kante e = {vi , w}, welche mit keiner Kante aus M einen gemeinsamen Knoten hat,
füge e zu M hinzu. Setze i = i + 1.
Schritt 3 Ist i < n gehe zu Schritt 2, sonst STOP.
Ausgabe Ein gesättigtes Matching M.
Problem Bin Packing
Gegeben ist eine Menge von Gütern {a1 , . . . , an }, die in Kisten Bj verpackt
Pwerden soll. Dabei sind die
ai ∈ Q ∩ (0, 1] Gewichte und es gilt für alle in die Kiste Bj gepackten Güter ai ∈Bj ai 6 1. Es ist also eine
Partition {B1 , . . . , Bk } der ai ’s so zu finden, dass k minimal wird.
NEXT FIT
Eingabe {a1 , . . . , an } mit ai ∈ Q ∩ (0, 1].
Schritt 1 Setze j = 1, i = 1.
Schritt 2 Sei Bj die zuletzt befüllte Kiste. Dann packe ai in Bj , falls |Bj | + ai 6 1, sonst packe ai in Bj+1
und setze j = j + 1.
Schritt 3 Falls i < n, setze i = i + 1 und gehe zu Schritt 2, sonst STOP.
Ausgabe Eine Partition {B1 , . . . , Bk } der ai ’s.
Problem Knotenfärbung
Die Knoten eines Graphen G sollen so gefärbt werden, dass adjazente Knoten unterschiedlich gefärbt sind.
Gesucht ist die kleinst mögliche Anzahl von benötigten Farben.
Damit ein approximierender Algorithmus möglich ist, betrachten wir nicht das eigentliche Minimierungsproblem, sondern das folgende Maximierungsproblem: Zur Färbung eines Graphen G mit n Knoten haben
[email protected]
2/3
Prof. Dr. I. Schiermeyer, B.Sc. C. Brause
Institut für Diskrete Mathematik und Algebra
wir n Farben zur Verfügung. Ziel ist es nun möglichst viele der Farben nicht zu benutzen, also ein c zu finden, sodass n−c maximal wird und G mit c Farben färbbar ist. Daraus ergibt sich, dass OPT (G) = n−χ(G)
und für einen Färbungsalgorithmus A, der χA (G) Farben verwendet, ist A(G) = n − χA (G). Somit berech(G)
n−χ(G)
net sich die Approximationsgüte aus OPT
A(G) = n−χA (G) .
Algorithmus 1
Eingabe Ein Graph G mit n Knoten.
Schritt 1 Bestimme im Komplementärgraphen G ein gesättigtes Matching M mit |M| = z.
Schritt 2 Sei M = {e1 , . . . , ez }, dann färbe die Endknoten jeder Kante ei mit der Farbe i.
Schritt 3 Färbe die restlichen Knoten in G paarweise disjunkt mit den Farben {z + 1, . . . , n − z}.
Ausgabe Eine Knotenfärbung des Graphen G mit n − z Farben.
Algorithmus 2 nach R. Hassin und A. Lahar
Eingabe Ein Graph G mit n Knoten.
Schritt 1 Bestimme eine nicht erweiterbare Menge Z von disjunkten, 3-elementigen, unabhängigen Mengen in G (|Z| = z). Die Menge der restlichen Knoten in G sei X.
Schritt 2 Bestimme in maximales Matching M in G[X]
Schritt 3 Sei M = {e1 , . . . , ek }, dann färbe die Endknoten jeder Kante ei mit der Farbe i.
Schritt 4 Färbe alle verbleibenden Knoten in X mit den Farben {k + 1, . . . , x}, wobei x = χ(G[X]).
Schritt 5 Färbe alle Knoten aus jeder unabhängigen Menge in Z so, dass Knoten aus verschiedenen Mengen in Z unterschiedlich gefärbt sind.
Ausgabe Eine Knotenfärbung des Graphen G mit x + z Farben.
Erstellt durch Dr. Stephan Matos Camacho
[email protected]
3/3
Herunterladen