1 Problema del taglio e ottimizzazione dei costi di una falegnameria Corso di Ricerca Operativa anno accademico
2 Problema del taglio ottimale La falegnameria Legnolandia acquista tavole di legno di lunghezza standard l. Vengono effettuati ordini per tavole di diversa lunghezza. La falegnameria deve tagliare i semilavorati di partenza in modo da soddisfare gli ordini e minimizzare gli scarti. Ovvero, poiché gli sfridi sono inutilizzabili, lobiettivo della falegnameria e quello di minimizzare il numero di semilavorati di lunghezza standard l necessario per soddisfare lordine, cercando le modalità di taglio più convenienti.
3Dati: i a ij l i < l i a ij l i < l l lunghezza del grezzo di partenza m numero di tagli richiesti n numero di piani di taglio esaminati a ij numero di tagli di lunghezza li che rientrano nel piano di taglio j b i numero di tagli di lunghezza li ordinati x j numero di semilavorati di partenza tagliati secondo il piano j Modello Matematico min z = j x j min z = j x j j a ij x j > b i i = 1,...,m j a ij x j > b i i = 1,...,m x j > 0j = 1,...,n x j I x j I min z = 1 x A x >b
4 Il titolare si aggiudica una commessa per la realizzazione di tutti gli infissi (porte, finestre, porte-finestre, portoncini esterni) per trenta villette,comprendenti dieci bivani,dieci trivani e dieci quadrivani con finiture di lusso.
5 In totale, le quantità richieste per ciascuna misura di infisso e del corrispondente telaio, sono: Tipo Infisso (H X L) in metri Telaio (H X L) in metri Quantità Finestra 1.40 x x x x x x Porta con vetro 2.10 x x Porta 2.10 x x x x x 1.30*2.17 x Porta finestra 2.35 x x x 1.30*2.42 x x 1.20*2.27 x Portoncino 2.30 x x x x *a due ante *a due ante
6 Dati gli spessori degli infissi da realizzare, si ritiene opportuno impiegare il semilavorato da cm 5.2 x 15 x 490, che verrà suddiviso nel senso della larghezza, in modo da ottenere una tavola che misura cm 5.2 x 7.5 x 980, per la realizzazione dei telai, il semilavorato da cm 5.2 x 20.5 x 450, dal quale si ottiene una tavola da cm 5.2 x x 900, per gli infissi, e il semilavorato da cm 6.5 x 20 x 490, per i soli portoncini
tagli da 2.42 m tagli da 1.54 m tagli da 1.34 m tagli da 0.94 m - 40 tagli da 1.74 m - 60 tagli da 1.44 m - 40 tagli da 1.14 m - 60 tagli da 2.27 m tagli da 2.17 m tagli da 1.04 m - 40 tagli da 2.44 m - 20 tagli da 2.49 m Per la produzione dei telai,il falegname dovrà eseguire:
8 Ognuno di questi tagli ha una larghezza di 7 cm e uno spessore di 5.2 cm. A questo punto si tratta di definire un certo numero di piani di taglio, in modo tale che la misura totale dei tagli contenuta in ciascun piano non superi la lunghezza del semi-lavorato, pari a 9.80 m. Il piano di taglio sarà un vettore con un numero di righe pari al numero di tagli differenti che è necessario produrre, e dunque un vettore 1 x 12
9 min x1+x2+x3+x4+x5+x6+x7+x8+x9+x10+x11+x12+x13+x14+x15 +x16+ x17+x18+ x19+x20+x21+x22+x23+x24+x25+x26+x27 +x28+x29+x30+x31+x32+x33+x34+x35+x36+x37+x38+x39 Funzione obiettivo
10 x1+2x2+x7+x9+x11+x14+4x15+3x18+x19+x24+x37+x39 >= 140 x1+5x3+x5+4x8+x17+x18+x20+x23+2x28+x29+x33+3x34+x36+x37 >= 170 x1+x2+x3+2x8+x11+x14+x20+2x21+2x23+2x28+x30+x37+2x38 >= 130 x2+x6+x8+x11+5x14+x18+x20+3x23+x26+2x28+x30+8x32+2x32+x33+4x34+x 35+x36+x39 >= 100 x1+x5+x6+x11+x13+3x16+3x20+2x27+x28+2x29+x31+x38+x39 >= 40 x5+x6+5x9+x13+2x16+x22+2x27+x32+2x33+x35+x36 >= 60 x1+x2+x4+x6+x11+x16+5x17+x22+x24+6x25+2x27+x33+x34+x39 >= 40 x5+x6+x7+x12+x17+x19+x22+x24+x29 >= 60 x5+x6+x7+x10+x11+x19+2x21+x24+x30+x33+x36+2x37+x38 >= 380 x1+x2+x4+x9+x13+x14+x24+x26+x27+7x30+x33+x36+x39 >= 160 2x4+x7+x10+3x12+x21+x22+x25+x26+2x32+x35 >= 40 x4+x10+2x13+x19+x22+x23+2x26+3x31+x32+2x35+x36+x38+x39 >= 20 Avente i seguenti vincoli
11 Come possiamo notare esistono 39 variabili corrispondenti ai piani di taglio impostati. Naturalmente ciascuno di essi è costituito da un numero di tagli tale per cui la somma delle loro misure non superi quella del semilavorato di partenza. I vincoli del problema sono in numero pari a quello dei tagli da produrre:12 e tengono conto del fatto che la produzione di ciascun taglio deve almeno soddisfare la domanda ad esso associata (i vincoli infatti sono tutti di >=).
12 Implementando su Lindo otteniamo che Il numero di grezzi da utilizzare è: 245
13 Il falegname dovrà utilizzare 245 semilavorati di partenza dei quali : 35 tagliati secondo il piano di taglio x5 5 tagliati secondo il piano di taglio x6 5 tagliati secondo il piano di taglio x7 11 tagliati secondo il piano di taglio x19 23 tagliati secondo il piano di taglio x21 3 tagliati secondo il piano di taglio x22 2 tagliati secondo il piano di taglio x24 22 tagliati secondo il piano di taglio x30 7 tagliati secondo il piano di taglio x32 5 tagliati secondo il piano di taglio x tagliati secondo il piano di taglio x37
14 Il problema presenta 6 slacks fra le quali sicuramente la più interessante è quella in corrispondenza del taglio da 1.34 m dove assume il valore di 65. La presenza della slack indica che cè un esubero di tagli di questo tipo. Starà al falegname decidere se conservare questi tagli in magazzino in attesa di una nuova commessa o se destinarli alla produzione di un altro prodotto (come il pannello interno della porta) facente parte della stessa commessa in corso.
15 F acendo riferimento agli ordini, per quanto riguarda la produzione degli infissi, si avranno i seguenti tagli : tagli da 2.35 m tagli da 2.20 m tagli da 2.10 m - 80 tagli da 1.60 m tagli da 1.40 m - 80 tagli da 1.20 m - 40 tagli da 1.30 m tagli da 0.80 m - 40 tagli da 1.00 m tagli da 0.90 m - 80 tagli da 0.65 m tagli da 0.45 m tagli da 0.60 m tagli da 0.40 m tagli da 0.70 m
16 Così come si è proceduto per i telai, occorre ora definire dei piani di taglio, ricordando che stiamo considerando il grezzo che misura 9 metri ; dunque la somma delle misure dei tagli contenuti in ciascun piano di taglio deve essere minore, o al più uguale, a 9 metri.Il piano di taglio è ora un vettore 1 x 15, perché 15 sono i tagli differenti da produrre. La funzione obiettivo ed i vincoli relativi al problema, sono riportati sotto:
17 min x1+x2+x3+x4+x5+x6+x7+x8+x9+x10+x11+x12+x13+x14+x15+x16+x17+x18+x19+x20+x21 +x22+x23+x24+x25+x26+x27+x28+x29+x30+x31+x32+x33+x34+x35+x36+x37+x38+x39+x40 Funzione obiettivo
18 x1+x5+2x8+x9+2x12+x13+x17+x18+x19+x24+3x28+x31+x37+x39 >=200 x1+x5+2x8+x9+2x12+x13+x17+x18+x19+x24+3x28+x31+x37+x39 >=200 2x2+x3+x9+x13+x14+x16+2x19+2x21+3x25+x27+2x30+2x34+x38+x39 >=120 2x2+x3+x9+x13+x14+x16+2x19+2x21+3x25+x27+2x30+2x34+x38+x39 >=120 x2+2x6+x8+2x12+x13+x15+x17+2x22+x25+2x32+3x36+x39 >=400 x2+2x6+x8+2x12+x13+x15+x17+2x22+x25+2x32+3x36+x39 >=400 2x4+2x7+x10+x15+x16+x22+3x23+2x27+x32+x33+x39 >=80 2x4+2x7+x10+x15+x16+x22+3x23+2x27+x32+x33+x39 >=80 4x4+2x7+x11+x13+x15+x17+3x21+x26+2x30+x33+3x35+x36+2x38 >=320 4x4+2x7+x11+x13+x15+x17+3x21+x26+2x30+x33+3x35+x36+2x38 >=320 2x2+x6+2x9+2x14+x16+3x18+x23+4x29+x33+x37+3x40 >=80 2x2+x6+2x9+2x14+x16+3x18+x23+4x29+x33+x37+3x40 >=80 x3+x7+3x10+2x15+x17+x20+2x24+2x26+x30+2x33+2x40 >=4 x3+x7+3x10+2x15+x17+x20+2x24+2x26+x30+2x33+2x40 >=4 x3+2x5+x6+2x9+2x14+x16+4x20+x29+3x32+3x37 >=180 x3+2x5+x6+2x9+2x14+x16+4x20+x29+3x32+3x37 >=180 3x1+x3+x5+x6+2x11+x16+x17+2x20+x24+2x27+4x31+x34 >=40 3x1+x3+x5+x6+2x11+x16+x17+2x20+x24+2x27+4x31+x34 >=40 x3+3x10+x16+2x18+2x20+x24+x26+x29+x31+4x34+x40 >=160 x3+3x10+x16+2x18+2x20+x24+x26+x29+x31+4x34+x40 >=160 x1+x3+3x5+2x11+x18+3x22+5x26+x29+x31+2x35+x38 >=80 x1+x3+3x5+2x11+x18+3x22+5x26+x29+x31+2x35+x38 >=80 x3+4x6+x7+x9+x13+x16+x18+x19+x22+3x29+x30+2x33+4x37+x38+3x40 >=180 x3+4x6+x7+x9+x13+x16+x18+x19+x22+3x29+x30+2x33+4x37+x38+3x40 >=180 5x1+x3+2x7+x10+4x14+x15+x22+x27+x31+3x35+x36+2x37 >=120 5x1+x3+2x7+x10+4x14+x15+x22+x27+x31+3x35+x36+2x37 >=120 x3+5x5+2x8+x13+x14+x16+x19+x21+7x23+2x26+3x28+x29+x31+2x33+x40 >=120 x3+5x5+2x8+x13+x14+x16+x19+x21+7x23+2x26+3x28+x29+x31+2x33+x40 >=120 x1+x3+2x8+6x11+x15+x17+2x19+x20+3x24+x27+x28+x32+2x35+x36+4x38+x39 >=560 x1+x3+2x8+6x11+x15+x17+2x19+x20+3x24+x27+x28+x32+2x35+x36+4x38+x39 >=560
19 Questa volta il numero dei grezzi è: 368
20 ROW SLACK OR SURPLUS DUAL PRICES 2) ) ) ) ) ) ) ) ) ) ) ) ) ) )
21 Per quanto riguarda la produzione dei portoncini viene utilizzato il semilavorato da cm 6.5x20x490. Occorrono allora: 40 tagli da m tagli da m tagli da m tagli da m 1.40 Per quanto riguarda la produzione dei portoncini viene utilizzato il semilavorato da cm 6.5x20x490. Occorrono allora: 40 tagli da m tagli da m tagli da m tagli da m 1.40
22 Il problema associato sarà: min x1+x2+x3+x4+x5+x6+x7+x8+x9+x10 x1+x3+2x5+x8 >=40 2x2+x3+4x4+2x8+x9+2x10 >=40 x1+x2+2x6 >=20 x3+x4+3x7+2x9+x10 >=20
23 Il valore della funzione obiettivo è pari a: 44
24 Facendo riferimento alla soluzione degli ultimi due problemi affrontati si nota come variando i piani di taglio siamo riusciti ad ottenere una soluzione soddisfacente, data la presenza di un numero limitato di slacks di piccola entità. Un altro dato che si rileva è la possibilità di incrementare i termini noti dei vincoli mantenendo inalterato il valore della funzione obiettivo. Questo fatto ci porterebbe a pensare che sia possibile soddisfare una commessa maggiore con lo stesso numero di grezzi. In realtà il problema è molto più complesso in quanto ogni singolo infisso è costituito da più tagli diversi. Analisi dei risultati
25 Massimizzazione del profitto di una falegnameria La falegnameria Legnolandia vuole massimizzare i profitti annuali valutando quale tipologia di infissi produrre e in quale quantità,rispettando contemporaneamente la commessa acquisita nel problema precedente. La falegnameria Legnolandia vuole massimizzare i profitti annuali valutando quale tipologia di infissi produrre e in quale quantità,rispettando contemporaneamente la commessa acquisita nel problema precedente.
26 Il personale della falegnameria è composto da 5 operatori di cui 3 addetti alle seguenti macchine: Il personale della falegnameria è composto da 5 operatori di cui 3 addetti alle seguenti macchine: 1 sega radiale O 1 1 sega radiale O 1 1 troncatrice O 2 1 troncatrice O 2 1 tecnosquadratrice O 3 1 tecnosquadratrice O 3 1 levigatrice a nastro O 4 1 levigatrice a nastro O 4 un operatore lavora alla fase di assemblaggio(O 5 ) e uno a quella di verniciatura (O 6 ). un operatore lavora alla fase di assemblaggio(O 5 ) e uno a quella di verniciatura (O 6 ).
27 La tabella seguente indica : - i tempi di lavorazione, in ore, di ogni macchina su ciascun prodotto - D è la disponibilità della macchina in h/anno facendo riferimento a 300 giornate lavorative di 8 h La tabella seguente indica : - i tempi di lavorazione, in ore, di ogni macchina su ciascun prodotto - D è la disponibilità della macchina in h/anno facendo riferimento a 300 giornate lavorative di 8 h
28
29 Levarie X i rappresentano il numero di: Le varie X i rappresentano il numero di: X 1 finestra cm 140x120 X 1 finestra cm 140x120 X 2 finestra cm 140x180 X 2 finestra cm 140x180 X 3 finestra cm 160x130 X 3 finestra cm 160x130 X 4 porta-finestra cm 220x120 X 4 porta-finestra cm 220x120 X 5 porta-finestra cm 235x130 X 5 porta-finestra cm 235x130 X 6 porta-finestra cm 235x100 X 6 porta-finestra cm 235x100 X 7 porta interna cm 210x90 X 7 porta interna cm 210x90 X 8 porta interna cm 210x80 X 8 porta interna cm 210x80 X 9 porta interna a vetri cm 210x90 X 9 porta interna a vetri cm 210x90 X 10 porta interna a 2 ante cm 210x130 X 10 porta interna a 2 ante cm 210x130 X 11 portoncino cm 230x120 X 11 portoncino cm 230x120 X 12 portoncino cm 235x140 X 12 portoncino cm 235x140
30 Qui di seguito vengono riportati i ricavi, i costi e gli utili in relativi a ciascun prodotto:
31 Ricavi ()Costi()Utili() X1X X2X X3X X4X X5X X6X X7X X8X X9X X X X
32 Modello matematico funzione obiettivo: max S j u j x j j=1….n max S j u j x j j=1….n Vincoli: Vincoli: Di produzione e magazzino Di produzione e magazzino i=1….n, j=1….n S j a ij x j b i i=1….n, j=1….n Di mercato Di mercato x j d j j=1….n x j d j j=1….n
33 Funzione obiettivo Funzione obiettivo max 259x1+273x2+301x3+307x4+317x5+270x6+445x7 max 259x1+273x2+301x3+307x4+317x5+270x6+445x7 +435x8+324x9+511x10+800x x x8+324x9+511x10+800x x12
34 Avente i seguenti vincoli di produzione: 0.05x1+0.05x2+0.05x x x x x x x x x x12<= x x x x x x x x x x x x12<= x x x x x x x x x9+0.2x x x12<= x x x x x x6+1.00x7+1.00x x x x x12<= x1+0.5x2+0.5x x x x6+2.00x7+2.00x x9+3.50x x x12<= x1+1.00x2+1.00x3+1.00x4+1.00x5+1.00x6+1.25x7+1.25x8+1.00x9+1.50x x x12<=2400
35 e di mercato: e di mercato: x1>=40 x2>=40 x3>=20 x4>=30 x5>=30 x6>=40 x7>=80 x8>=20 x9>=80 x10>=10 x11>=20 x12>=10
36 Implementando la nostra funzione sul software LINDO si vede come il massimo profitto si ottiene producendo il bene che assicura il maggior utile possibile (il portoncino). Pertanto considerando che le porte a due ante e i portoncini costituiscono una porzione marginale della richiesta di mercato assegnamo un peso in modo da penalizzare le variabili corrispondenti nella funzione obiettivo. Dall analisi di mercato abbiamo stimato un valore dei coefficienti correttivi pari a: 0.1 per le porte a due ante, di 0.5 per i portoncini da cm 230x120 e di 0.2 per quelli da cm 235x140. Analisi dei risultati
37 Senza inserire i coefficienti correttivi abbiamo un profitto di:
39 Che risulta un po ma solo un po per così dire: ECCESSIVO
40 Con lintroduzione dei coefficienti correttivi il nostro problema assume la forma: max 259x1+273x2+301x3+307x4+317x5+270x6+445x7 max 259x1+273x2+301x3+307x4+317x5+270x6+445x7 +435x8+324x9+511*0.1x10+800*0.5x *0.2x x8+324x9+511*0.1x10+800*0.5x *0.2x12 Mentre i vincoli rimangono gli stessi. Mentre i vincoli rimangono gli stessi. Il profitto ora è diventato di: Il profitto ora è diventato di:
, ,0
VARIABLE VALUE REDUCED COST VARIABLE VALUE REDUCED COST X X X X X X X X X X X X X X X X X X X X X X X X
43 ROW SLACK OR SURPLUS DUAL PRICES 2) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ROW SLACK OR SURPLUS DUAL PRICES 2) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) X3X3 X7X7 X9X9
44 Col nuovo problema abbiamo quindi una riduzione del profitto. Da LINDO si nota che, per raggiungere il massimo obiettivo bisogna produrre in più rispetto alla commessa i seguenti infissi: 921 finestre cm 160x finestre cm 160x porte interne a vetri cm 210x porte interne a vetri cm 210x porte interne cm 210x porte interne cm 210x90 Ovviamente questi valori corrispondono alle slacks. Analisi dei risultati
45 Vediamo ora la variazione del profitto se si tiene conto del fatto che lazienda possiede un magazzino con una disponibilità di 200 m 3 per laccatastamento del prodotto finito. Sotto è riportata la tabella con il volume occupato dai singoli infissi:
Portoncino cm 235x Portoncino cm 230x Porta interna a 2 ante cm 210x Porta interna a vetri cm 210x Porta interna cm 210x Porta interna cm 210x Porta finestra cm 235x Porta finestra cm 235x Porta finestra cm220x Finestra cm 160x Finestra cm 140x Finestra cm 140x120 Volume occupato [m 3 ] Tipo di infisso
47 Il problema avrà la stessa forma con in più il vincolo di magazzino che riportiamo sotto: i vincoli di produzione e di mercato restano invariati. Il problema avrà la stessa forma con in più il vincolo di magazzino che riportiamo sotto: 0.087x x x x x x x x x x x x12<=200 i vincoli di produzione e di mercato restano invariati.
VARIABLE VALUE REDUCED COST X X X X X X X X X X X X VARIABLE VALUE REDUCED COST X X X X X X X X X X X X
49 ROW SLACK OR SURPLUS DUAL PRICES 2) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) Vinc. magazzino
50 ROW SLACK OR SURPLUS DUAL PRICES 2) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) Con la programmazione intera: profitto X2X2X2X2 X7X7X7X7 X3X3X3X3 X9X9X9X9 X2 finestra 140x180 X3 finestra 160x130 X7 porta 210x90 X9 porta interna a vetri 210x90
51 Le macchine O 1,O 2,O 3 non vengono utilizzate per tutto il tempo in cui sono disponibili;mentre si saturano i vincoli relativi alla levigatrice a nastro,alle operazioni di assemblaggio e verniciatura e il vincolo di magazzino; tuttavia questultimo assume il valore più alto tra le variabili duali. Potenziando il magazzino senza alterare gli altri parametri, il profitto dovrebbe aumentare in misura maggiore di quanto accadrebbe lasciandolo invariato e modificando le disponibilità. Analisi dei risultati
52 Osservazione sulla formulazione adottata per il vincolo di magazzino La disposizione dei pezzi è tale da minimizzare il volume occupato,ma non abbiamo idea di quale sia tale distribuzione ottima,perché ovviamente lalgoritmo non dà risposte in questo senso.Potremmo non riuscire a collocare gli infissi in modo da compattare i volumi e in questo caso il magazzino verrebbe saturato precocemente.
53 Soluzione Riformuliamo il vincolo in modo più aderente ragionando in termini di pezzi e non di volumi,supponendo che il magazzino possa contenere al massimo 800 pezzi disposti su rastrelliere.
54 Considerando i pezzi 800 disposti verticalmente
55 X1+x2+x3+x4+x5+x6+x7+x8+x9+x10+x11+x12<=800 Il vincolo di magazzino diventerà
56 Analisi dei risultati Funzione obiettivo , ,0
,0 VARIABLE VALUE REDUCED COST X X X X X X X X X X X X ,0 VARIABLE VALUE REDUCED COST X X X X X X X X X X X X
58 ROW SLACK OR SURPLUS DUAL PRICES 2) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) X7X7
porte piene cm 210x90 Per raggiungere lottimo devo produrre in più
60 Se teniamo conto del flusso in uscita E del fatto che possiamo simularlo con una capacita addizionale pari a: 60 pezzi al mese 60*12 pezzi
61 Avremo il nuovo vincolo di magazzino di magazzino X1+x2+x3+x4+x5+x6+x7+x8+x9+x10+x11+x12<=800+60*12 X1+x2+x3+x4+x5+x6+x7+x8+x9+x10+x11+x12<=800+60*12
62 Analisi dei risultati Funzione obiettivo , ,0 Come era in previsione il profitto è aumentato.
63 VARIABLE VALUE REDUCED COST X X X X X X X X X X X X X X X X X X X X X X X X
64 ROW SLACK OR SURPLUS DUAL PRICES ROW SLACK OR SURPLUS DUAL PRICES 2) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) X7X7 X9X9 X 7 porte piene 210x90 X 9 porte vetri 210x90
porte piene 177 porte a vetri Rispetto alla commessa si producono in più:
66 ROW SLACK OR SURPLUS DUAL PRICES ROW SLACK OR SURPLUS DUAL PRICES 2) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) Vincolo di magazzino Op. assemblaggio
67 Conclusioni Analizzando le variabili duali emerge che il beneficio maggiore ai fini dellottimizzazione si ottiene ampliando ulteriormente il magazzino e assegnando un maggior numero di operatori alla fase di assemblaggio. Capitooo ????