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