90 likes | 230 Views
Modelli e Algoritmi della Logistica Lezione – 1 4 Ascesa Duale – Idea base. ANTONIO SASSANO. Università di Roma“La Sapienza” Dipartimento di Informatica e Sistemistica. Roma, 25-11-99. min { c T x: x Î P Ç {0,1} n }. Problema di PL01:.
E N D
Modelli e Algoritmi della Logistica Lezione – 14 Ascesa Duale – Idea base ANTONIOSASSANO Università di Roma“La Sapienza” Dipartimento di Informatica e Sistemistica Roma, 25-11-99
min{cTx: xÎPÇ{0,1}n} Problema di PL01: P = {xÎ Rn: Ax > b, x > 0n} formulazione (Primale) mincTx Ax > b x > 0n (Duale) maxbTy ATy < c y > 0m Dualità: Y = { xÎP Ù yÎY bTy< cTx Teorema Debole: bTy< cTx* ogni soluzione duale yÎY definisce un “lower bound” Metodo di Ascesa Duale min{cTx: xÎP}= cTx* “lower bound”
å fj xj + å å cij yij min (PRIMALE) jÎ J iÎ I jÎ J å yij =1 iÎ I (zi ) jÎ J xj - yij> 0iÎ I jÎ J (uij ) yij> 0 xj >0 iÎ I jÎ J å zi max (DUALE) iÎ I zi - uij< cij iÎ I jÎ J (yij ) å uij< fj jÎ J (xj ) iÎ I uij> 0 iÎ I jÎ J
g(z,u)=å zi max (DUALE) iÎ I uij> 0 iÎ I jÎ J Per ogni possibile soluzione ammissibile duale (z,u): g(z,u)“lower bound” (Teorema della Dualita’ Debole) zi - uij< cij iÎ I jÎ J Soluzione duale uij=0; zi=min{cij} é ù 12 13 6 0 1 ê ú jÎ J 8 4 9 1 2 å uij< fj jÎ J ê ú ê ú 2 6 6 0 1 = c ê ú iÎ I 3 5 2 10 8 ê ú ê ú 8 0 5 10 8 ê ú 2 0 3 4 1 ë û ESEMPIO (LB1): g(z,u)=3
å zi max (DUALE) iÎ I zi < cij +uijiÎ I jÎ J [cij+uij] = å uij< fj jÎ J iÎ I uij> 0 iÎ I jÎ J Cosa accade se uij¹ 0 ?
Soluzione iniziale: uij=0 Þzi=min{cij} [cij+uij] = jÎ J - Minimo della riga 2 Þ c24=1 IDEA ! Incrementando il valore di uij corrispondente al minimo di riga fino al minimo successivo si incrementa della stessa quantita’ il valore di zi ESEMPIO - Minimo successivo della riga 2 Þ c25=2 - Incremento di 1 il valore u24Þ u24=1 Þ z2=2
Per ognijÎ J il vincoloå uij< fj non puo’essere violato ! iÎ I La somma delle componenti di u in ogni colonna deve essere minore del costo di attivazione del corrispondente impianto ( fj ) [cij+uij] = • Di quanto possiamo incrementare le componenti di u ?
- Ogni riga k ha un minimo di riga nella componente j(k) - s(k)= min {ckj+ukj}minimo successivo della riga k jÎ J-{j(k)} -dk= s(k) - (ck j(k)+uk j(k))(massimo incremento di riga) - Dj = fj -å uij(massimo incremento di colonna) iÎ I - k = 2 - j(k) = 4 - s(k) = 2 - dk= 2-2=0 -Dj= 4-1=3 [ 4 3 1 4 7 ] IDEA BASE DELLA PROCEDURA DI ASCESA DUALE Ad un generico passo:
IDEA BASE DELLA PROCEDURA DI ASCESA DUALE Ad un generico passo: - Ogni riga k ha un minimo di riga nella componente j(k) • LB=å zk kÎ I - Una riga k e’BLOCCATAse Dj(k)=0odk=0 - Scegli la riga kNON BLOCCATA con valore massimo della quantita’: Vk =min(Dj(k) ,dk) - Incrementa il valore diukj(k) della quantita’ Vk: Quando tutte le righe sono bloccate, poni: • Zk = (ck j(k)+uk j(k))per ogni kÎI