Algoritmi e Strutture Dati II: Parte B Anno Accademico Lezione 8

Documenti analoghi
Algoritmi e Strutture Dati II: Parte B Anno Accademico Lezione 5

Algoritmi e Strutture Dati II: Parte B Anno Accademico Lezione 7

Algoritmi e Strutture Dati II: Parte B Anno Accademico Lezione 1

Note per la Lezione 17 Ugo Vaccaro

Si consideri il seguente tableau ottimo di un problema di programmazione lineare

Formulazioni. Consideriamo il seguente problema di Knapsack 0-1. max (5x x 2. ) st 3x x 2. < 6 x {0,1} 2

1) Data la seguente istanza di TSP (grafo completo con 5 nodi): c 12 = 52; c 13 = 51; c 14 = 40; c 15 = 53; c 23 = 44;

Il teorema di dualità forte

RICERCA OPERATIVA (a.a. 2012/13) Nome: Cognome: Matricola:

RICERCA OPERATIVA (a.a. 2011/12) Nome: Cognome: Matricola:

Cammini minimi fra tutte le coppie

Dualitá in Programmazione Lineare e alcune conseguenze

Algoritmi e Strutture Dati II: Parte B Anno Accademico Lezione 4

RICERCA OPERATIVA (a.a. 2017/18) Nome: Cognome: Matricola:

Complessità computazionale

3.2 Rilassamenti lineari/combinatori e bounds

Possibile applicazione

Matematica Computazionale(6cfu) Ottimizzazione(8cfu) (a.a , lez.3)

Condizioni di Karush-Kuhn-Tucker e Programmazione Lineare

COMPITO DI RICERCA OPERATIVA. max x 1 + x 2 x 1 + x 2 1 x 1 + x 2 2. Lo si trasformi in forma standard e se ne determini una soluzione ottima.

min det det Allora è unimodulare se e solo se det 1, 1, 0 per ogni sottomatrice quadrata di di qualsiasi dimensione.

Teoria dell Informazione II Anno Accademico Lezione 6-7

Algoritmi Avanzati Soluzioni dello scritto del 2 febbraio 2004 (appello straordinario)

RICERCA OPERATIVA (9 cfu)

Esercizio 1. Variabili decisionali:

Ottimizzazione Discreta Esercizi V: Soluzioni

Algoritmi e Strutture Dati II: Parte B Anno Accademico Lezione 3

RICERCA OPERATIVA (a.a. 2018/19)

Se il grafo è bipartito, un accoppiamento viene anche detto assegnamento.

Parte V: Rilassamento Lagrangiano

4. METODI DUALI DEL SIMPLESSO

Parte IV: Matrici totalmente unimodulari

Domini di funzioni di due variabili. Determinare i domini delle seguenti funzioni di due variabili (le soluzioni sono alla fine del fascicolo):

TEORIA della DUALITÀ. Una piccola introduzione. Ricerca Operativa. Prof. R. Tadei. Politecnico di Torino. Teoria della Dualità / 1.

Università degli Studi di Roma La Sapienza

RICERCA OPERATIVA (a.a. 2015/16) Nome: Cognome: Matricola:

Università degli Studi di Salerno. Note per il Corso di Algoritmi e Strutture Dati II Parte B. Docente: Ugo Vaccaro

Problema di flusso massimo

RICERCA OPERATIVA. Stock bamboline automobiline libri peluches costo (euro)

Sommario della lezione

Ricerca Operativa. G. Liuzzi. Lunedí 20 Aprile 2015

Figura 1: 1) Si scriva la formulazione del problema come problema di PLI (con un numero minimo di vincoli) e la matrice dei vincoli.

Sommario della lezione

Introduzione al Column Generation Caso di Studio: il Bin Packing Problem

Ottimizzazione Combinatoria 2 Presentazione

Lezione 4 Ugo Vaccaro

La dualità nella Programmazione Lineare

Sull algoritmo di ascesa duale per il problema della localizzazione di impianti

Lezione 11 Ugo Vaccaro

