:: RO - Esercizio del pesce ::
Il sig. Occhioditriglia fa il pescivendolo. Egli si rifornisce quotidianamente di prodotti ittici al mercato del pesce. Di ciascun tipo di prodotto egli conosce il prezzo di vendita. Tuttavia egli deve tenere conto di alcuni vincoli.
Anzitutto il pesce va trasportato e sul furgoncino del sig. Occhioditriglia c’è solo una piccola cella frigorifera.
Inoltre prima di essere venduto ogni prodotto deve essere lavato, pulito e confezionato, ma il tempo che il sig. Occhioditriglia può dedicare ogni giorno a queste attività di preparazione è limitato.
Infine esistono vincoli di legge: la normativa impone infatti che ogni dettagliante possa rifornirsi di una data quantità massima di prodotti, data dalla combinazione lineare delel quantità massime riferite ai prodotti acquistati esclusivamente. Ad esempio se il limite per il prodotto A è 10 Kg e il limite per il prodotto B è 20 Kg, un dettagliante non può acquistare una quantità di A+B superiore a 10+0 oppure 0+20 oppure anche a combinazioni lineari come ad esempio 5+10 (50%+50%) oppure 2+16 (20%+80%).
Formulare il problema, classificarlo e risolverlo con i dati del file PESCE.TXT.
Ed ecco i dati del problema
Tabella 1: Prezzi di vendita dei prodotti ittici Prodotto Prezzo (Euro/Kg) Pesce azzurro 10.00 Pesci per frittura 7.50 Frutti di mare 20.00 =================================================== Tabella 2: Volume occupato nella cella frigorifera Prodotto Volume (cc/Kg) Pesce azzurro 10000 Pesci per frittura 7500 Frutti di mare 12500 La capacità della cella è di 50000 cc. =================================================== Tabella 3: Tempo di preparazione e confezionamento Prodotto Tempo (min/Kg) Pesce azzurro 11 Pesci per frittura 8 Frutti di mare 10 Il tempo disponibile ogni giorno per la pulizia ed il confezionamento è di 45 minuti =================================================== Tabella 4: Limiti di acquisto giornaliero Prodotto Quantità max. (Kg/giorno) Pesce azzurro 40 Pesci per frittura 60 Frutti di mare 60
La faccenda dei limiti di acquisto giornaliero è così: la percentuale totale di acquisto deve essere il 100%. Vuol dire che se prendo il 50% di pesce azzurro, il 25% di frittura e il 25% di frutti di mare, la somma è 100% e non posso comprare altro. Allo stesso modo, se prendo 100% di frutti di mare, non posso prendere altro. La percentuale massima è riferita alla quantità massima che posso comprare in un giorno.
Si imposta il problema normalmente, tenendo conto dei vincoli nella quantità massima acquistabile.
! azz, frit e frut sono in kg max 10 azz + 7.5 frit + 20 frut s.t. ! Volume occupato (cc * kg) vtot) 10000 azz + 7500 frit + 12500 frut <= 50000 ! Tempo (minuti * kg) ttot) 11 azz + 8 frit + 10 frut <= 45 !quantità max acquistabile (kg) ! La magia consiste nell'avere in totale 100%: ! una tot percentuale di uno, ! più una tot percentuale dell'altro ! più una tot percentuale del terzo deve fare 100% in totale ! sarebbe: quantita) x1/40 + x2/60 + x3/60 <= 1 ! ma a lindo non piacciono le frazioni=> quantita) 3 azz + 2 frit + 2 frut <= 120
I vincoli sono la trasposizione diretta di quanto scritto sopra, facendo attenzione alla faccenda delle quantità massime. La roba delle percentuali può essere riformulata dicendo che le frazioni di pesceAzzurro/maxPesceAzzurro + fritto/maxFritto + frutto/maxFrutto siano <= 1. Ma siccome a Lindo non piacciono le frazioni, faccio il mcm, e lo porto a destra della disuguaglianza.
Per rispondere a questa domanda, occorre fare l'analisi di sensitività sulla soluzione appena calcolata.
Si scopre che il pesce azzurro e il pesce da frittura non vengono nemmeno considerati, e vediamo che se il guadagno del pesce azzurro aumenta di 6 e quello del pesce da frittura aumenta di 4.5, allora diventeranno convenienti (sono tra l'altro i costi ridotti di ciascun prodotto).
I vincoli stringenti sono quelli attivi, in questo caso il volume, che è utilizzato al massimo.
Stiamo qui ipotizzando che il guadagno dei frutti di mare possa scendere da 20 a 0. Semplice: faccio un'analisi parametrica sul coefficiente del frutto di mare... ma c'è un problema: questo coefficiente sta nella funzione obiettivo e Lindo non ci permette di farlo.
La soluzione è quindi impostare il problema duale, in cui i vincoli diventano variabili e le variabili diventano vincoli, e quindi il coeff. dei frutti di mare diventano vincoli e sarà possibile studiarli.
Per trasformare i vincoli in variabili, devo guardare com'erano i vincoli vecchi:
trasp) 10000 x1 + 7500 x2 + 12500 x3 <= 50000 tempo) 11 x1 + 8 x2 + 10 x3 <= 45 quantita) 3 x1 + 2 x2 + 2 x3 <= 1 La funzione obiettivo era: [@ max 10 x1 + 7.5 x2 + 20 x3
Quindi faccio così: prendo i coeff della prima colonna della matrice dei vincoli, e li metto in riga; poi faccio lo stesso per la seconda colonna etc:
V1) 10000 c + 11 t + 3 q >= 10 V2) 7500 c + 8 t + 2 q >= 7.5 V3) 12500 c + 10 t + 2 q >= 20
dove V1, V2, V3 rappresentano le vecchie variabili.
La funzione obiettivo diventa invece
min 50000 c + 45 t + 120 q
dove c rappresenta il vincolo sulla capacità del furgone, t quello sul tempo max e q quello sulla quantità acquistabile.
Risolvo il problema, e faccio un'analisi parametrica su V3 impostato a 0, e scopro una bella spezzata che mi dice quanto guadagna il pescivendolo al calare del prezzo di vendita dei frutti di mare.
Nel problema primale, i vincoli sono stringenti quando sono attivi, cioè slack = 0. Nel duale, al vincolo che c'era nel primale corrisponde una variabile duale.
Si vede dalla soluzione del problema che la variabile c è in base. Il suo primale è il vincolo sulla capacità, ed è quindi attivo.
Poi, man mano che si scende verso lo 0 del grafico dell'analisi parametrica del guadagno dei frutti di mare, si scopre che