programmazione lineare: un esempio Mix produttivo ottimo con risorse vincolate Materiale di studio: M. Fischetti, Lezioni di RO, Cap. 3. Libreria Progetto PD D. Bertsimas, Introduction to linear optimization, Cap 2. MIT Athena Scientific
2 modelli in produzione Modello AModello B
Disponibilita’ dei componenti 10 MODULI DISPLAY 18 MODULI di MEMORIA 12 MODULI di TRASMISSIONE 21 TASTIERINE 9 TASTIERE di NAVIGAZIONE 10 MICROCAMERE
Utilizzo dei componenti Modello A Modello B Componenti Display Tast navigazione Tastiere a 6 tasti Trasmissione Memoria MicroCamera GUADAGNO
Modello di PL Max 3 x A + 8 x B : x A + 2 x B 10a 1 2 x A + 2 x B 18a 2 x A + 3 x B 12a 3 2 x A + 3 x B 21a 4 x A 9a 5 x A 10a 6 x A, x B 0 In forma matriciale compatta Max cx: Ax b x 0
Rappresentazione geometrica della regione ammissibile xAxA xBxB a 1 : x A +2 x B 10 a 3 : x A +3 x B 12 a 2 : 2x A +2x B xA0xA0 xB0xB0 a 5 : x A 9 a 6 : x A 10 a 4 : 2x A +3 x B 21
Curve di iso-costo xAxA xBxB A 1 : x A +2 x B 10 A 3 : x A +3 x B 12 A 2 : 2x A +2x B c 3,3 cx=0 cx=16 cx=24 cx=32 cx=33 cx=34
Gradiente: vettore ortogonale all’iperpiano tangente alla curva di livello (se la funzione c(x) e’ lineare coincide con il vettore dei coefficienti non dipende dal punto in cui viene calcolato). Curva di isocosto: insieme dei punti che hanno lo stesso valore della funzione obiettivo (se la funzione c(x) e’ lineare, la curva di isocosto e’ un iperpiano)
Condizione di ottimo: c = y 1 a 1 +y 3 a 3, y 0 xAxA xBxB a 1 : x A +2 x B 10 a 3 : x A +3 x B C = [ 3, 8 ]
Condizione di ottimalita’: c appartiene al cono generato dai gradienti dei vincoli (attivi) a 1 e a 3 y R 2, y 0, tale che c T = y T dove a 1 =[1, 2], a 3 =[1,3] y risolve il sistema 1 1 y 1 3 con y y 2 8 y = a 1 a 2 -1 c = = a1a3a1a3 = vettori riga della matrice A L’unica soluzione del sistema si ottiene invertendo la sotto-matrice dei vincoli
Vertici (punti estremi) del politopo xAxA xBxB a 1 : x A +2 x B 10 a 3 : x A +3 x B 12 a 2 : 2x A +2x B (0,0) (0,4) (0,5) (6,3) (6,2) (8,1) (9,1) 0 (9,0) (9,½) (7.5, 1.5) Sono un sottonsieme dei punti di intersezione dei vincoli, alcuni dei quali si trovano al di fuori della regione ammissibile (politopo)
Idee base dell’algoritmo L’ottimo (se esiste finito) coincide con (almeno) un vertice del politopo Possiamo definire delle condizioni di ottimalita’ in base alla geometria dei vettori Per implementare un algoritmo dobbiamo fornire una descrizione algebrica dei vertici. Abbiamo osservato che siano i punti di intersezione dei vincoli che si trovano sulla frontiera del politopo. Forniamo un supporto teorico a queste intuizioni Prima occorre fare alcuni richiami per contestualizzare la programmazione lineare come caso particolare della programmazione convessa, di cui eredita tutte le proprieta’
Combinazione convessa di due punti x, y z= x + (1- )y, con [0,..1] combinazione convessa stretta per (0,..,1) Programmazione convessa Programmazione convessa richiami di
Generalizzando a n punti Dati k punti x 1,..,x k R n, il punto z in R n e’ combinazione convessa di x 1,..,x k se esistono k scalari 0, 1,.., k tali che i=1,k i x i = z
Altri tipi di combinazioni Combinazione affine ( + , R) Combinazione conica ( , 0, in R) Combinazione lineare ( , R)
Un insieme si dice convesso se contiene tutte le combinazioni convesse dei propri punti x y x y di insiemi convessi e’ convessa
Una funzione f:X→R si dice convessa se x,y X, [0,1], chiamando z = x + (1- )y la combinazione convessa di x e y, allora f (z) f(x) +(1- ) f(y) Le funzioni lineari sono funzioni convesse x z y f(y) f(x) f(z) f(x) + (1- )f(y)
risultati TH: Sia X = {x R n : g i (x) 0, i=1,..,m} e g i (x) sia convessa i, allora l’insieme X e’ convesso (la regione ammissibile definita dalle soluzioni di un sistema di funzioni convesse e’ convessa) Def: problema di programmazione convessa min {f(x) : x X} dove X R n e’ convesso, f:X→R e’ convessa TH: Dato un problema di programmazione convessa, ogni punto di ottimo locale e’ un punto di ottimo globale
Dato un vettore a R n e uno scalare a 0 R, si dice –semispazio affine indotto da (a,a 0 ) l’insieme X={x R n : ax a 0 } –iperpiano indotto da (a,a 0 ) l’insieme X={x R n : ax=a 0 } Poliedro P R n : di semispazi e iperpiani (politopo se limitato) Un punto x P si dice vertice o punto estremo di P se non e’ esprimibile come combinazione convessa stretta di nessuna coppia di punti di P. Richiami di algebra lineare
Faccia: HP P dove HP e’ un iperpiano tangente a P e P R n. Faccetta: faccia di dimensione n-1. Spigolo (lato): faccia di dimensione 1. Vertice (punto estremo): faccia di dimensione 0
Facce, vertici e spigoli di un politopo
Si puo’ dimostrare che … Th di Minkowski-Weyl: Un politopo P e’ esprimibile come combinazione convessa dei suoi vertici (+ la combinazione conica dei suoi raggi estremi per poliedri non limitati) Se P e’ limitato, allora esiste almeno un vertice di P che e’ soluzione ottima del problema di programmazione lineare min {cx : x P} / max {cx : x P}
In breve P e’ un insieme convesso, esprimibile come combinazione convessa dei suoi vertici Th: il problema min {cx : x P} ha ottimo (se esiste finito) su di un vertice Th: e’ sufficiente l’ottimalita’ locale del punto per dimostrarne l’ottimalita’ globale
algoritmo Per implementare un algoritmo occorre fornire – una caratterizzazione algebrica dei vertici del politopo – delle condizioni di ottimalita’ per certificare di avere determinato una soluzione ottima – una regola per spostarsi su un vertice (adiacente) con miglior valore della funzione obiettivo (una mossa) se le condizioni di ottimalita’ non sono soddisfatte –un test per verificare che esista un ottimo finito