Torna alla pagina di Ricerca Operativa
:: Ricerca Operativa - PL - Macchine - 12.06.02 ::
Un’azienda meccanica produce macchine utensili di precisione di diversi tipi. Essa deve produrre una quantità minima di tali macchine perché è vincolata in questo da contratti di fornitura stipulati in precedenza.
Per la costruzione delle macchine l’azienda si rifornisce di parti componenti elettroniche, acquistandole in quantità variabili a prezzi noti e costanti. Anche il prezzo di vendita delle macchine è noto e costante. Ogni tipo di macchina richiede un numero variabile di componenti elettronici.
Prima dell’installazione sulle macchine ogni componente elettronico deve essere collaudato da operai specializzati che sono impiegati a tempo pieno in tale compito. Il tempo di collaudo è diverso a seconda del tipo di componente.
Formulare il problema, classificarlo e risolverlo con i dati del file MACCHINE.TXT
Tabella 1: Prezzi di vendita delle macchine Prodotto Prezzo (Euro/macchina) A 2050 B 3500 C 2550 D 1250 ======================================================== Tabella 2: Costi dei componenti Componente Costo (Euro/componente) 1 30 2 40 3 35 4 10 5 15 ======================================================== Tabella 3: Produzione minima (numero macchine) Prodotto Minimo A 25 B 15 C 35 D 30 ======================================================== Tabella 4: Quantità di componenti per ogni macchina Componenti 1 2 3 4 5 Macchina A 3 2 2 0 3 B 4 2 5 4 4 C 1 3 3 3 2 D 1 2 0 1 1 ======================================================== Tabella 5: Tempi di lavorazione Componente Tempo (minuti) 1 10 2 15 3 10 4 20 5 25 ======================================================== Numero di operai disponibili: 9 per 40 ore/settimanali ciascuno
Vogliamo massimizzare il guadagno, quindi:
max (somma)i ricMi – (somma)j costCj [€]
! esercizio - Macchine ! variabili: x(i) = numero di macchine da produrre ogni settimana ! y(j) = numero di componenti da acquistare ogni settimana ! le variabili sono continue e non negative ! funzione obiettivo max 2050 x1 + 3500 x2 + 2550 x3 + 1250 x4 - 30 y1 - 40 y2 - 35 y3 - 10 y4 - 15 y5 st ! vincoli di produzione minima prMin1) x1 >= 25 prMin2) x2 >= 15 prMin3) x3 >= 35 prMin4) x4 >= 30 ! vincoli sulla disponibilità dei componenti disp1) 3 x1 + 4 x2 + 1 x3 + 1 x4 - y1 <= 0 disp2) 2 x1 + 2 x2 + 3 x3 + 2 x4 - y2 <= 0 disp3) 2 x1 + 5 x2 + 3 x3 + 0 x4 - y3 <= 0 disp4) 0 x1 + 4 x2 + 3 x3 + 1 x4 - y4 <= 0 disp5) 3 x1 + 4 x2 + 2 x3 + 1 x4 - y5 <= 0 ! vincoli sui tempi di collaudo temp) 10 y1 + 15 y2 + 10 y3 + 20 y4 + 25 y5 <= 21600 end
MODEL: SETS: macchine /1..4/: pv, pmin, x; componenti /1..5/: c, t, y; composizione(macchine,componenti): com; ENDSETS DATA: pv = 2050 3500 2550 1250; c = 30 40 35 10 15; pmin = 25 15 35 30; com = 3 2 2 0 3 4 2 5 4 4 1 3 3 3 2 1 2 0 1 1; t = 10 15 10 20 25; dispH = 21600; ENDDATA !Funzione obiettivo è quella di massimizzare i ricavi meno i costi; max = @sum(macchine(i): pv(i) * x(i)) - @sum(componenti(j): c(j)* y(j)); !Il primo vincolo fa riferimento alla quantità minima da produrre; @for(macchine(i): x(i) >= pmin(i)); !Il secondo vincolo fa riferimento alla quantità massima di componenti utilizzabili; @for(componenti(j): @sum(macchine(i): com(i,j) * x(i)) <= y(j)); !Il terzo vincolo fa riferimento al tempo di lavorazione di ogni componente, il quale non deve essere maggiore del tempo totale a disposizione; @for(macchine(i): @sum(componenti(j): t(j) * y(j)) <= dispH); END
Il motivo per cui dovremmo assumere nuovi operai è quello di aumentare il numero di componenti che riusciamo a collaudare in una settimana. Dall'analisi di sensitività osserviamo alla colonna “allowable increase” che il vincolo sul tempo di collaudo può aumentare all'infinito senza che la soluzione ottima cambi. Questo ovviamente non significa che non possa migliorare il valore ottimo, e per calcolarlo basta osservare il prezzo-ombra del vincolo tempo, che è pari a 13,117647. Dal momento che questo valore fa riferimento a un minuto di lavoro, e che ogni operaio lavora per 40*60 = 2400 minuti a settimana, per ogni nuovo operaio assunto l'azienda aumenterebbe i profitti di 13,117647 * 2400 = 31482,3528 €.
Osservando i risultati del problema, a quanto pare l'unica macchina che conviene produrre più dei limiti minimi richiesti è la 4:
ROW SLACK OR SURPLUS DUAL PRICES PRMIN1) 0.000000 -268.235291 PRMIN2) 0.000000 -910.294128 PRMIN3) 0.000000 -322.941162 PRMIN4) 45.294117 0.000000
L'azienda dovrebbe quindi abbassare i limiti minimi di produzione per le prime tre macchine, mentre potrebbe lasciare inalterato quello sulla quarta dato che non si tratta comunque di un vincolo attivo.