Università degli Studi di Roma Tor Vergata Corso di Laurea in Ingegneria dei Modelli e dei Sistemi Il problema dell’albero di Steiner STUDENTE RELATORE Daniele Paoli Gianpaolo Oriolo
SOMMARIO DEFINIZIONI PRELIMINARI DEFINIZIONE: IL PROBLEMA DI STEINER Albero Minimum Spanning Tree DEFINIZIONE: IL PROBLEMA DI STEINER PROPRIETÀ DEL PROBLEMA Metrico / non metrico Special cases Algoritmo approssimato
. . . . . . . . . . DEFINIZIONI PRELIMINARI ALBERO Un grafo G(V,E) è un albero se è connesso e non contiene cicli. . . . . . . . . . . MST (Minimal Spanning Tree) DATI: Un grafo G(V,E) connesso Una funzione di costo c non negativa associata ad ogni arco TROVARE: Il sottoinsieme di E che connette tutti i nodi di G IN MODO CHE: Il costo totale, rispetto a c, sia minimo Però - se il nostro obiettivo è connettere a minimo costo alcuni punti - in molti casi non è la soluzione migliore che possiamo ottenere, visto che.... ed attacchi con l'esempio del triangolo . Se però, restando il nostro obbiettivo quello, abbiamo la possibilità di aggiungere alcuni vertici al grafo di partenza, c’è la possibilità trovare una soluzione migliore.
. . . . . . . SUL PIANO l l l a l l a a l CMST = 2 l 14%!!! RISPARMIO DEL 14%!!! . CNEW = 3• a = (√3/2 ) CMST Per vederlo possiamo vedere un esempio in cui tutto il grafo giace sul piano euclideo e la funzione costo è la distanza tra i punti. Consideriamo un grafo di tre nodi, posti nei vertici di un triangolo equilatero……………….. Questo è solo un esempio..in raltà questo concetto è più generale e puo essere esteso . l a l . . a a l
IL PROBLEMA DELL’ALBERO DI STEINER DATA: Una rete (G,c) dove c è una funzione di costo non negativa sugli archi I vertici del grafo G sono partizionati in due insiemi, R (Richiesti) e S (Steiner) TROVA : L’ albero di Steiner minimo, cioè un albero che connetta tutti i vertici richiesti e un qualunque subset S’ dei vertici di Steiner IN MODO CHE: Il costo totale, rispetto a c, sia minimo . In particolare noi studiamo the graph theoretic version del problema di Steiner: the steiner network problem . . . . . . . . . .
DEF: Problema di Steiner metrico Un problema di Steiner per un grafo completo nel quale i costi rispettano la disuguaglianza triangolare, i.e., per ogni tripletta di vertici del grafo i, j e k, si ha c(i,j) ≤ c (i,k) + c(k,j) , è detto metrico. PROPRIETA’: Senza perdere in generalità, possiamo restringerci a studiare i problemi di Steiner metrici
Lemma C’è una trasformazione, in tempo polinomiale, da un’istanza del problema dell’albero di Steiner I per il grafo G(V,E) a un’istanza I’ del problema dell’albero di Steiner metrico per G’ che preserva il costo della soluzione ottima. Dim: (T T’) Sia G’ il grafo non direzionato completo sul set di vertici V. Definiamo il costo del l’arco (i,j) in G’come il costo del minimo path i-j in G. Chiaramente, cG’ (i,j) ≤ cG (i,j), cG’ OPT ≤ cG OPT (T’ T ) Rimpiazziamo ogni arco di T’ con il corrispondente path: ottieniamo un sottigrafo di G. In questo nuovo sottografo tutti i vertici Richiesti sono connessi, ma potrebbero contenere dei cicli => eliminiamo gli archi in modo da ottenere un albero, che è T. Chiaramente cG OPT = c(T) ≤ c(T’) = cG’ OPT
SPECIAL CASES S’= Ø MST │R│= 2 Path minimo tra i due vertici S’ fisso MST su R S’ │S│ fissa: Per ogni subset S’ si S calcoliamo MST per R S’. Il tempo di risoluzione sarà dell’ordine: Essendo │S│ costante, il tempo di risoluzione è polinomiale │S│ i │R│ fissa:
Lemma Sia G = (V,E) un grafo metrico il cui set dei vertici è l’unione disgiunta V = R U S di due subsets. Allora esiste un albero di Steiner minimo per la rete (G,c) che contiene al più r-2 punti di Steiner (dove r=│R│). Dim: Sia T l’albero di Steiner minimo per (G,c) contenente esattamente p punti di Steiner. Sia x ( risp y) il grado medio di un vertice in R ( risp S’) in T. Si ha r + p – 1 =│E│= ( rx + py ) / 2 Chiaramente, x ≥ 1 e y≥3 Allora si ha r + p – 1 ≥ ( r + 3p ) / 2, quindi p ≤ r – 2
Prendiamo tutti i sottoinsiemi S’ di S con cardinalità da 1 a r - 2 e │R│ fissa: Prendiamo tutti i sottoinsiemi S’ di S con cardinalità da 1 a r - 2 e calcoliamo l’ MST per R U R’. Come prima, il tempo di risoluzione sarà dell’ordine di Essendo r costante, il tempo di risoluzione è polinomiale │S│ i In tutti questi casi abbiamo visto che il problema di Steiner è risolvibile in tempo polinomiale. In generale, però, non è cosi, infatti: STEINER è classificato come un problema NP-completo ricorda (a voce) che NP-completo implica che "si congettura che non esistano algoritmi polinomiali per la sua risoluzione" ALGORITMI APPROSSIMATI: Dato un problema di minimizzazione, un algoritmo è approssimato se istanza del problema si ha
PROBLEMA: Stimare il rapporto tra la soluzione ottima del problema dell’albero di Steiner e il costo dell’ MST associato Per il problema di Steiner Geometrico ( funzione di costo la distanza Euclidea) si trova Per il problema di Steiner Metrico si ha specifica (almeno a voce) che i bound ti restituiscono algoritmi alpha-approssimati per lo ST Vediamolo:
. . Dobbiamo far vedere che il costo di un MST su R è al più 2 • OPT. Consideriamo un albero di Steiner di costo OPT. . . Sdoppiando i suoi archi troviamo un grafo che connette tutti i vertici di R e qualche vertice di Steiner, e sul quale è possibile trovare un tour di Eulero, che è un cammino che percorre tutti gli archi una e una sola volta.
. . Il costo del tour Euleriano è 2•OPT. Successivamente otteniamo sui vertici di R un ciclo Hamiltoniano, cioè un cammino che tocca tutti i vertici del grafo una e una sola volta, attraversando il tour Euleriano e “short-cutting” i vertici di Steiner e quelli in R già visitati: . . Per la disuguaglianza triangolare, le contrazioni cha abbiamo fatto non aumentano il costo del tour. Cancellando un arco del ciclo cosi’ ottenuto otteniamo un path che percorre tutti i nodi di R e ha costo al più 2•OPT. Questo path è anche uno spanning tree. Quindi l’ MST su R ha costo al più 2•OPT.
ESEMPIO THIGHT Consideriamo un grafo con n vertici richiesti e un solo vertice di Steiner. . . 2 . . . 2 2 1 1 1 1 . . 1 1 2 2 2 In questo grafo, Cost (MST) = 2 • (n-1) OPT = n
Algoritmi approssimati RIEPILOGANDO: Il problema di Steiner è una generalizzazione del problema di albero ricoprente minimo 14% (Geometrico) Può migliorare la soluzione fino al 50% (Metrico) Algoritmi approssimati È in generale un problema np-completo In alcuni casi, i “Special cases”, il problema può essere risolto in maniera polinomiale