Matroidi, algoritmi greedy e teorema di Rado

Programmazione Matematica / A.A Soluzioni di alcuni esercizi

A T x b x 0. che chiameremo problema primale, possiamo associare ad esso un altro problema di PL, detto problema duale, definito come segue.

Teoria della Dualità: I Introduzione

Lezione n 16. Lezioni di Ricerca Operativa. Corso di Laurea in Informatica Università di Salerno. Prof. Cerulli Dott.ssa Gentili Dott.

RICERCA OPERATIVA (a.a. 2015/16) Nome: Cognome: Matricola:

RICERCA OPERATIVA (a.a. 2016/17) Nome: Cognome: Matricola:

Quinto appello 27/6/ = 4. B b B = 2 b N = 4

Esame di Ricerca Operativa - 18 aprile 2007 Facoltà di Ingegneria - Udine - CORREZIONE -

RICERCA OPERATIVA (a.a. 2018/19) Nome: Cognome: Matricola:

Grafi e reti di flusso

Ottimizzazione su grafi: massimo flusso (parte 1) Ottimizzazione su grafi:massimo flusso (parte 1) p. 1/33

Metodi e Modelli per l Ottimizzazione Combinatoria Ripasso sulla teoria della dualità in programmazione lineare

Metodi e Modelli per l Ottimizzazione Combinatoria Ripasso sulla teoria della dualità in programmazione lineare

Parte II: Ottimalità, rilassamenti e bound

Progettazione di algoritmi. Reti di flusso (2)

Teorema 1. Il problema AP è N P-complete.

RICERCA OPERATIVA. Tema d esame del 04/12/2008 (Simulazione 2)

Il modello duale. Capitolo settimo. Introduzione

Lunghezza media. Teorema Codice D-ario prefisso per v.c. X soddisfa. L H D (X). Uguaglianza vale sse D l i. = p i. . p.1/27

ELEMENTI DI LOGICA MATEMATICA LEZIONE VII

Soluzione. 2.1 Pianificazione multiperiodo della produzione energetica

RICERCA OPERATIVA. Tema d esame del 04/03/2008 (Simulazione)

Sommario. Problemi di decisione, di ricerca e di ottimizzazione: come sono legate le complessità delle diverse versioni dei problemi?

4.1 Localizzazione e pianificazione delle base station per le reti UMTS

Tecniche di Decomposizione per Programmazione Lineare Intera (Mista)

COMPITO DI RICERCA OPERATIVA. max x 1 + 2x 2 + x 3 x 1 x 2 + x 3 = 1 2x 1 + 3x 2 + x 4 = 2

Parte IV: Rafforzamento di formulazioni e algoritmo dei piani di taglio

Il rilassamento Lagrangiano nella soluzione di problemi di programmazione lineare intera

Programmazione Matematica / A.A Soluzioni di alcuni esercizi

Note per la Lezione 18 Ugo Vaccaro

Problema del Bin Packing

Le condizioni di Karush-Kuhn-Tucker

2.1 Pianificazione multiperiodo della produzione energetica. 2.2 Confronto tra formulazioni per il problema dell albero di supporto di costo minimo

FACOLTA DI ECONOMIA ESAME SCRITTO DI RICERCA OPERATIVA. Verona, 6 Giugno 1996

Algoritmi Approssimanti per -TSP

Note per la Lezione 6 Ugo Vaccaro

Sommario. Problemi di decisione, di ricerca e di ottimizzazione: come sono legate le complessità delle diverse versioni dei problemi?

Algoritmi greedy. Gli algoritmi che risolvono problemi di ottimizzazione devono in genere operare una sequenza di scelte per arrivare alla soluzione

Esercitazione 6 Ancora sul Network Flow

RICERCA OPERATIVA (a.a. 2008/09) Nome: Cognome: Matricola:

Esame di Ricerca Operativa - 21 gennaio 2009 Facoltà di Architettura - Udine - CORREZIONE -

Introduzione ai grafi

Massimo flusso e matching

1 Il metodo dei tagli di Gomory

Problemi. sbj. x 0, x intero

