1 Problemi iniziali di Programmazione Lineare (LP) I problemi di cui ci si occupa possono essere descritti matematicamente nel modo seguente: min/ max f ( x) st.. g ( x) 0 1 g ( x) = 0 2 g ( x) 0 3 qualche x intero o 0,1 dove f, g 1, g 2, g 3 sono funzioni lineari. Alcune osservazioni - <, >, non sono ammessi - prodotti di variabili, variabili al denominatore, variabili a potenze diverse da 1 non sono ammessi Il problema consiste nel formulare algebricamente un problema descritto in linguaggio naturale. La formulazione deve essere del tipo descritto sopra. Se mancano vincoli di interezza il problema è di tipo LP (Linear Programming). Se alcune (o tutte) le variabili hanno vincoli di interezza il problema è di tipo MIP (Mixed Integer Programming). Alcuni esempi Esempio 1 La ditta Mobilbelli produce librerie, tavoli e sedie. Per la produzione utilizza pannelli di legno, operai assemblatori ed operai rifinitori secondo lo schema seguente: TABELLA N.1 LIBRERIE TAVOLI SEDIE PANNELLI 8 6 1 ASSEMBLAGGIO 4 ORE 2 ORE 1,5 ORE RIFINITURA 2 ORE 1,5 ORE 0,5 ORE In ogni giornata lavorativa sono disponibili: 48 pannelli, 20 ore di operaio assemblatore, 8 ore di operaio rifinitore. Inoltre i prezzi di vendita dei mobili sono i seguenti: Libreria 120.00, Tavolo 60.00, Sedia 40.00. L obiettivo della ditta sarà quello di guadagnare il massimo possibile. Si potrebbero introdurre i costi, ma per il momento il problema viene affrontato in maniera diversa, equiparando il guadagno con l incasso. Sapendo che la richiesta di sedie e librerie è illimitata ma che non più di 5 tavoli possono essere venduti, determinare il numero di librerie, tavoli e sedie da produrre in modo da rendere massimo l incasso. La prima cosa da fare è vedere quali siano le VARIABILI DECISIONALI che conviene introdurre. In questo caso le variabili sulle quali posso agire per migliorare l incasso sono le quantità prodotte. Le variabili decisionali di questo problema sono: numero di librerie prodotte x2 numero di tavoli prodotti x numero di sedie prodotte 3
2 Il problema può essere rappresentato dal seguente modello matematico (PROGRAMMAZIONE LINEARE): max z = 120x + 60x + 40x 2 st.. 8x + 6x + x 48 (1) 4x + 2x + 1.5x 20 (2) 2x + 1.5x + 0.5x 8 (3) x 5 (4) x, x, x 0 Si noti che l obiettivo ed i vincoli del problema sono rappresentati da una FUNZIONE LINEARE z di 3 variabili. Con s.t. (abbreviazione dell inglese subject to ) si indicano i vincoli del problema. Questi sono espressi da disuguaglianze che coinvolgono ancora funzioni lineari e servono a far sì che i valori assunti dalle variabili x 1, x 2, x 3 siano compatibili con le limitazioni imposte sui fattori produttivi. Nel modello possiamo evidenziare i seguenti componenti: Fattori produttivi (INPUT) PANNELLI DI LEGNO OPERAIO ASSEMBLATORE OPERAIO RIFINITORE Merci prodotte (OUTPUT) LIBRERIE TAVOLI SEDIE MATRICE TECNOLOGICA a11 a12 a13 8 6 1 a21 a22 a23 = 4 2 1.5 a a a 2 1.5 0.5 31 32 33 I coefficienti tecnici a ij indicano, per ogni unità di output, quante unità di input sono richieste: a ij rappresenta la quantità di fattore produttivo i occorrente per produrre una unità di merce j (nel processo produttivo considerato). Ad esempio, a 12 indica quanto fattore produttivo 1 (pannelli di legno) dobbiamo utilizzare per produrre una unità di merce 2 (libreria). Parliamo di matrice tecnica o tecnologica perché è legata allo specifico processo tecnologico che sta utilizzando la fabbrica per produrre le merci. La matrice tecnologica cambia in base alla combinazione di fattori produttivi utilizzata.
3 Esempio 2 Un azienda produce trenini e soldatini. I primi sono venduti a 7e e i secondi a 3e ciascuno. Ogni trenino richiede 25 di assemblaggio e 1 h di verniciatura. Per i soldatini i tempi sono di 20 in entrambe le lavorazioni. Sono disponibili 8h di assemblaggio e 20h di verniciatura. Quale deve essere il mix di produzione per massimizzare i ricavi, tenuto conto che il mercato non assorbe più di 15 trenini. Ponendo, come variabili decisionali: nr. di trenini x2 nr. di soldatini il problema può essere scritto come (modello matematico): max z = 7+ 3x2 st.. 25+ 20x2 480 (1) 60+ 20x2 1200 (2) 15 (3) Domanda: Investireste in assemblaggio, verniciatura o marketing di trenini. Che ne dite dell interezza della soluzione At a certain refinery, the refining process requires the production of at least two gallons of gasoline for each gallon of fuel oil. To meet the anticipated demands of winter, at least three million gallons of fuel oil a day will need to be produced. The demand for gasoline, on the other hand, is not more than 6.4 million gallons a day. If gasoline is selling for $1.90 per gallon and fuel oil sells for $1.50/gal, how much of each should be produced in order to maximize revenue? In order to ensure optimal health (and thus accurate test results), a lab technician needs to feed the rabbits a daily diet containing a minimum of 24 grams (g) of fat, 36 g of carbohydrates, and 4 g of protein. But the rabbits should be fed no more than five ounces of food a day. Rather than order rabbit food that is custom-blended, it is cheaper to order Food X and Food Y, and blend them for an optimal mix. Food X contains 8 g of fat, 12 g of carbohydrates, and 2 g of protein per ounce, and costs $0.20 per ounce. Food Y contains 12 g of fat, 12 g of carbohydrates, and 1 g of protein per ounce, at a cost of $0.30 per ounce. What is the optimal blend?
4 Geometria della Programmazione Lineare n I punti x R che verificano tutti i vincoli di un problema di Programmazione Lineare si chiamano soluzioni ammissibili e l insieme costituito da tutte le soluzioni ammissibili forma la regione ammissibile del problema. Ad esempio nel problema: la zona di spazio { :, } min cx Ax b x 0 x Ax b x 0 è la regione ammissibile Nel caso di problemi che coinvolgono solo 2 variabili è agevole una rappresentazione della RA sul piano. Ad esempio si consideri il seguente problema max z = 20+ 30x2 st.. + x2 1 x2 1 3 + 2x2 6 2x2 1, x2 0 Osservo anzitutto che ogni disequazione è soddisfatta da tutti i punti di un semipiano; ad esempio la disequazione + x2 1 è verificata dai punti nel semipiano tratteggiato:
5 Tracciando anche le rette: x x = 1 2x + 3x = 6 x 2x = 1 si delimitano i piani che, intersecati, formano la RA 20X 1 +30X 2 = 70 REG. AMMISSIBILE 20X 1 +30X 2 = 40 20X 1 +30X 2 =60 Sono tracciate anche le rette che corrispondono a valori diversi della fo Si osservi che fra i punti della regione ammissibile vogliamo trovare quelli che rendono massimo il valore della funzione obiettivo z = 20+ 30x2 Questo può essere determinato graficamente disegnando le curve di livello (isocosto, isoprofitto, isoquanti, ) 20+ 30x2 = k ed individuando quella che, al crescere di K, interseca per ultima la regione ammissibile. Nell esempio precedente la retta 20+ 30x2 = 70 che interseca la regione ammissibile nel VERTICE (4/5, 9/5). In realtà si può dimostrare che nei modelli di Programmazione Lineare (PL) la regione ammissibile è sempre un poligono (o meglio un poliedro nel caso di tre o più variabili) In effetti, in uno spazio ad n dimensioni un poliedro può essere definito proprio come l'intersezione di un numero finito di semispazi (che a loro volta coincidono con gli insiemi delle soluzioni di una disequazione lineare del tipo ax 1 1 +... + ax n n b) almeno una soluzione ottima si trova sempre in un vertice (si potrebbe avere tutto una faccia di soluzioni, se la curva di livello è parallela ad esso).