Programmazione Intera
Poliedro P e insieme X dei punti interi Max z = 2x1 + 3x2 s.a 1.3x1 + 3x2 9 3x1 + 0.9x2 18 x1 , x2 0 interi f.o. B Vertice ottimo continuo Punto ottimo intero D A z = 23.89 P z = 20 C
Formulazioni equivalenti e nocciolo convesso Vertice ottimo continuo Punto ottimo intero P x1 x2 P = {x 0 : Ax b} P^ = {x 0 : A^x b^} P' P^ Nocciolo convesso
Piano di taglio Tx b0 1) Tx* b0 2) Tx b0 x S f.o. x2 x*
Piano di taglio Tx b0 1) Tx* b0 2) Tx b0 x S f.o. x2 x* P
Piano di taglio Tx b0 1) Tx* b0 2) Tx b0 x S x2 x* f.o. P
Piano di taglio Tx b0 1) Tx* b0 2) Tx b0 x S x2 x* f.o. P
Piano di taglio Tx b0 1) Tx* b0 2) Tx b0 x S x2 x* f.o. P
Piano di taglio Tx b0 1) Tx* b0 2) Tx b0 x S x2 x* f.o. P
Albero delle soluzioni Insieme delle soluzioni S0 Sottoinsieme S1 Sottoinsieme S2
Albero di ricerca best-first 1 S1 S2 2 3 S12 S11 4 5 S121 S122 6
Albero di ricerca depth-first Insieme S0 Sottoinsieme S1 Sottoinsieme S11 Sottoinsieme S111
Albero di ricerca depth-first 1 S1 S2 6 2 S11 S12 5 3 S111 4 S112
Un problema di P.L. intera x1 x2 z Max z = 2x1 + 3x2 s.a 1.3x1 + 3x2 9 3x1 + 0.9x2 18 x1 , x2 0 interi P z*c = 23.89 x*1 = 4.51 x*2 = 4.95 (S1) Max z = 2x1 + 3x2 s.a 1.3x1 + 3x2 9 3x1 + 0.9x2 18 x1 4 x1 , x2 interi (S2) Max z = 2x1 + 3x2 s.a 1.3x1 + 3x2 9 3x1 + 0.9x2 18 x1 5 x1 , x2 interi
Sottoinsiemi S1 e S2 esaminati dall’algoritmo Max z = 2x1 + 3x2 s.a 1.3x1 + 3x2 9 3x1 + 0.9x2 18 x1 4 x1 , x2 interi (S2) Max z = 2x1 + 3x2 s.a 1.3x1 + 3x2 9 3x1 + 0.9x2 18 x1 5 x1 , x2 interi x1 x2 P S1 z x1 x2 P S2 z
Sottoinsiemi S1 e S2 esaminati dall’algoritmo Max z = 2x1 + 3x2 s.a 1.3x1 + 3x2 9 3x1 + 0.9x2 18 x1 4 x1 , x2 interi (S2) Max z = 2x1 + 3x2 s.a 1.3x1 + 3x2 9 3x1 + 0.9x2 18 x1 5 x1 , x2 interi (S1) x1* = 4 x2* = 4.73 z* = 22.2 (S2) x1* = 5 x2* = 3.3 z* = 20.0 x1 x2 P S2 S1 z 4.7 3.3
Sottoinsiemi S11 e S12 esaminati dall’algoritmo (S1) Max z = 2x1 + 3x2 s.a 1.3x1 + 3x2 9 3x1 + 0.9x2 18 x1 4 x1 , x2 interi x1 x2 P S11 4 z (S11) Max z = 2x1 + 3x2 s.a 1.3x1 + 3x2 9 3x1 + 0.9x2 18 x1 4 x2 4 x1 , x2 interi (S12) Max z = 2x1 + 3x2 s.a 1.3x1 + 3x2 9 3x1 + 0.9x2 18 x1 4 x2 5 x1 , x2 interi
Sottoinsiemi S11 e S12 esaminati dall’algoritmo Max z = 2x1 + 3x2 s.a 1.3x1 + 3x2 9 3x1 + 0.9x2 18 x1 4 x2 4 x1 , x2 interi (S12) Max z = 2x1 + 3x2 s.a 1.3x1 + 3x2 9 3x1 + 0.9x2 18 x1 4 x2 5 x1 , x2 interi (S11) x1* = 4 x2* = 4 z* = 20 (S12) Non ammette soluzioni ammissibili perché il suo dominio di definizione è vuoto x1 x2 P S11 4 z 5 4
La soluzione di S11 è soluzione del problema generale (S11) Max z = 2x1 + 3x2 s.a 1.3x1 + 3x2 9 3x1 + 0.9x2 18 x1 4 x2 4 x1 , x2 interi x1 x2 P S11 z (S11) x1 = 4 x2 = 4 z = 20 Il valore di z diventa il limite inferiore della f.o. del problema intero originario. z = 20 LI = 20
Albero delle soluzioni generato dall’algoritmo Branch and Bound LS = 23.89 LS = 22.2 S1 S2 LS = 20.0 = LS = 20.0 S11 S12 Soluzione ammissibile = LI = 20.0
Problema dello zaino (Knapsack problem) Parametri di ingresso: · il vettore dei pesi dei prodotti p = ( p1,..., pn) · il vettore dei valori unitari dei prodotti v = (v1,..., vn) · il vettore delle disponibilità n = (n1,..., nn) · il parametro di peso massimo b b pj, j = 1, …, n Il modello generale: Max z = j = 1, n vj xj s.a j = 1, n pj xj b xj nj j = 1,…, n xj 0 intero j = 1,…, n
Problema dello zaino binario Il modello generale: Max z = j = 1, n vj xj s.a j = 1, n pj xj b xj nj j = 1,…, n xj 0 intero j = 1,…, n Il modello dello Zaino binario: Max z = j = 1, n vj xj s.a j = 1, n pj xj b xj {0, 1} j = 1,…, n
Problema dello zaino binario Un esempio Il modello dello Zaino binario: Max z = j = 1, n vj xj s.a j = 1, n pj xj b xj {0, 1} j = 1,…, n Il modello: Max z = 32xA + 36xB +15xC +20xD + 5xE s.a 16xA + 9xB + 5xC + 8xD + 5xE 32 xA, xB, xC, xD, xE = 0/1
Problema dello zaino binario Un esempio Il modello: Max z = 32xA + 36xB +15xC +20xD + 5xE s.a 16xA + 9xB + 5xC + 8xD + 5xE 32 xA, xB, xC, xD, xE = 0/1 Valore Peso Valore/peso A B C D E Peso Valore Valore/peso B 36 9 4 C 15 5 3 D 20 8 2.5 A 32 16 2 E 1 32 16 2 36 9 4 15 5 3 20 8 2.5 5 5 1
Problema dello zaino binario Un esempio LS = 91 z = 76 S1 xA = 0 S2 xA = 1 LS= 88 Soluzione intera = LS= 85 S21 xD = 0 S22 xD = 1 LS= 84 z = 83 S211 xE = 0 LS= 79 S212 xE = 1 LS= 70 S221 xB = 0 S222 xB = 1 Soluzione intera = LS < zc = LS < zc = Problema inammissibile =