Introduzione alla programmazione lineare struttura del problema di PL forme equivalenti rappresentazione e soluzione grafica rif. Fi 1.2; BT 1.1, 1.4
Problema di programmazione lineare Dati: un vettore dei costi c = (c 1,..., c n ) insiemi finiti di indici M 1, M 2, M 3 e, per ogni i contenuto in uno di essi, un vettore n-dimensionale a i ed uno scalare b i Problema di PL: min c T x s.t. a T i x b i, i M 1 a T i x b i, i M 2 a T i x = b i, i M 3 x j 0, j N 1 x j 0, j N 2
Notazione se j N 1 e j N 2 la corrispondente variabile x j si dice non-vincolata un vettore x R n che soddisfa tutti i vincoli si dice soluzione ammissibile l insieme delle soluzioni ammissibili si dice regione ammissibile una soluzione ammissibile x tale che c T x c T x, per ogni x ammissibile si dice soluzione ottima
Matrici e vettori Notazione: A = a 11 a 12... a 1n a 21 a 22... a 2n... a m1 a m2... a mn a T 1 A = A 1 A 2... A n =. a T m Prerequisiti: prodotto scalare, matrice trasposta, prodotto AB fra matrici, matrice inversa
Forme equivalenti Due problemi di P L 1 e P L 2 si dicono equivalenti se data una qualunque soluzione ammissibile di P L 1 posso costruire una soluzione ammissibile di P L 2 avente lo stesso costo. In particolare, i due problemi hanno lo stesso valore ottimo e data una soluzione ottima di P L 1 possiamo costruire una soluzione ottima di P L 2. min c T x min c T x min c T x Ax b Ax b Ax = b x 0 n x 0 n generale canonica standard
Regole di trasformazione problema da max a min : max c T x = min( c T x) vincoli da a = : var. di surplus { a T a T i i x b i = x s i = b i s i 0 vincoli da a = : var. di slack { a T a T i i x b i = x + s i = b i s i 0
Regole di trasformazione variabili da non vincolate a vincolate: x j = x + j x j non vincolata = x + j 0 x j 0 x j vincoli da = a : a T i x = b i = { a T i x b i a T i x b i
Esempio: trasformazione in forma standard forma generica: passo 1. max 3x 1 + 2x 2 s.t. x 1 + 2x 2 3 x 1 + 4x 2 2 x 1 0 passo 2. min 3x 1 2x + 2 + 2x 2 s.t. x 1 + 2x + 2 2x 2 3 x 1 + 4x + 2 4x 2 2 x 1, x + 2,x 2 0 min 3x 1 2x 2 s.t. x 1 + 2x 2 3 x 1 + 4x 2 2 x 1 0 passo 3. min 3x 1 2x + 2 + 2x 2 s.t. x 1 + 2x + 2 2x 2 s 1 = 3 x 1 + 4x + 2 4x 2 + s 2 = 2 x 1, x + 2, x 2,s 1, s 2 0
Soluzione grafica di ottimizzazione in due variabili I problemi di ottimizzazione in due variabili possono essere risolti (nei casi semplici) con un metodo grafico basato su: rappresentazione della regione ammissibile visualizzazione della variazione del valore della funzione obiettivo (linee di livello) Sebbene i problemi pratici abbiano raramente solo due variabili, il metodo grafico è importante per la comprensione della struttura del problema e delle proprietà che saranno sfruttate nel progetto di algoritmi di soluzione. Introduciamo il metodo grafico nel caso della Programmazione Lineare
Rette di livello Dato il vettore dei costi c = (c 1, c 2 ) ed uno scalare z R, l insieme dei punti per cui c 1 x 1 + c 2 x 2 = z è una retta perpendicolare al vettore c detta retta di livello Esempio. c = ( 1, 1), z = 0.5 x 2 0.5 1 x 1 c=( 1, 1) 0.5 x 1 x 2 = 0.5
Rette di livello La retta c 1 x 1 + c 2 x 2 = z divide il piano in due semipiani, corrispondenti risp. ai punti x per cui c 1 x 1 + c 2 x 2 z oppure c 1 x 1 + c 2 x 2 z x 2 x 1 x 2 0.5 0.5 x 1 c=( 1, 1) 0.5 x 1 x 2 0.5 x 1 x 2 = 0.5
Rette di livello Formano un fascio improprio di rette per cui valori crescenti di z corrispondono a rette traslate nel verso di c. x 2 1 0.5 1 x 1 c=( 1, 1) 0.5 x 1 x 2 = 1 x 1 x 2 = 1 x 1 x 2 = 0.5
Soluzione grafica Rappresentiamo adesso la regione ammissibile. Essendo un problema in forma di min si deve traslare la retta di livello nel verso opposto del vettore c finché la retta interseca la regione ammissibile. x 2 Esempio. 3 min x 1 x 2 x 1 + 2x 2 3 2x 1 + x 2 3 x 1, x 2 0 c=( 1, 1) 1.5 x*=(1,1) 1.5 3 x 1 x 1 x 2 = 2 x 1 x 2 = z
Richiamo: insiemi limitati Definizione Un insieme S R n si dice limitato se esiste un numero positivo M tale che x M per ogni x S.
Casi possibili per un problema di PL (I) x 2 min c T x x 1 + x 2 1 x 1, x 2 0 1 c=(1,0) c=(1,1) x 1 (a) c = (1, 1): x = (0, 0) è l unica soluzione ottima (b) c = (1, 0): tutti i vettori x = (0, x 2 ) con 0 x 2 1 sono soluzioni ottime (insieme limitato)
Casi possibili per un problema di PL (II) x 2 min c T x x 1 + x 2 1 x 1, x 2 0 1 c=( 1, 1) c=(0,1) x 1 (c) c = (0, 1): tutti i vettori x = (x 1, 0) con x 1 0 sono soluzioni ottime (insieme illimitato) (d) c = ( 1, 1): per ogni sol. amm. x = (x 1, x 2 ) si può sempre costruire un altra sol. di valore inferiore. Il valore ottimo si dice
Casi possibili per un problema di PL (III) x 2 1 min c T x x 1 + x 2 1 x 1, x 2 0 x 1 (e) aggiungiamo il vincolo x 1 + x 2 1: la regione ammissibile è vuota
Riassumendo In un problema di PL si hanno le seguenti possibilità: esiste un unica soluzione ottima esistono diverse soluzioni ottime; queste possono formare un insieme limitato o illimitato il valore ottimo è (quindi non esiste una soluzione ottima). Il problema si dice (inferiormente) illimitato la regione ammissibile vuota. Il problema si dice inammissibile