Università degli Studi di Roma
Tor Vergata
Corso di Laurea in
Ingegneria dei Modelli e dei Sistemi
Il problema della foresta di Steiner
STUDENTE
Marco Senatore
RELATORE
Gianpaolo Oriolo
Generalizzazione del problema dell’albero di Steiner
Foresta di Steiner.
Formulazione del problema in PLI.
• Rilassamento PL e duale.
Algoritmo.
• Esempi.
• Analisi dell’algoritmo.
PROBLEMA:
Dati:
un grafo non direzionato G = (V, E);
una funzione costo a valori positivi c sugli archi ;
una collezione di sottoinsiemi disgiunti di V: R1,.......,Rk.
Trovare:
un sottografo F nel quale ogni coppia di vertici appartenenti
allo stesso insieme Ri è connessa;
Tale che:
la somma dei costi degli archi di F sia minima.
OSS: se k=1
albero di Steiner.
V
R3
R1
R2
Definiamo la funzione r:
1
r (u, v)
0
se (u, v) Ri
altrimenti
Trovare F che contenga un path da u a v
per ogni coppia (u,v) con r(u,v)=1
La soluzione sarà una foresta
(ovvero un’unione di alberi disgiunti)
Introducendo f : 2V{0,1}
1
f (S )
0
se u S , v S : r (u, v) 1
altrimenti
e associando una variabile binaria xe ad ogni arco e, possiamo
formulare il problema nel seguente modo:
min
c x
eE
s.t.
e:e ( S )
e e
xe f ( S ),
xe {0,1},
S V
e E
Il rilassamento lineare del problema è:
min
c x
eE
s.t.
e e
e:e ( S )
xe f ( S ),
xe 0,
S V
e E
Il duale è:
max
f (S ) y
S V
s.t.
S :e ( S )
S
ys ce ,
yS 0,
e E
S V
Def : un arco è detto TIGHT
se il vincolo duale ad esso
corrispondente è soddisfatto
all’ uguaglianza
Def : si dice grado dell’insieme S il numero di archi selezionati
che appartengono al taglio (S,S).
CONDIZIONE PRIMALE :
e E : xe 0
S :e ( S )
ys ce
Ogni arco selezionato
deve essere tight
CONDIZIONE DUALE RILASSATA :
S V : yS 0
e:e ( S )
xe 2 f ( S )
Algoritmo
2-approssimato
Data una soluzione primale x:
Def : un insieme S si dice insoddisfatto se:
• f (S)=1;
• xe 0e (S ).
Def : un insieme S si dice attivo se:
• è insoddisfatto;
• S’ S tale che S’ è insoddisfatto, ovvero S è
minimale
Prop. : un insieme S è attivo sse è una componente connessa della soluzione
corrente e f (S)=1.
L’algoritmo, iterativamente, migliora l’ammissibilità del primale e l’ottimalità
del duale fino ad ottenere una soluzione primale ammissibile.
1. Poniamo xe 0e E, yS 0S V ;
x non ammissibile, y ammissibile.
2. Aumentiamo in modo uniforme le ys relative agli insiemi attivi;
OSS: se la soluzione primale corrente è inammissibile un insieme
attivo.
3. Quando un arco e diventa tight viene selezionato e le yS del vincolo duale
corrispondente ad e vengono ”congelate”;
4. Ripetere fino al raggiungimento di una soluzione ammissibile F;
5. (Pruning step) e F tale che F\{e} è ancora ammissibile, rimuovo e da F.
F’ = {e F tale che F’\{e} è inammissibile}
.
u
6
16
.
s
.
v
20
.
a
12
9
.
V={a,b,s,t,u,v}
R1={s,t} R2={u,v}
6
19
b
12
.
t
OPT=45
r(s,t)=1
r(u,v)=1
2
2
1
.
1
u
a
16
s
v
20
6
.
.
6
12
.
9
.
6
Set attivi :{s},
{t},{v,b,t}
{u,a},{v}
:{t}, {u,s,a},
:{u,s,a},
{u},
{v}
{v,b}
3
6
b
ySS aumentate di 1206
19
.
12
8
6
ITERAZIONE 2:
1:
3:
4:
5:
2
t
6
8
9
(v,b)
tight, quindi
quindi lo
lo prendo
prendo
(u,a) tight,
(u,s)
(b,t)
(u,v)
.
u
6
16
.
s
.
v
20
a
.
.
Abbiamo una soluzione
ammissibile del primale
6
b
12
.
Pruning step
t
COSTO=54
2 terminali
5 nodi di Steiner
L’algoritmo aggiunge tutti gli archi di
costo 1 prima dell’arco di costo 3
. .
. .
. .
1
1
3
1
1
Costo(F) > 2OPT
1
Importanza del pruning step!
.
F' ed y sono una coppia primale/duale ammissibile
Def : Con degF’(S) denotiamo il numero di archi di F’ che attraversano il taglio
(S,S).
Lemma : Si consideri un’iterazione dell’algoritmo, e sia C una componente
connessa della soluzione corrente. Se f (C ) 0 deg F ' (C ) 1.
Dim : Supponiamo degF’(C)=1. ! e F’ che attraversa il taglio (C,C). Poichè
e non è ridondante, c’è una coppia di vertici (u,v) tale che r(u,v)=1 ed e giace
sull’unico path u-v in F’. Questo path attraversa il taglio una sola volta, quindi un
vertice sta in C e l’altro in C. Allora, poichè r(u,v)=1, deduciamo che f(C)=1, il che
porta all’assurdo.
.
I VERTICI DI STEINER
SELEZIONATI DALLA
SOLUZIONE HANNO GRADO
ALMENO 2
Lemma:
c
e
eF '
Dim:
2 yS
S V
ce yS
eF '
eF ' S :e ( S )
deg
S V
F'
c
y
S deg F ' (S ) yS
e
eF '
S V e ( S ) F '
S V
( S ) yS 2 yS
deg F ' ( S ) 2 ( di S attivi)
S attivi
S V
deg F ' ( S )
S attivi
( di S attivi)
2
Equivale a dire che, fissata una iterazione k, il numero medio di archi della
soluzione FINALE F' che attraversano gli S attivi nell'iterazione k è al più 2 .
•Considero H=(V,F’) e le componenti attive di
F all’iterazione k;
H
•Contraggo le componenti attive in un singolo
nodo ed ottengo H’, elimando gli archi
introdotti fino all’iterazione k;
•I nodi s corrispondenti alle componenti
attive S, sono detti attivi, ed hanno grado pari
proprio a degF’(S); gli altri sono detti inattivi;
•H’ è un albero, quindi il grado medio dei suoi
nodi è 2;
•Per il lemma precedente i nodi inattivi hanno
grado almeno 2;
I nodi attivi hanno grado medio 2.
H’
Abbiamo dato una formulazione primale/duale del
problema;
Abbiamo fornito un algoritmo che ci restituisce una
coppia di soluzioni primale/duale ammissibili;
Abbiamo dimostrato che la soluzione del primale vale
al più 2 volte la soluzione del duale;
Questo ci ha permesso di dimostrare che l’algoritmo è
2-approssimato.
Def : Si dice taglio (S,S) di un grafo G=(V,E) una bipartizione dei suoi nodi in
due insiemi non vuoti S ed S
Def : Con δ(S) indicheremo l’insieme di archi di G che attraversano il taglio (S,S)
S
S
f(S)=0
f(S)=1
V
R3
R1
R2
Primale:
Duale:
min cT x
max bT y
Ax b
s.t.
x0
s.t.
AT y c
y0
Il valore di una qualsiasi soluzione duale ammissibile è un lower
bound al valore di una qualsiasi soluzione primale ammissibile
Teo 1: Se x ed y sono soluzioni ammissibili rispettivamente del primale e del
duale, allora cTx ≥ bTy
m
m
m
n
c x ci xi Aij y j xi Aij xi y j b j y j bT y
i 1
i 1 j i
j 1 i i
j 1
n
T
n
i, o xi 0 oppure
Condizione primale:
m
A y
j i
j , o y j 0 oppure
Condizione duale:
Condizione duale α-approssimata:
ij
j , o y j 0 oppure
n
A
i i
ij
j
ci .
xi b j .
n
A x
i i
ij
i
bj .
Teo 2: Se x ed y sono soluzioni ammissibili rispettivamente del primale
e del duale, che soddisfano la condizione primale e la condizione duale
α-approssimata, allora x è una soluzione α-approssimata del primale
Dim :
cT x ( AT y )T x yT Ax yT b
Ma per il Teo 1 yTb è dell’ottimo
del primale, cTx*
cT x cT x *
xPLI
xRL
yD
xRL
2
yD