cerca
Ricerca Operativa - PL - Macchine - 12.06.02
modifica cronologia stampa login logout

Wiki

UniCrema


Materie per semestre

Materie per anno

Materie per laurea


Help

Ricerca Operativa - PL - Macchine - 12.06.02

Torna alla pagina di Ricerca Operativa


 :: Ricerca Operativa - PL - Macchine - 12.06.02 ::

Testo del problema

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

Dati

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

Formulazione del problema

Dati

  • macchine = 4 (tipi di macchine da produrre)
  • ricMi (ricavo della vendita della macchina i=1..4) [€]
  • componente = 5 (tipi di componenti con cui si costruiscono le macchine)
  • costCj (costo del componente j=1..5) [€]
  • prodMini (produzione minima settimanale di macchine di tipo i=1..4)
  • composMij (quantità di componente j=1..5 per macchina i=1..4)
  • tempi (tempo di lavorazione per macchina i=1..4) [minuti]
  • operai = 9 (numero di operai)
  • oreSett = 40 (numero di ore settimanali)

Variabili

  • xi (numero di macchine da produrre ogni settimana)
  • yj (numero di componenti da acquistare ogni settimana)

Funzione obiettivo

Vogliamo massimizzare il guadagno, quindi:
max (somma)i ricMi – (somma)j costCj [€]

Vincoli

  • vincolo di produzione minima:
    xi >= prodMini (per ogni i)
  • vincolo che limita l'utilizzo di componenti in funzione della loro disponibilità:
    (somma)i xi * composMij – yj <= 0 (per ogni j)
  • vincolo per evitare che la somma dei tempi di collaudo necessari per ogni componente superi la somma di ore settimanali di tutti gli operai. Nota: il dato tempi è espresso in minuti, quindi o convertiamo in ore lui o convertiamo in minuti il resto; per evitare di avere virgole tra i piedi, convertiamo tutto in minuti:
    (somma)j yj * tempi <= operai * oreSett * 60 [minuti]

Lindizzazione del problema

! 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

Linghizzazione del problema

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

Altre domande

L’ufficio personale, incaricato di assumere nuovi operai, vuol sapere di quanto aumenterebbe il profitto dell’azienda per ogni operaio specializzato in più e fino a che limite massimo.

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 €.

L’ufficio vendite vuole sapere se preparare per l’anno prossimo contratti analoghi a quelli vigenti o se modificarli, aumentando o diminuendo il numero minimo di macchine da produrre per ogni tipo.

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.


Torna alla pagina di Ricerca Operativa