LA PROGRAMMAZIONE MATEMATICA (p.m.) Un problema di programmazione matematica è un problema di ottimizzazione riconducibile alla seguente espressione generale: ricercare i valori delle variabili x 1, x n che consentono di massimizzare o minimizzare una funzione z = f (x 1., x n ) nel rispetto delle condizioni: g i (x 1., x n ) {,=, } b i (i = 1,.., m) in cui le b i sono costanti scalari e le funzioni f e g i assumono valori scalari reali. In forma vettoriale, un problema p.m. può essere, più sinteticamente, espresso come: z = f(x) Max! [Min!] sottoposto a [s. a] Gx {::} b
16 Soluzione del problema E un insieme di n valori assegnati alle componenti del vettore x (un punto in uno spazio Euclideo ad n dimensioni E n ). Vincoli del problema - Sono le relazioni g i (x) :: b i, limitanti i valori che le variabili possono assumere. Soluzione ammissibile del problema E una soluzione che rispetta tutti i vincoli [nel caso contrario è detta non ammissibile]. Dominio di ammissibilità del problema E l'insieme X a di tutte le soluzioni ammissibili individua in E n il. In assenza di vincoli il dominio di ammissibilità è costituito da E n stesso. Dominio di ammissibilità vuoto - E' un dominio descritto da vincoli che sono in contrasto tra loro. In questo caso il problema si dice inconsistente. Dominio di ammissibilità illimitato E un dominio in cui una o più variabili del problema possono assumere valori ammissibili illimitati.
17 Funzione obiettivo E la funzione z = f(x) da ottimizzare. Soluzione ottima E una soluzione ammissibile cui corrisponda il valore ottimo di z [il valore ottimo di z può essere illimitato]. Ottimo locale - Una soluzione x* si dice di massimo locale [minimo locale] per f(x) se esiste un ε>0 tale che, per ogni soluzione y appartenente all intorno di raggio ε di x*, si verifica: f(x*) f(y) [f(x*) f(y)]. Ottimo globale - Una soluzione x* si dice di massimo globale [minimo globale] per f(x) se è verificata la condizione: f(x*) f(y) [f(x*) f(y)], y X a. Limitazioni implicite nella p. m. Non sono ammesse diseguaglianze strette. [l'insieme di ammissibilità è chiuso]. Il problema è trattato come deterministico. [non viene tenuta in conto l aleatorietà]
18 CLASSIFICAZIONI DEI PROBLEMI DI PROGRAMMAZIONE MATEMATICA Tre chiavi di aggregazione: caratteristiche f(x) e delle g i (x) dimensioni del sistema vincolare caratteristiche delle variabili Classificazione per caratteristiche della funzione obiettivo e dei vincoli Questa classe è fondata, oltre che sulle caratteristiche delle funzioni, anche su quelle degli algoritmi risolutivi adottati. programmazione lineare (p.l.) programmazione non lineare (p.n.l.) programmazione geometrica (p.g.) programmazione convessa (p.c.) programmazione quadratica programmazione non lineare propriamente detta
19 Programmazione lineare - Un problema p.l. ha la forma: s.a z = n a j=1 n j= 1 ij x x c j j j x j { = } Max! [Min!] b i (i = 1,2,...,m) 0 (j = 1,2,...,n) Programmazione geometrica - Un problema p.g. ha la forma: z = f(x) Max! [Min!] s. a g i (x) 1 (i = 1,2,..., m) x 0 La f(x) e le g i (x) sono funzioni posinomiali ovvero funzioni costituite dalla somma di posinomi, figure aventi la forma: r i x 1 ai1 x 2 ai2... x n ain = r i P j=1,n x j aij
20 Programmazione quadratica Un problema p.q. è un problema p.m. i cui vincoli sono lineari e la funzione obiettivo è quadratica. Programmazione convessa Un problema p.m.: z = f(x) Max! ( Min!) s. a g i (x) b i (i = 1,..., m) i cui vincoli e la cui funzione obiettivo siano convesse è detto di programmazione convessa (p.c.). Tutti i problemi lineari ed una parte di quelli quadratici sono di programmazione convessa.
21 FUNZIONE CONVESSA - Una funzione f(x) definita su un insieme convesso X R n si dice convessa se, per ogni coppia di punti x 1, x 2 X e per ogni z = λx 1 + (1 - λ)x 2, λ [0,1], si verifica: f(z) λf(x 1 ) + (1 - λ)f(x 2 ) In un problema p.c. una soluzione che sia di ottimo locale è anche di ottimo globale
22 Classificazione per dimensioni ( vincoli e/o variabili) del sistema vincolare Un problema p.m. si dice di piccole dimensioni se può essere risolto in un tempo ragionevole a mano, con l aiuto di una calcolatrice da tavolo. Un problema p.m. si dice di medie dimensioni se può essere risolto direttamente, con i metodi matematici disponibili, utilizzando un calcolatore elettronico. Un problema p.m. si dice di grandi dimensioni se può essere risolto, utilizzando un calcolatore elettronico, solo se presenta strutture particolari che consentano di trovare la soluzione operando su sottoproblemi in esso contenuti. La classe dei problemi di piccole dimensioni non varia nel corso del tempo, tra le altre due esiste una frontiera variabile nel tempo.
23 Classificazione per caratteristiche delle variabili Si distingue tra programmazione continua, nella quale le variabili possono assumere un qualsiasi valore reale, normalmente limitato, e programmazione discreta, nella quale le variabili possono assumere solo un numero discreto di valori. Programmazione lineare intera (p.l.i.) - Sono problemi, apparentemente, di programmazione lineare in cui, però, tutte (p.l.i. pura) o parte delle variabili (p.l.i. mista) devono assumere un valore intero. Programmazione lineare binaria (p.l.b.) - Si tratta di problemi di programmazione lineare intera nei quali le variabili possono assumere soltanto i valori 0 ed 1. La p.l.b. è caratteristica nella modellizzazione dei processi decisionali.
24 Problema dall assegnazione (assignment problem). Si disponga di n addetti, ciascuno dei quali sia in grado di svolgere, anche se con livelli diversi di abilità, n mansioni diverse. Si vuole individuare l'insieme degli n accoppiamenti addetti/mansioni migliore, nell'ipotesi che ciascun addetto debba coprire una sola mansione ed ogni mansione debba essere coperta da un solo addetto. Problema dello zaino (knapsack problem). Si dispone di un contenitore la cui capacità (espressa in volume o in peso) è fissata e di n oggetti ciascuno caratterizzato da un volume, o da un peso, e da un valore. Si vuole scegliere alcuni degli oggetti da caricare nel contenitore in modo tale da rispettarne la capacità e massimizzarne il valore.
25 Problema dell impacchettamento (bin packing problem). Si dispone di m contenitori dotati della medesima capacità e di n oggetti, ciascuno caratterizzato da una occupazione inferiore alla capacità di un singolo contenitore. Si vuole sistemare gli n oggetti nei contenitori in modo da minimizzare il numero dei contenitori necessari. Problema del commesso viaggiatore (traveling salesman problem). Si faccia riferimento ad un territorio in cui siano localizzati n piccoli centri, collegati tra loro da una rete stradale costituita da a tronchi, per ciascuno dei quali sia noto un parametro di costo, ad esempio la lunghezza. Si vuole individuare un circuito che consenta, ad un ipotetico commesso viaggiatore di visitare tutte le cittadine passando per esse una ed una sola volta e sia di lunghezza minima.
26 Problema del postino cinese (chinese postman problem). Si faccia riferimento ad una rete stradale costituita da n nodi da a tronchi, per ciascuno dei quali sia noto un parametro di costo (ad esempio la lunghezza) e la si rappresenti attraverso un grafo. Si vuole individuare un circuito che passi per ciascun arco del grafo almeno una volta e che sia a costo minimo. Problema della k-colorabilità (graph colouring problem - problema della carta geografica) - Data una carta geografica, si vuole determinare il numero di colori k minimo che consenta di evitare una colorazione identica per ogni coppia di stati confinanti.