Torna alla pagina di Ricerca Operativa
:: Ricerca Operativa - PL - Chitarre - 20.01.05 ::
Testo del problema
Un produttore internazionale di strumenti musicali realizza tre tipi di chitarre elettriche (De’ Paoli, Little Diablo e Stradivarius).
La produzione di ogni tipo di chitarra è svolta in quattro stadi: realizzazione del corpo e del manico (svolta dal reparto “falegnameria”), realizzazione dei “pickup” (svolta dal reparto “elettrotecnici”), realizzazione dei circuiti (sempre svolta dal reparto elettrotecnici), finitura (svolta dal reparto “liutai”).
La lavorazione di ciascun prodotto comporta un consumo, in termini di ore di lavoro, in ogni reparto, noto a priori. Il numero di ore di lavoro disponibili è limitato dal numero di addetti in ogni reparto. Per questioni di immagine, il produttore deve realizzare un quantitativo minimo di chitarre.
Il ricavo derivante dalla vendita di ogni chitarra è noto a priori. Il produttore vuole ottimizzare la produzione settimanale di chitarre.
Formulare il problema con i dati del file CHITARRE.TXT, classificarlo, risolverlo e discutere l’ottimalità e l’unicità della soluzione ottenuta.
Dati
Tab. 1) Ricavo per unità di produzione di chitarre (euro/unità)
De'Paoli LittleDiablo Stradivarius
350 160 100
===========================================================================
Tab. 2) Numero di addetti in ogni reparto
Reparto Numero di addetti
Falegnameria 10
Elettrotecnica 5
Liuteria 3
Ogni addetto lavora 8 ore al giorno, per 5 giorni ogni settimana.
===========================================================================
Tab. 3) Tempi necessari alla lavorazione delle chitarre in ogni stadio
(ore/unità)
De'Paoli LittleDiablo Stradivarius
Stadio
corpo e manico 2 4 1
pickup 1 2.5 0.5
circuiti 1 1.5 1
finiture 4 1 1
===========================================================================
La quantità minima di chitarre da produrre è 100 unità ogni settimana.
Formulazione del problema
Dati
- c = 3 (numero tipi chitarre elettriche)
- s = 4 (numero stadi produzione)
- r = 3 (numero reparti di produzione)
- orelav = 40 (ore di lavoro a settimana) [ore/settimana]
- rici (ricavo per unità di produzione del tipo di chitarra i = 1..3) [€/unità]
- addj (numero addetti nel reparto j=1..3)
- temij (tempo di lavorazione nel reparto j=1..3 sul tipo di chitarra i=1..3) [ore/unità]
- qmin = 100 (numero minimo di unità da produrre a settimana) [unità/settimana]
Variabili
- xi >= 0 (unità di chitarre di tipo i=1..3 da produrre a settimana) [unità/settimana]
La variabile è continua e non negativa.
Funzione obiettivo
Dobbiamo massimizzare il ricavo totale settimanale
max (somma)i xi * rici [€/settimana]
Vincoli
- vincolo sulla produzione minima di chitarre a settimana
(somma)i xi >= qmin [unità/settimana]
- vincolo sul limite di ore lavorative per reparto
(somma)j xi * temij <= addj * orelav (per ogni tipo di chitarra i = 1..3) [ore/settimana]
Lindizzazione del problema
! esercizio - Chitarre
! variabili: x(i) = unità di chitarre di tipo i da produrre a settimana
! [unità/settimana]
! la variabile è continua e non negativa
! funzione obiettivo [€/settimana]
max 350 x1 + 160 x2 + 100 x3
st
! vincolo sulla produzione minima [unità/settimana]
prodMin) x1 + x2 + x3 >= 100
! vincoli sulle ore lavorative per reparto [ore/settimana]
falegna) 2 x1 + 4 x2 + 1 x3 <= 400
elettro) 2 x1 + 4 x2 + 1.5 x3 <= 200
liuteri) 4 x1 + 1 x2 + 1 x3 <= 120
end
Altre domande
Un addetto del reparto falegnameria ritiene di aver acquisito abbastanza esperienza e chiede di essere integrato nel reparto liutai. Minaccia di licenziarsi nel caso in cui la sua richiesta non venisse esaudita. Il responsabile dell’amministrazione del personale comunica che lo stipendio settimanale di un falegname è 250 euro, mentre quello dei liutai è 500 euro. Dal punto di vista economico, qual è la scelta più vantaggiosa: promuovere il falegname o accettare le sue dimissioni?
Come prima cosa osserviamo i dati dell'analisi post-ottimale:
Variable Value Reduced Cost
X1 6.666667 0.000000
X2 18.66667 0.000000
X3 74.66667 0.000000
Row Slack or Surplus Dual Price
1 12786.67 1.000000
PRODMIN 0.000000 -15.33333
FALEGNA 237.3333 0.000000
ELETTRO 0.000000 24.00000
LIUTERI 0.000000 79.33333
Come si può osservare dalla colonna "Slack or Surplus" le ore di lavoro nel reparto falegnameria non sono una risorsa scarsa: il valore infatti non solo è diverso da 0, ma è anche maggiore delle 40 ore a cui dovremo rinunciare se un addetto se ne va, quindi possiamo tranquillamente farne a meno senza che ci siano conseguenze a livello di produzione. Per quanto riguarda il reparto liuteria osserviamo invece dalla colonna "Dual Price" che saremmo disposti a pagare un nuovo dipendente oltre 79 euro all'ora, quindi circa 79 * 40 (ore settimanali) = 3160 euro settimali, a fronte dei 500 richiesti!! Direi che la direzione dovrebbe accettare al volo il trasferimento del falegname!
Un rappresentante dei liutai fa presente che ogni nuovo arrivato è meno produttivo dei suoi colleghi più esperti: stima che ogni quattro ore di lavoro, un’ora debba essere impiegata per la sua formazione. Qual è, a breve termine, la scelta più vantaggiosa in questo caso?
Un'ora di formazione ogni quattro ore di lavoro significa in una settimana: 10 ore di formazione, 30 ore di lavoro. Correggiamo quindi il calcolo di prima: 79 * 30 = 2370 euro settimanali. L'offerta di trasferimento continua a rimanere più che vantaggiosa
I liutai sono ansiosi di sperimentare un nuovo tipo di vernice per il modello “Little Diablo”. L’addetto al marketing ritiene che l’idea potrebbe essere sfruttata come trovata pubblicitaria, ed il prezzo di produzione delle chitarre “Little Diablo” portato da 160 euro a 200 euro per unità. Questa scelta determinerebbe un cambiamento della soluzione ottima?
Chiediamo a Lindo di mostrarci gli intervalli di valori in cui le basi non cambiano. Nella mia versione devo andare sul menu: LINGO -> Range
Ranges in which the basis is unchanged:
Objective Coefficient Ranges
Current Allowable Allowable
Variable Coefficient Increase Decrease
X1 350.0000 INFINITY 46.00000
X2 160.0000 1190.000 28.75000
X3 100.0000 8.214286 INFINITY
Righthand Side Ranges
Row Current Allowable Allowable
RHS Increase Decrease
PRODMIN 100.0000 20.00000 40.00000
FALEGNA 400.0000 INFINITY 237.3333
ELETTRO 200.0000 186.6667 46.66667
LIUTERI 120.0000 280.0000 20.00000
Dalla colonna "Allowable Increase" leggiamo che le Diablo (X2) possono aumentare fino a 1190 euro senza che cambi la soluzione ottima (al più cambia il suo valore).
Valutare, infine, la possibilità di espandere il reparto elettrotecnica, assumendo nuovi esperti: sapendo che lo stipendio settimanale di un elettrotecnico è 600 euro, quanti nuovi elettrotecnici è utile assumere?
Prima di tutto calcoliamo quanto ci costa un elettrotecnico, e vediamo che questa cifra è pari a 600 / 40 = 15 euro all’ora. Ora facciamo l'analisi parametrica rispetto al vincolo sulle ore disponibili nel reparto elttrotecnica, portando il termine noto da 200 a (inventiamo, abbondando) 10000. Ecco cosa succede:
RIGHTHANDSIDE PARAMETRICS REPORT FOR ROW: ELETTRO
VAR VAR PIVOT RHS DUAL PRICE OBJ
OUT IN ROW VAL BEFORE PIVOT VAL
200.000 24.0000 12786.7
X3 SLK 2 5 386.667 24.0000 17266.7
SLK 3 X3 3 400.000 20.7143 17542.9
X1 SLK 4 2 413.333 4.28571 17600.0
10000.0 0.000000E+00 17600.0
Quando il termine noto assume valore 386.667 il prezzo duale è pari a 24 euro, quindi riusciremmo a pagare ancora un altro elettrotecnico, quindi passiamo a considerare la riga dopo.
Quando il termine noto assume valore 400 il prezzo duale è pari a 20.7143 euro, quindi riusciremmo a pagare ancora un altro elettrotecnico, quindi passiamo a considerare la riga dopo.
Quando il termine noto assume valore 413.333 il prezzo duale è pari a 4.28571, quindi non riusciremmo a pagare un altro elettrotecnico, quindi torniamo a considerare la riga precedente. Questa ci dice che possiamo incrementare il termine noto (quindi le ore disponibili nel reparto elettrotecnico) da 200 a 400 continuando a migliorare il valore della funzione obiettivo. Quindi quanti elettrotecnici posso assumere? L'incremento è di 200, le ore settimanali sono 40, quindi 200 / 40 = 5 nuove assunzioni!
Torna alla pagina di Ricerca Operativa