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) s.t. g1 (x) ≥ 0 g 2 ( x) = 0 g 3 ( x) ≤ 0 qualche x intero o 0,1 dove f, g1, g2, g3 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 PANNELLI ASSEMBLAGGIO RIFINITURA LIBRERIE 8 4 ORE 2 ORE TAVOLI 6 2 ORE 1,5 ORE SEDIE 1 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: x1 x2 x3 numero di librerie prodotte numero di tavoli prodotti numero di sedie prodotte 2 Il problema può essere rappresentato dal seguente modello matematico (PROGRAMMAZIONE LINEARE): max z = 120 x1 + 60 x2 + 40 x3 s.t. 8 x1 + 6 x2 + x3 ≤ 48 4 x1 + 2 x2 + 1.5 x3 ≤ 20 2 x1 + 1.5 x2 + 0.5 x3 ≤ 8 x2 ≤ 5 x1 , x2 , x3 ≥ 0 (1) (2) (3) (4) 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 x1, x2, x3 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 a21 a22 a31 a32 a13 8 6 1 a23 = 4 2 1.5 a33 2 1.5 0.5 I coefficienti tecnici aij indicano, per ogni unità di output, quante unità di input sono richieste: aij rappresenta la quantità di fattore produttivo i occorrente per produrre una unità di merce j (nel processo produttivo considerato). Ad esempio, “a12” 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: x1 x2 nr. di trenini nr. di soldatini il problema può essere scritto come (modello matematico): max = z 7 x1 + 3 x2 s.t. 25 x1 + 20 x2 ≤ 480 (1) 60 x1 + 20 x2 ≤ 1200 (2) x1 ≤ 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 • • I punti x ∈ ℜn 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: min cx Ax ≥ b x≥0 la zona di spazio {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 = z max s.t. • 20 x1 + x1 x1 3 x1 x1 30 x2 + x2 − x2 +2 x2 −2 x2 x1 , x2 ≥ 1 ≥ −1 ≤ 6 ≤ 1 ≥ 0 Osservo anzitutto che ogni disequazione è soddisfatta da tutti i punti di un semipiano; ad esempio la disequazione x1 + x2 ≥ 1 è verificata dai punti nel semipiano tratteggiato: 5 • Tracciando anche le rette: −1 x1 − x2 = 2 x1 + 3 x2 = 6 x1 − 2 x2 = 1 si delimitano i piani che, intersecati, formano la RA 20X1+30X2 = 70 REG. AMMISSIBILE • • 20X1+30X2 = 40 20X1+30X2 =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 x1 + 30 x2 • Questo può essere determinato graficamente disegnando le curve di livello (isocosto, isoprofitto, isoquanti,…) 20 x1 + 30 x2 = k ed individuando quella che, al crescere di K , “interseca per ultima” la regione ammissibile. Nell’esempio precedente la retta 20 x1 + 30 x2 = 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 a1 x1 + ... + an xn ≤ 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).
© Copyright 2024 Paperzz