COMPITO DI RICERCA OPERATIVA APPELLO DEL 07/04/04

Algoritmi e Strutture Dati (Mod. B) Algoritmi Greedy (parte I)

COMPITO DI RICERCA OPERATIVA. max 8 5x 1 3x 2 x 3 = 1 + 4x 1 + x 2 x 4 = 1 x 1 + x 2 x 5 = 5 x 1 x 2

Transcript:

Algoritmi e Strutture Dati II: Parte B Anno Accademico 2004-2005 Docente: Ugo Vaccaro Lezione 8 Ricordiamo ancora una volta il nostro meta-algoritmo per il progetto di algoritmi di approssimazione: 1. Formula il problema in questione come un problema di PL a vincoli interi 2. Rilassa il problema, sostituendo i vincoli di interezza con semplici vincoli di non negatività 3. Usa la soluzione al problema rilassato per ottenere una soluzione al problema a vincoli interi, di valore prossimo all ottimo Nelle lezioni scorse abbiamo visto vari metodi per implementare il passo 3. In questa lezione ne vedremo un ulteriore, abbastanza simile all ultimo metodo visto ed applicato nella lezione scorsa. Intendiamo riferirci all uso diretto del duale e delle condizioni complementari di slackness, cosí come usate per progettare un algoritmo di approssimazione per Hitting Set. La differenza con il metodo che vedremo oggi consiste nel fatto che esso, invece di risolvere innanzitutto il sistema duale e poi usare la sua soluzione e le condizioni complementari di slackness per costruire una soluzione intera al primale, costruisce passo passo una soluzione al duale, imponendo che la condizione complementare di slackness duale sia sempre soddisfatta. Il metodo risulta essere maggiormente flessibile di quello visto nella lezione scorsa, in quanto nella costruzione della soluzione del duale (visto che la realizziamo noi) ci permette in linea teorica di poter conto di addizionali informazioni che potremmo eventualmente avere sulla struttura del problema di ottimizzazione sotto esame. Inotre risulta essere più veloce in pratica, in quanto non richiede la soluzione preliminare di un sistema di PL. Useremo la formulazione di PL del problema in questione solo come una guida per il progetto e l analisi dell algoritmo. Il metodo generale (che va sotto il nome di Primale-Duale) lo possiamo descrivere nella Figura 1 appresso presentata. Per illustrare l applicazione dello schema della Figura 1 ad algoritmi di approssimazione, applichiamo il metodo al primo problema di ottimizzazione visto in questo corso: Vertex Cover. Ricordiamo il problema VERTEX COVER Input: grafo G = (V, E), V = {v 1,..., v n }, E = {e 1,..., e m } Output: sottoinsieme S V di minima cardinalità S tale che (u, v) E valga {u, v} S. 1

y 0, x 0 Esiste x soluzione intera ammissibile per il primale e slack. complementare a y? SI Stop Output x NO Incrementa y mantenendo la sua ammissibilita Figure 1: Schema generale per Primale Duale La sua formulazione via PL è : x v (1) v V x u + x v 1 e = (u, v) E (2) x v {0, 1} u V. (3) Il corrispondente sistema rilassato è x v (4) v V x u + x v 1 e = (u, v) E (5) x v [0, 1] u V. (6) Per derivare il duale di (4) introduciamo una variabile duale y e per ogni vincolo (5), ottenendo il sistema massimizzare y e (7) e E e:v e y e 1 v V (8) y e [0, 1] e E. (9) 2

