Modelli e Algoritmi per la Logistica Lezione 4 Formulazioni e Formulazioni Ottime Prof. Carlo Mannino Prof. Antonio Sassano Dipartimento di Informatica e Sistemistica Università di Roma “La Sapienza” A.A. 2006-2007
P è una FORMULAZIONE di S Formulazione Lineare min {cTx : xÎ S} Problema di PL01: P = {xÎ Rn: Ax < b} POLIEDRO con (AÎ Rmn, bÎ Rm) P è una FORMULAZIONE di S P Ç {0,1}n =S Un poliedro P è una formulazione se e solo se - contiene tutti i vettori di S - non contiene alcun vettore di {0,1}n - S Posso avere infinite formulazioni dello stesso problema di PL01
“Lower Bounds” (approssimazioni inferiori) min {cTx: xÎ S} Problema di PL01: P è una FORMULAZIONE di S P Ç {0,1}n =S min {cTx: xÎ S} = min {cTx: xÎ P Ç {0,1}n} = cTx* = z* > min {cTx: xÎ P}= LB(P) LB(P) z* Valore della Soluzione Ottima del Problema di PL01 Problema di PL (Rilassamento Lineare) LB(P) z* LB(P) “Lower Bound” per z*
Lower Bound = Certificato di Qualità min {cTx: xÎ S} Problema di PL01: LB(P) min {cTx: xÎ S} = z* Calcolare z* è (di solito) difficile Calcolare LB(P) è facile (Simplesso) Se conosciamo una soluzione ammissibile x°S (di valore z°=cTx° ) LB(P) fornisce una certificazione di qualità per x°. LB(P) z° z* “gap” gap x° cTx decrescente “gap” nullo x° ottimo per PL01
Lower Bounds ... riassumendo min {cTx: xÎ S} Problema di PL01: LB(P) min {cTx: xÎ S} = z* Calcolare z* è difficile Calcolare LB(P) è facile (Problema di Programmazione Lineare) Trovare una soluzione x°S è (di solito) facile (Euristiche) Il “gap” cTx° - LB(P) certifica la qualità di x° piccolo “gap” = buona qualità di x° “gap” nullo = x° ottimo per PL01 S ammette molte formulazioni alternative Il “gap” dipende dalla formulazione P Come classificarle (e sceglierle) ?
Criteri di qualità delle Formulazioni (1) No. disequazioni di Ax<b ? ; No. variabili ? ; facilità di calcolo ? Qualità = “piccolo gap” = massimo “lower bound CRITERIO 1: P1 migliore di P2 LB( P1) > LB(P2) Problema: Dipendenza dalla funzione obiettivo LB(P1) > LB(P2) P1 P2 cTx dTx LB(P2) > LB(P1) P1 migliore di P2 Se utilizzo cTx P2 migliore di P1 Se utilizzo dTx
Criteri di qualità delle Formulazioni (2) Il criterio di qualità deve essere indipendente dalla funzione obiettivo (che non è prevedibile a priori) CRITERIO 2: P1 migliore di P2 LB( P1) > LB(P2) per ogni cÎ Rn Equivalente a: CRITERIO 3: P1 migliore di P2 P1 Í P2 Esiste una formulazione contenuta in ogni altra ? PS=conv(S) Í P " formulazione P di S Formulazione ottima
x° soluzione ottima del PL01 Formulazione Ottima z*= min {cTx : xÎ S} Problema di PL01: PS =Conv(S) = {xÎ Rn: Ax < b} POLIEDRO (AÎ Rmn, bÎ Rm) S insieme dei vertici di PS (S=Ext(PS)) Ogni disequazione di Ax < b definisce una faccia massimale di PS (... se dim(PS)=n) z*=min {cTx : xÎ S}= min {cTx: xÎ Ext(PS)} = min {cTx : xÎ PS}= LB(PS)= cTx° x° soluzione ottima del rilassamento lineare z*= LB(PS) = cTx° (gap=0) cTx° = z* cTx xS x° Ext(PS)=S x° soluzione ottima del PL01
Rilassamenti di PS (I) Disponiamo di una descrizione (esplicita) di: PS ={xÎ Rn: Ax<b} per ogni problema di PL01 ? Ovvero: Conosciamo la matrice A e il vettore b ? Dove “conoscere” significa: conoscere i coefficienti oppure avere una regola che consente di calcolare i coefficienti di ogni riga della matrice (A,b) Sfortunatamente NO ! Quasi sempre conosciamo solo alcune (poche) righe di (A,b) che definiscono una formulazione di S P ={xÎ Rn: Dx < d} P Ç {0,1}n =S A D d ? b
Esempio di PS S={ y{0,1}5: 7y1 + 6y2 + 5y3 + 3y4 + 2y5 11} PS ={ y R5 : Ay< b, y > 05} Regola di costruzione di un “tipo” di riga di A: Se la somma dei coefficienti di k variabili è maggiore di 11 allora al più k-1 di esse possono essere poste ad 1. Famiglia di disequazioni di PS
Rilassamenti di PS (II) Non disponiamo di una descrizione di PS per ogni problema di PL01. Disponiamo di Rilassamenti di PS , ovvero: Poliedri P ={xÎ Rn: Dx < d }) con le seguenti proprietà: Il poliedro P è una formulazione di S Il sistema Dx < d è costituito da alcune famiglie di disequazioni appartenenti al sistema Ax < b. Ciascun rilassamento produce un “lower bound” di z* : LB(P) = min {cTx: xÎ P} < z*
Esempio: Problema di Decisione (II) Due progetti A e B xÎS = min cA xA + cB xB Vantaggi cA e cB associati Risorse necessarie dA =5 e dB =7 Vincolo: risorse utilizzate < D =10 min cA xA + cB xB 5xA + 7xB < 10 1>xA, xB >0 xÎPN= Formulazione Naturale: xA xB Verifica: PN Ç {0,1}2 =S a) xÎS xÎPN (SÍPN Ç {0,1}2) PN b) xÎPN Ç {0,1}2 xÎS (PN Ç{0,1}2Í S) vincoli di “box”
Esempio: Problema di Decisione (III) xB Formulazione Naturale: min -5/3 xA - 11 xB 5xA + 7xB < 10 1>xA, xB >0 xÎPN= PN xA Formulazione Ottima: min -5/3xA - 11 xB xA + xB < 1 1>xA, xB >0 xÎPS= Vincolo logico: uno solo dei due progetti può essere attivato -12 -11 -10 -9 -8 -7 PS
Esempio: Sottografo s-t Connesso di Peso Minimo c1t=2 cs3=2 ct4=3 Pesi cuv per ogni uvÎE Grafo G(V,E) con due nodi speciali s e t: 4 1 2 t 3 s å cuv uvÎF Peso di un insieme FÍ E : c(F) = Trovare il sottoinsieme di archi F* di peso minimo che contiene un cammino tra s e t: Sottografo s-t Connesso di Peso Minimo cuv > 0 F* insieme degli archi di un cammino
Esempio: Grafo s-t Connesso di Peso Minimo (II) S = vetttori di incidenza di un sottografo s-t connesso 4 1 2 t 3 s min {cTx: xÎ S Í {0,1}E } Problema di PL01: Quali condizioni deve soddisfare un vettore xÎ{0,1}E per essere il vettore di incidenza di un sottografo s-t connesso ? Formulazione ?
4 1 2 t 3 s Taglio s-t Insieme di archi K la cui rimozione distrugge tutti i cammini da s a t 4 1 t Xs Xs = nodi non connessi ad s K s 2 3 Xs Xs = nodi connessi ad s (Xs , Xs ) partizione di V t Ï Xs
F contiene s-t cammino P Teorema (4.1): (caratterizzazione dei grafi s-t connessi) Un insieme di archi F è un sottografo s-t connesso se e solo se F ha intersezione non vuota con ogni taglio s-t. Solo se F s-t connesso F contiene s-t cammino P K taglio s-t K P K F Se (per assurdo) Ogni Taglio s-t contiene arco di F F non è s-t connesso ma contraddizione F non contiene gli archi di un cammino s-t Xs = nodi connessi ad s con archi di F s Xs Xt = nodi non connessi ad s con archi di F t Xt Archi da Xs a Xt definiscono un taglio s-t s Xs ; t Xt ; s Ï Xt ; t Ï Xs (Xs , Xt ) partizione di V Nessun arco di F da Xs a Xt
Formulazione: Grafo s-t Connesso di Peso Minimo xFÎ S (vettore di incidenza sottografo s-t connesso F) K F taglio s-t K (Ogni taglio s-t contiene archi di F) 4 1 2 t 3 s K Se considero i vettori di incidenza Es. xFÎ S (xF)T (xK) 1 taglio s-t K å xe xKe > 1 eÎ E å xe > 1 eÎ K xÎ S (x)T (xK) 1 taglio s-t K
Formulazione: Grafo s-t Connesso di Peso Minimo xFÎ S Ogni taglio s-t contiene un arco di F Quindi: xÎ S å xe > 1 per ogni taglio s-t K eÎK eÎK min cx å xe > 1 K taglio s-t 1 xe > 0 e Î E xÎP= P è una Formulazione (formulazione ottima) Il numero di disequazioni (vincoli) è enorme (|V|=120 1036) Come risolvere il problema di PL? METODO DEL SIMPLESSO DINAMICO