Aufgabe 4

Werbung
Das Price Collecting Steiner Tree Problem
als Lineares Programm
Gruppe C
Oliver Bley
Rami El-Berry
Thomas Pintaric
Frank Yata
Das Grundproblem
Gesucht ist ein Teilgraph
G = (V , E )
mit einer Wurzel
∑
G ' = (V ' , E ' )
v1 ∈ V '
v∈V ' \{v1 }
eines gegebenen Graphen
der den Ausdruck
p ( v ) − ∑ c ( e)
e∈E '
maximiert.
Dabei ist ...
p(v )
... eine Funktion, die jedem Knoten einen Wert
≥ 0 zuordnet.
c(e)
... eine Funktion, die jeder Kante Kosten ≥ 0
zuordnet.
⇒
Für jeden "Besuch" eines Knotens erhält man einen "Preis",
wobei die "Überfahrt" von einem Knoten zu einem anderen
bestimmte Kosten verursacht.
Der Vergleich mit dem normalen
Steiner Baum Problem
- Nicht mehr alle Terminalknoten müssen besucht werden!
- Lösung ist ebenfalls kreisfrei.
- Während die lokale Entscheidung ob ein Knoten durch
das Hinzunehmen zum Lösungsbaum den Funktionswert
verbessert noch einfach ist, stellt das Auffinden des
globalen Optimums ein komplexes Problem dar.
- Explizite Unterscheidung zwischen Terminalknoten und
Steiner Knoten unnötig, da die Preisfunktion
letzteren einfach den Wert Null zuordnen kann.
p(v )
den
Das lineare Programm
∑ p(v) y − ∑ c(e)x
maximiere
v∈V
v
e∈E
e
mit1 yvi = yv j = 1 ∀ x e = 1, e = {v i , v j } ∈ V
unter den Nebenbedingungen
(1)
(2)
(3)
∑f
≥ yk ∀ v ∈ V \ {v }
1
k
∑f
≥ yk
k ,1, i
{v1 , v i }∈E
k ,i, k
{v i , v k }∈E
∑
{v i , v j }∈E
f k ,i , j =
(4) xe ≥ f k , i , j
∀ v k ∈ V \ {v 1 }
∑f
k , j ,l
{v j , v l }∈E
∀j ≠ k , vk ∈ V \ {v 1}
∀ e = { v i , v j }, v k ∈ V \ {v 1 }
(5) f k ,i , j ≥ 0 ∧ xe ∈ {0,1} ∧ y vi , y v j ∈ {0,1}
∀vk ∈V \ {v1}, e = {vi , v j } ∈ E
1
D. h. in Wirklichkeit haben wir es mit einer Funktion in einer Variablen zu tun: die Knotenwahl ergibt sich
unmittelbar aus der Kantenwahl.
Herunterladen