É istruttivo, per un momento, osservare una particolare classe di soluzioni al sistema (7). Sia M un matching del grafo G, ovvero una collezione di archi disgiunti di G. Definiamo il vettore z = (z e1,..., z em ) come { 1 se ei M, z ei = 0 se e i / M. É semplice verificare che z è una soluzione ammissibile al sistema (7), in particolare che soddisfa i vincoli (8), proprio perchè, corrispondendo z ad un matching in G, su ogni vertice v V incide uno ed un solo arco di M. Pertanto, dal Teorema debole della dualità abbiamo che M = e E z e OP T, dove OP T è il valore della soluzione ottima al sistema di PL (1), ovvero OP T è la cardinalità di un Vertex Cover per G di cardinalità minima. Ritroviamo quindi, come conseguenza del Teorema della dualità debole, la limitazione inferiore alla cardinalità del VC di cardinalità minima derivato nella Lezione 1. Vediamo ora come è possibile derivare un algoritmo di approssimazione per Vertex Cover usando lo schema generale Primale-Duale illustrato nella Figura 1. Lo schema ci suggerisce di partire con una soluzione y ammissibile per il duale (7), in cui tutte le componenti sono poste a 0, ed una soluzione non ammissibile x al primale intero (1) in cui tutte le componenti sono poste a 0. Se x non è ammissibile (e fin quando lo sarà ), vuol dire che e = (u, v) E tale che il relativo vincolo (2) non è soddisfatto, ovvero vale x u + x v = 0. (10) Allora, sempre in accordo allo schema generale Primale-Duale della Figura 1, incrementiamo la corrispondente variabile duale y e il più possibile, mantenendo il rispetto dei vincoli del duale, ed in modo tale che il vincolo (8) sia soddisfatto con l uguaglianza. In altri termini, nel nostro caso specifico del Vertex Cover, stiamo ponendo y e = 1. Poichè lo schema generale Primale-Duale ci impone che le condizioni di slackness primali debbano essere sempre soddisfatte, dobbiamo porre anche x u = x v = 1, in quanto adesso i vincoli duali e:v e y e 1 sono soddisfatti con l uguaglianza sia per il vertice u che per il vertice v. In altre parole, stiamo mettendo sia il vertice u che il vertice v nella costruenda soluzione S per il problema del Vertex Cover. Iteriamo il procedimento: ogni qualvolta troviamo un vincolo nel primale intero che il vettore x non soddisfa ancora (ovvero, troviamo un qualche e = (u, v) E per cui x u + x v = 0), poniamo y e = 1 nella soluzione del duale, imponendo poi che le condizioni di slackness primali siano soddisfatte per x, cioè incrementiamo le componenti x u e x v a 1. 3

Prima o poi otterremo una soluzione intera x che soddisfa tutti i vincoli del primale (1), con x che soddisfa anche x v = ( ) y e x v (11) v V v V e:v e = ( ) x v y e (12) e E v e 2 e E y e (13) 2OP T R 2OP T (14) dove la uguaglianza (11) vale in quanto e:v e y e = 1 per costruzione, per tutti i vertici v per cui x v = 1; la uguaglianza (12) la si ottiene riorganizzando la somma; la diseguaglianza (13) vale in quanto il vettore x è ammissibile per il primale e quindi soddisfa tutti i vincoli di (1). Abbiamo quindi (ri)ottenuto un algoritmo di approssimazione con fattore 2 per il problema del Vertex Cover. Una analisi attenta di esso ci informa che l algoritmo appena ottenuto, mediante il metodo Primale-Duale, è perfettamente analogo a quello presentato nella Lezione 1. Infatti, nell algoritmo appena derivato noi inseriamo nella soluzione S, ad ogni passo dell algoritmo, entrambi i vertici u e v corrispondenti ad un arco e = (u, v) per cui abbiamo posto y e = 1 nel duale. D altra parte, il vettore y è sempre costretto ad essere una soluzione ammissibile a (7), ovvero deve rispettare i vincoli y e 1 v V. e:v e Questo implica che v V uno solo degli y e nella somma di sopra può assumere valore 1, cioè uno solo degli y e corrispondenti ad archi e incidenti su v può essere posto ad 1. Di conseguenza, l insieme A = {e : y e = 1} è una collezione di archi disgiunti (un matching), per ogni iterazione dell algoritmo. Al completamento dell algoritmo l insieme A è ovviamente un matching massimale, mentre la soluzione S prodotta dall algoritmo corrisponde evidentemente all insieme dei vertici incidenti sugli archi del matching massimale A. Applichiamo ora la tecnica Primale-Duale al problema del Set Cover. Ricordiamo la sua formulazione SET COVER Input: insieme U = {e 1,..., e n }, famiglia S = {S 1,..., S k }, con S i U, per i = 1,..., k; funzione costo c : S S c(s) R + ; Output: sottofamiglia S S di costo c(s ) = S S c(s) minimo tale che S S S U. 4

La sua formulazione via PL è La versione rilassata del sistema di PL è x(s)c(s) (15) S S x(s) 1 e U (16) S:e S x(s) {0, 1} S S. (17) x(s)c(s) (18) S S S:e S x(s) 1 e U (19) x(s) 0 S S. (20) Introducendo una variabile y e per ogni vincolo del problema otteniamo il programma duale massimizzare y e (21) e U e:e S y e c(s) S S (22) y e 0 e U. (23) Il seguente algoritmo implementa la strategia Primale-Duale per il problema del Set Cover. Algoritmo Primale-Duale per SET COVER I y e 0 e U While e U tale che e / j I S j do Sia l l indice per il quale il min h:e Sh {c(s h ) a S h y a } è raggiunto ɛ l c(s l ) a S l y a y e y e + ɛ l I I {l} Return I 5

Lemma 1 L algoritmo Primale-Duale ritorna un set cover. Dim. Ovvio, in quanto la condizione di terminazione per il ciclo While è proprio che si sia raggiunto un set cover. Lemma 2 L algoritmo Primale-Duale costruisce una soluzione y ammissibile per il duale. Dim. Procediamo per induzione sui cicli dell algoritmo. Il caso base è ovvio in quanto all inizio vale ovviamente a S h y e = 0 c(s h ), h = 1,... m. Per il passo induttivo, assumiamo induttivamente che entrando in una iterazione del ciclo While avevamo a S h y e c(s h ), h = 1,... m. (24) La sola variabile duale il cui valore è incrementato dall esecuzione del ciclo While è la variabile y e (dove e è un elemento per cui e / j I S j), pertanto tutte le diseguaglianze (24) per gli insiemi S h tali che e / S h rimangono inalterate e quindi continuano a valere. Se invece e S h, allora per la nostra scelta dell indice l abbiamo che y a + ɛ l = y a + (c(s l ) y a ) a S h a S h a S l y a + (c(s h ) y a ) a S h a S h = c(s h ) Pertanto, i vincoli del duale sono soddisfatti anche dopo l esecuzione del ciclo While, e quindi, per il principio di induzione, anche alla terminazione dell algoritmo. Lemma 3 Se j I allora e S j y e = c(s j ). Dim. Se in un qualche passo abbiamo aggiunto j a I, allora per come opera l algoritmo, abbiamo anche aumentato y e, per qualche e S j, tale da rendere il vincolo e S j y e c(s j ) soddisfatto con l uguaglianza. Teorema 1 L algoritmo Primale-Duale per Set Cover è un algoritmo di approssimazione con fattore di approssimazione f, dove f = max e U f(e), e f(e) = numero di insiemi S S che contengono e. Dim. Abbiamo SOL = c(s j ) j I = j I e S j y e 6

= e U y e {j : e S j } f e U y e f OP T dove la prima uguaglianza è per definizione, la seconda a causa del Lemma 3, la terza in quanto la variabile y e compare nella somma tante volte quanti sono gli insiemi S j che contengono il corrispondente e, la quarta per definizione di f, e l ultima per il Teorema della dualità debole. Concludiamo la lezione affermando che la tecnica Primale-Duale sembra essere a tutt oggi la metodologia più efficace per il progetto di algoritmi di approssimazione. Si è visto in tempi recenti che vari algoritmi derivati negli anni scorsi mediante procedimenti ad hoc, sono in realtà interpretabili come esempi di algoritmi Primale-Duale. Inoltre, in molti casi, la tecnica Primale- Duale ha prodotto algoritmi di approssimazione che risultano essere, a tutt oggi, i migliori sia in termini di fattore di approssimazione, che in termini di complessità computazionale. 7