esercizi svolti di programmazione lineare - dii.unisi.itdetti/esamisvolt.pdf · esercizi svolti di...

24
Esercizi svolti di programmazione lineare a cura di A. Agnetis 1 Un lani¯cio produce ¯lato di tipo standard e di tipo speciale utilizzando 3 diverse mac- chine, le cui produzioni orarie sono le seguenti: macchina A: 3 matasse standard e 1 speciale macchina B: 2 matasse standard e 2 speciali macchina C: 2 matasse standard e 1 speciale Il mercato richiede almeno 60 matasse standard e 40 di tipo speciale al giorno. I costi orari delle due macchine sono: 90 euro per la A, 80 euro per B, 60 euro per C. Scrivere un modello di programmazione lineare per determinare la produzione giornaliera di costo minimo. (Non occorre imporre il vincolo che le ore giornaliere non superino 24) Soluzione. Durante un'ora di funzionamento, ciascuna macchina, se attiva, ha una produzione ¯ssa di matasse, indicata prima. Dunque, il problema non riguarda decidere cosa pro- durre, bensi' per quanto tempo tenere in funzione le tre macchine. Dunque, le variabili di decisione sono x A ;x B ;x C , pari alle ore di funzionamento delle tre macchine. Considerando che ogni ora di macchina A costa 90 euro, e produce 3 matasse standard e una speciale, avremo dunque che il contributo alla funzione obiettivo sarμ a 90x A , mentre il contributo al soddisfacimento della domanda dei due tipi di matasse sarμ a rispettivamente 3x A e x A . Ripetendo il discorso anche per le altre due macchine, otteniamo la formulazione min 90x A + 80x B + 60x C 3x A +2x B +2x C ¸ 60 x A +2x B + x C ¸ 40 x i ¸ 0 1

Upload: dangnhu

Post on 18-Feb-2019

363 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Esercizi svolti di programmazione lineare - dii.unisi.itdetti/esamisvolt.pdf · Esercizi svolti di programmazione lineare a cura di A. Agnetis 1 Un lani¯cio produce ¯lato di tipo

Esercizi svolti di programmazione lineare

a cura di A. Agnetis

1

Un lani¯cio produce l̄ato di tipo standard e di tipo speciale utilizzando 3 diverse mac-chine, le cui produzioni orarie sono le seguenti:

macchina A: 3 matasse standard e 1 specialemacchina B: 2 matasse standard e 2 specialimacchina C: 2 matasse standard e 1 speciale

Il mercato richiede almeno 60 matasse standard e 40 di tipo speciale al giorno. I costiorari delle due macchine sono: 90 euro per la A, 80 euro per B, 60 euro per C.Scrivere un modello di programmazione lineare per determinare la produzione giornalieradi costo minimo. (Non occorre imporre il vincolo che le ore giornaliere non superino 24)

Soluzione.Durante un'ora di funzionamento, ciascuna macchina, se attiva, ha una produzione

¯ssa di matasse, indicata prima. Dunque, il problema non riguarda decidere cosa pro-durre, bensi' per quanto tempo tenere in funzione le tre macchine. Dunque, le variabili didecisione sono xA; xB; xC, pari alle ore di funzionamento delle tre macchine. Considerandoche ogni ora di macchina A costa 90 euro, e produce 3 matasse standard e una speciale,avremo dunque che il contributo alla funzione obiettivo sarµa 90xA, mentre il contributoal soddisfacimento della domanda dei due tipi di matasse sarµa rispettivamente 3xA e xA.Ripetendo il discorso anche per le altre due macchine, otteniamo la formulazione

min 90xA + 80xB + 60xC

3xA + 2xB + 2xC ¸ 60

xA + 2xB + xC ¸ 40

xi ¸ 0

1

Page 2: Esercizi svolti di programmazione lineare - dii.unisi.itdetti/esamisvolt.pdf · Esercizi svolti di programmazione lineare a cura di A. Agnetis 1 Un lani¯cio produce ¯lato di tipo

2

La Svivon produce batterie elettriche di tre tipi (Alef, Beth e Ghimel). Per due di esse(Beth e Ghimel) utilizza del rame. Per coprire la produzione del prossimo mese, puµoacquistare il rame al prezzo di 5 euro/kg. Il fornitore perµo non puµo fornire piµu di 4000 kgdi rame. Nella seguente tabella sono indicate: la quantitµa di rame richiesta per produrreuna scatola di ciascuna batteria, i costi di manodopera (per scatola prodotta) e prezzi divendita al pubblico (per scatola):

Rame (kg per scatola) costi di manodopera prezzo di venditaALEF - 12 25BETH 1 6 20

GHIMEL 2 4 30

I tre tipi di batteria devono essere prodotti in quantitµa tali che il numero di scatole dibatterie Alef sia almeno doppio del numero di scatole di Beth e non superiore al numerodi scatole di Ghimel.

1) Formulare come PL il problema di piani¯care la produzione della Svivon in modoottimo.

2) Dimostrare che la soluzione consistente nel produrre 2000 unita' di Alef e altrettantedi Ghimel (e nessuna scatola di Beth) e' ottima (possibilmente utilizzando le condizionidi ortogonalitµa).

Soluzione.1. Le variabili di decisione sono la quantitµa di scatole dei tre tipi di batterie, che

indicheremo con xA; xB; xG. La funzione obiettivo da massimizzare µe il pro¯tto totale,meno i costi totali. Il pro¯tto µe dato evidentemente da

25xA + 20xB + 30xG

a questo vanno sottratti i contributi del costo del rame e della manodopera, pari rispet-tivamente a

5(xB + 2xG)

e

12xA + 6xB + 4xG

e dunque, riordinando i termini, la funzione obiettivo risulta

13xA + 9xB + 16xG

2

Page 3: Esercizi svolti di programmazione lineare - dii.unisi.itdetti/esamisvolt.pdf · Esercizi svolti di programmazione lineare a cura di A. Agnetis 1 Un lani¯cio produce ¯lato di tipo

I vincoli sono tre. Il primo esprime il vincolo sulla disponibilitµa di rame:

xB + 2xG · 4000

il secondo e il terzo riguardano invece i vincoli sulla produzione di batterie Alef:

xA ¸ 2xB

xA · xG

l'aggiunta dei vincoli di non negativitµa completa la formulazione. 2. Per rispondere alla

seconda domanda, possiamo seguire due vie: usare le condizioni di KKT, ovvero la comple-mentarietµa, oppure utilizzare il criterio di ottimalitµa del metodo del simplesso. Vediamocome si risolveva in ambedue i modi. Iniziamo con la complementarietµa. Riscriviamo ilproblema come:

max 13xA + 9xB + 16xG

xB + 2xG · 4000

¡xA + 2xB · 0

xA ¡ xG · 0

xj ¸ 0

il problema duale µe:

min 4000u1

¡u2 + u3 ¸ 13

u1 + 2u2 ¸ 9

2u1 ¡ u3 ¸ 16

ui ¸ 0

Si tratta di dimostrare che la soluzione (2000; 0; 2000) µe ottima per il problema primale.Dalla complementarietµa, il fatto che xA > 0 e xG > 0 nella soluzione proposta, risulta chedeve essere

¡u2 + u3 = 13

2u1 ¡ u3 = 16

ui ¸ 0

un'altra condizione puµo essere ricavata dalla dualitµa forte. Osserviamo a questoproposito che il valore ottimo della funzione obiettivo del problema primale µe dunque

13 ¢ 2000 + 9 ¢ 0 + 16 ¢ 2000 = 58000

3

Page 4: Esercizi svolti di programmazione lineare - dii.unisi.itdetti/esamisvolt.pdf · Esercizi svolti di programmazione lineare a cura di A. Agnetis 1 Un lani¯cio produce ¯lato di tipo

e dunque dev'essere

4000u1 = 58000

da cui u1 = 14:5. Dalle altre due si ricava u3 = 13 e u2 = 0. Osservando che la soluzione(14:5; 0; 13) µe ammissibile per il problema duale, risulta dimostrato che (2000; 0; 2000) µeottima per il problema primale.

Una strada alternativa era quella di fare uso del criterio di ottimalitµa. Si tratta alloradi capire quale base corrisponde alla soluzione (2000; 0; 2000). A tale scopo, riscriviamoil problema in forma standard:

min¡13xA¡ 9xB ¡ 16xG

xB + 2xG + s1 = 4000

¡xA + 2xB + s2 = 0

xA ¡ xG + s3 = 0

xj; si ¸ 0

in cui si noti l'aggiunta delle tre variabili di slack s1; s2; s3. Inserendo la soluzione pro-posta nelle tre equazioni, si ha che s1 = s3 = 0 mentre s2 = 2000. Dunque, la basecorrispondente alla soluzione (2000; 0; 2000) µe necessariamente quella costituita dalle vari-abili xA; xG; s2, ossia

B =

0B@

0 2 0¡1 0 11 ¡1 0

1CA

e dunque

F =

0B@

1 1 02 0 00 0 1

1CA cTB = (¡13 ¡ 16 0) cTF = (¡9 0 0)

mentre

B¡1 =

0B@

12 0 112 0 012 1 1

1CA

di conseguenza si ha

¹cTF = cTF ¡ cTBB¡1F = (¡9 0 0)¡ (¡13 ¡ 16 0)

0B@

12 0 112 0 012 1 1

1CA

0B@

1 1 02 0 00 0 1

1CA

= (112

292

13)

e dunque, essendo tutti i costi ridotti non negativi, la soluzione proposta µe ottima.

4

Page 5: Esercizi svolti di programmazione lineare - dii.unisi.itdetti/esamisvolt.pdf · Esercizi svolti di programmazione lineare a cura di A. Agnetis 1 Un lani¯cio produce ¯lato di tipo

3

Si consideri il seguente problema di programmazione lineare

min z = 2x1 + 3x2 + 4x3 + x4

2x1 + x2 + x3 = 1

x1 + 2x2 + x4 = 2

xj ¸ 0

Senza determinarla esplicitamente, si vuole sapere se il valore della soluzione ottima µealmeno pari a 1.

Soluzione.Il problema puµo risolversi semplicemente per ispezione. Scriviamo il duale:

max u1 + 2u2

2u1 + u2 · 2

u1 + 2u2 · 3

u1 · 4

u2 · 1

Osserviamo che la soluzione (1; 0) µe ammissibile per il duale, e il valore della funzioneobiettivo duale µe pari a 1. Per la dualitµa debole, risulta dimostrato che la soluzione ottimadel primale µe senz'altro non inferiore a 1.

Si noti che comunque (1; 0) non µe la soluzione ottima del duale. Infatti, in tale puntosolo il primo dei vincoli duali µe attivo. Ciµo implica che, se tale soluzione fosse ottima,si dovrebbero annullare, nela corrispondente soluzione ottima del primale, tutte e trele variabili x2; x3 e x4. Rimarrebbe solo x1, che dovrebbe essere pari a 1=2 (dal primovicnolo) e a 2 (dal secondo), impossibile.

4

Il piano di produzione per il prossimo anno di un'azienda prevede una produzione di dtunit di prodotto nel mese t, t = 1; : : : ; 12. Ciascun operaio µe in grado di produrre k unitdi prodotto in un mese. Lo stipendio mensile di ciascun operaio µe pari a s. Assumeree licenziare personale ha dei costi, e precisamente: assumere un operaio costa p, mentrelicenziarne uno costa q. Supponendo che inizialmente vi siano g0 operai, determinare ilnumero di operai che devono essere presenti durante ciascun mese in modo da riuscire

5

Page 6: Esercizi svolti di programmazione lineare - dii.unisi.itdetti/esamisvolt.pdf · Esercizi svolti di programmazione lineare a cura di A. Agnetis 1 Un lani¯cio produce ¯lato di tipo

sempre a produrre la domanda richiesta e da minimizzare i costi complessivi di stipendio+ assunzione + licenziamento.

Soluzione.Le variabili di decisione sono il numero di operai disponibili in ciascun mese, indichi-

amoli con gt, t = 1; : : : ; 12.Per esprimere la funzione obiettivo abbiamo perµo anche bisogno di altre variabili, che

rappresentano il numero di unitµa di personale assunte e licenziate nel mese t. Precisa-mente, At e Lt indicano rispettivamente il numero di persone che sono assunte e licenziateall'inizio del mese t. A questo punto, la funzione obiettivo µe semplicemente

min12X

t=1(sgt + pAt + qLt)

Veniamo ora ai vincoli. Se nel mese t abbiamo a disposizione gt unitµa di personale, sarµapossibile produrre kgt. Per soddisfare la domanda, dovrµa dunque valere, per ogni t:

kgt ¸ dt

Ora, l'unica cosa che manca µe stabilire un legame tra le variabili gt e le At, Lt. Inparticolare, occorre speci¯care che il numero di unitµa di personale presenti al mese t µedato da quelle presenti al mese precedente, piµu gli assunti, meno i licenziati. Dunque, perogni t:

gt+1 = gt + At ¡ Lt

In de¯nitiva, la formulazione completa µe

min12X

t=1(sgt + pAt + qLt)

kgt ¸ dt t = 1; : : : ; 12

gt+1 = gt + At ¡Lt t = 1; : : : ; 12

gt ¸ 0 t = 1; : : : ; 12

5

Sia dato il seguente problema di PL:

max z = 2x1 + 3x2

2x1 + 3x2 · 30

x1 + 2x2 ¸ 10

6

Page 7: Esercizi svolti di programmazione lineare - dii.unisi.itdetti/esamisvolt.pdf · Esercizi svolti di programmazione lineare a cura di A. Agnetis 1 Un lani¯cio produce ¯lato di tipo

x1 ¡ x2 · 1

x2 ¡ x1 · 1

x1 ¸ 0

a) Scrivere il problema dualeb) Utilizzando le condizioni di ottimalitµa, e senza usare il metodo del simplesso, trovare

la soluzione ottima del duale sapendo che quella del primale µe (27=5; 32=5).

Soluzione.Riscriviamo il problema riordinandolo in modo da rendere piµu agevole il calcolo del

duale.

max z = 2x1 + 3x2

2x1 + 3x2 · 30

¡x1 ¡ 2x2 · ¡10

x1 ¡ x2 · 1

¡x1 + x2 · 1

x1 ¸ 0

Il duale µe quindi

min 30u1 ¡ 10u2 + u3 + u4

2u1¡ u2 + u3¡ u4 ¸ 2

3u1 ¡ 2u2 ¡ u3 + u4 = 3

ui ¸ 0

Inserendo la soluzione (27=5; 32=5) nel primale, osserviamo che il primo e il quartovincolo sono attivi, mentre il secondo e il terzo no. Di conseguenza, u2 = 0 e u3 =0. Inoltre, poich¶e x1 = 27=5 > 0, il primo vincolo del duale deve essere soddisfattoall'uguaglianza, e in de¯nitiva rimane il sistema di due equazioni in due incongnite:

2u1 ¡u4 = 2

3u1 + u4 = 3

che dµa u1 = 1, u4 = 0. Siccome questi valori sono non negativi, la soluzione trovataµe ammissibile per il problema duale e quindi µe ottima. A scopo di veri¯ca, si puµo vedereche i valori delle funzioni obiettivo dei due problemi nei due punti (27=5; 32=5) e, rispet-tivamente, (1; 0; 0; 0), valgono entrambe 30.

7

Page 8: Esercizi svolti di programmazione lineare - dii.unisi.itdetti/esamisvolt.pdf · Esercizi svolti di programmazione lineare a cura di A. Agnetis 1 Un lani¯cio produce ¯lato di tipo

6

Un allevatore vuole dare al proprio bestiame una certa quantitµa giornaliera b (in grammi)di vitamine. Per fare questo, esamina n diversi mangimi, e per ciascuno di essi rileva igrammi ai di vitamine presenti in un etto di mangime, e il costo ci di un etto di mangime.Il problema µe quello di fornire la quantitµa di vitamine b richiesta, minimizzando i costi.Detto k lindice per cui si ha il minimo dei rapporti ci=ai, ovvero

ckak

= minjf cjajg

(Supponiamo per semplicitµa che tale minimo sia raggiunto per un solo mangime k.) Utiliz-zando gli strumenti della teoria della dualitµa, dimostrare che la decisione piµu convenienteconsiste nellacquistare b=ak etti del solo mangime k.

Soluzione.Per risolvere il problema, basta scrivere la formulazione e il problema duale. Indicando

con xj la quantitµa di etti di mangime j da comprare, il problema µe:

min c1x1 + c2x2 + : : :+ cnxn

a1x1 + a2x2 + : : : + anxn ¸ b

xj ¸ 0

Essendoci un solo vincolo, il problema duale avrµa una sola variabile, inidichiamola conu:

max bu

a1u · c1

a2u · c2

: : :

anu · cn

u ¸ 0

Essendo ovviamente b > 0, il duale consiste dunque nel massimizzare il valore di u. µEevidente allora che il valore che limita u µe il piµu piccolo dei rapporti cj=aj, cioµe

u¤ =ckak

Il valore ottimo della funzione obiettivo del problema duale sarµa dunque

bu¤ = bckak

8

Page 9: Esercizi svolti di programmazione lineare - dii.unisi.itdetti/esamisvolt.pdf · Esercizi svolti di programmazione lineare a cura di A. Agnetis 1 Un lani¯cio produce ¯lato di tipo

Ora, solo il k-esimo vincolo del duale µe attivo in u¤. Il fatto che gli altri non siano attivi,per la complementarietµa implica che x¤j = 0 per ogni j6= k, e quindi la funzione obiettivodel primale all'ottimo vale

ckx¤k

Per la dualitµa forte, questo deve uguagliare b ckak , da cui

x¤k =bak

che µe quanto si voleva dimostrare.

7

Si consideri il seguente problema di programmazione lineare

min z = 2x1 + x2 + 3x3 + x4

3x1 + x2 = 2

x2 + 2x3 = 4

x3 + 4x4 = 5

xi ¸ 0

1. Trovare la soluzione ottima del problema, sapendo che la soluzione ottima del prob-lema duale µe (-3/8,11/8,1/4).

2. Determinare in quale range puµo variare il termine noto della seconda riga (attual-mente al valore 4) senza che vari la base ottima.

Soluzione.Il problema duale µe

min 2u1 + 4u2 + 5u3

3u1 · 2

u1 + u2 · 1

2u2 + u3 · 3

4u3 · 1

ui ¸ 0

Inserendo la soluzione (¡3=8; 11=8; 1=4), osserviamo che solo il primo dei vincoli dualinon µe attivo. Di conseguenza, deve essere x1 = 0. Dalla prima equazione del primale si

9

Page 10: Esercizi svolti di programmazione lineare - dii.unisi.itdetti/esamisvolt.pdf · Esercizi svolti di programmazione lineare a cura di A. Agnetis 1 Un lani¯cio produce ¯lato di tipo

ricava allora x2 = 2, e successivamente dalle altre x3 = 1 e x4 = 1. Poich¶e tutti i valoritrovati sono non negativi, la soluzione trovata per il primale µe dunque ottima.

Per rispondere alla seconda domanda, osserviamo che la base ottima µe [A2; A3; A4],ossia

B =

0B@

1 0 01 2 00 1 4

1CA

e dunque

B¡1 =

0B@

1 0 0¡1

212 0

18 ¡1

814

1CA

A fronte di una variazione ¢b del vettore dei termini noti, la base rimane ammissibile(e quindi ottima, dal momento che non variano i costi ridotti) ¯ntanto che

B¡1(b+ ¢b) ¸ 0

ossia0B@

1 0 0¡1

212 0

18 ¡1

814

1CA

0B@

24 + ¢b2

5

1CA =

0B@

21 + 1

2¢b21¡ 1

8¢b2

1CA ¸ 0

e dunque in de¯nitiva si ottiene il range ¡2 · ¢b2 · 8.

8

Una fonderia utilizza quattro tipi di materiale grezzo, per ottenere un prodotto ¯nale.Ciascun materiale ha un diverso contenuto di alluminio, silicio e carbonio. La tabellache segue riporta la composizione di ciascun materiale (espresso in percentuale sul pesototale), insieme al costo unitario.

% alluminio % silicio %carbonio costo al kgmateriale 1 3 4 6 680materiale 2 5 4 5 750materiale 3 1 2.5 4 450materiale 4 4 5 7 870

Il prodotto ¯nale deve avere un contenuto percentuale di alluminio di almeno il 3% enon superiore all'8%; un contenuto di silicio tra il 4% e il 5%; di carbonio non superioreal 5%. Formulare come PL il problema di piani¯care la produzione di questa fonderiaminimizzando i costi.

10

Page 11: Esercizi svolti di programmazione lineare - dii.unisi.itdetti/esamisvolt.pdf · Esercizi svolti di programmazione lineare a cura di A. Agnetis 1 Un lani¯cio produce ¯lato di tipo

Soluzione.Il problema puµo essere formulato introducendo le variabili xi, i = 1; : : : ; 4, pari alla

quantitµa (in kg) di materiale i che deve essere impiegata per ottenere un kg di prodotto¯nale. Una formulazione del problema µe quindi:

min 680x1 + 750x2 + 450x3 + 870x4

0; 03x1 + 0; 05x2 + 0; 01x3 + 0; 04x4 ¸ 0; 03 (1)

0; 03x1 + 0; 05x2 + 0; 01x3 + 0; 04x4 · 0; 08 (2)

0; 04x1 + 0; 04x2 + 0; 025x3 + 0; 05x4 ¸ 0; 04 (3)

0; 04x1 + 0; 04x2 + 0; 025x3 + 0; 05x4 · 0; 05 (4)

0; 06x1 + 0; 05x2 + 0; 04x3 + 0; 07x4 · 0; 05 (5)

x1 + x2 + x3 + x4 = 1 (6)

xi ¸ 0 i = 1; : : : ; 4 (7)

I primi due vincoli (1) e (2) sono relativi alla concentrazione di alluminio, i vincoli (3) e(4) riguardano la concentrazione di silicio, ed il vincolo 5 quella del carbonio. Il vincolo(6) impone che la somma delle variabili sia pari ad 1 (kg). I vincoli (7), in¯ne, sono vincolidi non negativitµa.

9

Sia dato il seguente problema di PL:

min z = 7x1 + 10x2

2x1 ¡ 4x2 + x3 · 10

x1 + 2x2 ¡x3 ¸ 5

x1 ¡ 3x2 + 3x3 ¸ 4

xj ¸ 0

Scrivere il duale e trovarne la soluzione ottima sapendo che quella del primale µe x¤ =(23=5; 1=5; 0).

Soluzione.Il problema duale µe:

maxw = ¡10u1 + 5u2 + 4u3

¡2u1 + u2 + u3 · 7

4u1 + 2u2 ¡ 3u3 · 10

11

Page 12: Esercizi svolti di programmazione lineare - dii.unisi.itdetti/esamisvolt.pdf · Esercizi svolti di programmazione lineare a cura di A. Agnetis 1 Un lani¯cio produce ¯lato di tipo

¡u1 ¡ u2 + 3u3 · 0

ui ¸ 0

Dalle condizioni di complementarietµa seguono le seguenti considerazioni:

² poich¶e in corrispondenza della soluzione ottima il primo vincolo del primale non µeattivo si deve avere u¤1 = 0;

² poich¶e x¤2 e x¤3 sono diverse da zero, nella soluzione ottima del duale il secondo eterzo vincolo duale devono essere soddifatti all'uguaglianza.

Si ottiene quindi il sistema di equazioni:

u¤1 = 0

u¤2 + u¤3 = 7

2u¤2 ¡ 3u¤3 = 10

da cui u¤ = (0; 31=5; 4=5). Poich¶e tutte queste componenti sono non negative talesoluzione µe ammissibile per il duale e quindi ottima.

10

La Lµamed µe una societµa che produce snack per aperitivi. La disponibilitµa di materieprime, alla ¯ne di gennaio, µe la seguente: 550 kg di arachidi, 150 kg di pistacchi, 90 kg dimandorle e 70 kg di nocciole. Ogni scatola contiene 500 grammi di prodotto. La Lµamedproduce quattro tipi di snack, descritti di seguito:

prodotto composizione pro¯tto (lire/scatola)Mem solo arachidi 260Num non piµu del 50% di arachidi 400

almeno il 10% di mandorlealmeno il 15% di pistacchi

Pe solo pistacchi 510Qof almeno il 30% di pistacchi 520

almeno il 20% di mandorlealmeno il 30% di nocciole

Supponendo che tutto quanto prodotto viene venduto, formulare come PL il problema dimassimizzare il pro¯tto della Lµamed.

Soluzione.Il problema puµo essere formulato introducendo le seguenti variabili:

12

Page 13: Esercizi svolti di programmazione lineare - dii.unisi.itdetti/esamisvolt.pdf · Esercizi svolti di programmazione lineare a cura di A. Agnetis 1 Un lani¯cio produce ¯lato di tipo

² xAM= quantitµa di arachidi (in kg) utilizzate per produrre snack di tipo Mem;

² xAN= quantitµa di arachidi (in kg) utilizzate per produrre snack di tipo Num;

² xMN= quantitµa di mandorle (in kg) utilizzate per produrre snack di tipo Num;

² xNN= quantitµa di nocciole (in kg) utilizzate per produrre snack di tipo Num;

² xPN= quantitµa di pistacchi (in kg) utilizzati per produrre snack di tipo Num;

² xPP= quantitµa di pistacchi (in kg) utilizzati per produrre snack di tipo Pe;

² xAQ= quantitµa di arachidi (in kg) utilizzate per produrre snack di tipo Qof;

² xMQ= quantitµa di mandorle (in kg) utilizzate per produrre snack di tipo Qof;

² xNQ= quantitµa di nocciole (in kg) utilizzate per produrre snack di tipo Qof;

² xPQ= quantitµa di pistacchi (in kg) utilizzati per produrre snack di tipo Qof;

² yM= numero di scatole di snack di tipo Mem prodotte;

² yN= numero di scatole di snack di tipo Num prodotte;

² yP= numero di scatole di snack di tipo Pe prodotte;

² yQ= numero di scatole di snack di tipo Qof prodotte.

Stiamo supponendo per semplicitµa che le variabili yi non siano vincolate a essere intere.Una formulazione del problema µe quindi:

max 260yM + 400yN + 510yP + 520yQ

xAM = 0; 5yM (8)

xAN + xMN + xPN + xNN = 0; 5yN (9)

xPP = 0; 5yP (10)

xAQ + xMQ + xNQ + xPQ = 0; 5yQ (11)

xAN · 0; 25yN (12)

xMN ¸ 0; 05yN (13)

xPN ¸ 0; 075yN (14)

xMQ ¸ 0; 1yQ (15)

13

Page 14: Esercizi svolti di programmazione lineare - dii.unisi.itdetti/esamisvolt.pdf · Esercizi svolti di programmazione lineare a cura di A. Agnetis 1 Un lani¯cio produce ¯lato di tipo

xNQ ¸ 0; 15yQ (16)

xPQ ¸ 0; 15yQ (17)

xAM + xAN + xAQ · 550 (18)

xPP + xPN + xPQ · 150 (19)

xMN + xMQ · 90 (20)

xNN + xNQ · 70 (21)

x; y ¸ 0 (22)

I vincoli (8){(11) legano tra di loro le variabili x ed y relative ai quattro diversi prodotti.Si ricordi che una scatola pesa mezzo chilo, dunque se yi µe il numero di scatole di snacki, 0:5yi indica il numero di chili prodotti di quello snack. I vincoli (12){(14) e (15){(17)rappresentano i vincoli sulle composizioni degli snack Num e Qof rispettivamente. In¯ne,i vincoli (18){(21) impongono che la produzione non utilizzi piµu delle quantitµa massimedi materie prime disponibili.

11

Si consideri il seguente problema di programmazione lineare.

min z = 2x1 + 3x2 + 4x3 + x4

2x1 + x2 + x3 = 1

x1 + 3x2 + 0:5x4 = 2

xj ¸ 0

Veri¯care che la base ottima µe [A1A2]. Qual µe la soluzione ottima x¤?

Soluzione.Calcoliamo i coe±cienti di costo ridotto delle variabili fuori base x3 e x4 e veri¯chiamo

che siano positivi.

¹cTF = [ ¹c3 ¹c4 ] = ¹cTF ¡ ¹cTBB¡1F = [ 4 1 ]¡ [ 2 3 ]

·2 11 3

¸¡1 ·1 00 0; 5

¸=

= [ 4 1 ]¡ [ 2 3 ] (1=5)·

3 ¡1¡1 2

¸ ·1 00 0; 5

¸= [ 17=5 3=5 ]

La base considerata µe quindi ottima. La soluzione ottima µe:

x¤ =

264B¡1b

00

375 =

26664

1=53=500

37775

14

Page 15: Esercizi svolti di programmazione lineare - dii.unisi.itdetti/esamisvolt.pdf · Esercizi svolti di programmazione lineare a cura di A. Agnetis 1 Un lani¯cio produce ¯lato di tipo

12

Studiando il comportamento resistivo di un nuovo materiale superconduttore, uno scien-ziato sottopone un campione del materiale a un valore di tensione x, e misura la correntey da cui viene attraversato. In cinque esperimenti, egli ha ottenuto i seguenti valori.

tensione (V) corrente (A)1 0.232 0.453 0.794 1.255 1.85

Secondo la sua teoria, la dipendenza tra tensione (x) e corrente (y) puµo essere espressanella forma y = f (x) = ax3 +bx2 +cx+d. Il problema µe quello di determinare i parametritali da minimizzare la somma degli scarti in valore assoluto dei punti che rappresentano irisultati degli esperimenti rispetto ai corrispondenti punti sulla curva f(x). Formulare ilproblema come PL.

Soluzione.Si indichino con xi e yi, i = 1; : : : ;5, i valori di tensione e di corrente riportati in

tabella. Il problema puµo essere formulato introducendo le variabili ausiliarie s1; : : : ; s5,nel seguente modo:

min s1 + s2 + s3 + s4 + s5

jyi ¡ ax3i + bx2

i + cxi + dj · si i = 1; : : : ; 5

i vincoli possono essere linearizzati ottenendo la seguente formulazione di PL:

min s1 + s2 + s3 + s4 + s5

yi ¡ ax3i + bx2

i + cxi + d · si i = 1; : : : ; 5

yi ¡ ax3i + bx2

i + cxi + d ¸ ¡si i = 1; : : : ; 5

15

Page 16: Esercizi svolti di programmazione lineare - dii.unisi.itdetti/esamisvolt.pdf · Esercizi svolti di programmazione lineare a cura di A. Agnetis 1 Un lani¯cio produce ¯lato di tipo

13

Avete deciso di organizzare una cena a casa vostra. Poich¶e perµo siete troppo impegnatia studiare per l'esame di Ricerca Operativa, avete pensato bene di far cucinare i vostriamici, che d'altra parte sono ben lieti di aiutarvi. Dopo aver lungamente meditato sullecapacitµa culinarie dei vostri amici, siete giunti a stilare la seguente tabella, dove la cifraindica il vostro giudizio sulla corrispondente pietanza preparata dal vostro amico/a.

amico/a Antipasti Primi Secondi Contorni DolciAndrea 7 6 5 7 8Barbara 6 8 7 6 5Ciccio 6 5 4 4 8

Doriana 7 8 6 6 6Everardo 5 6 7 5 0Florinda 7 8 8 8 6Gimmi 7 7 5 5 6

Il problema µe quello di decidere se e cosa far preparare a ognuno, considerando che lavostra cena consisterµa di una pietanza di ciascun tipo (ossia un antipasto, un primo, unsecondo etc.) e che per discrezione non intendete chiedere a nessuno di preparare piµu diuna pietanza.

1) Formulare in termini di programmazione lineare a numeri interi il problema di mas-simizzare la qualitµa della vostra cena

2) Cosa si puµo dire sulla possibilitµa di risolvere il problema facendo uso della program-mazione lineare?

Soluzione.Indicando i sette amici con A; : : : ; G e le cinque pietanze con 1; : : : ; 5, le variabili di

decisione sono del tipo xij = 1 se i preparerµa la pietanza j, e xij = 0 altrimenti, coni = A;B; : : : ; G e j = 1; : : : ; 5. La formulazione µe quindi

max 7xA1 + 6xA2 + 5xA3 + 7xA4 + 8xA5+

6xB1 + 8xB2 + 7xB3 + 6xB4 + 5xB5+

6xC1 + 5xC2 + 4xC3 + 4xC4 + 8xC5+

7xD1 + 8xD2 + 6xD3 + 6xD4 + 6xD5+

5xE1 + 6xE2 + 7xE3 + 5xE4+

7xF1 + 8xF2 + 8xF3 + 8xF4 + 6xF5+

7xG1 + 7xG2 + 5xG3 + 5xG4 + 6xG5

16

Page 17: Esercizi svolti di programmazione lineare - dii.unisi.itdetti/esamisvolt.pdf · Esercizi svolti di programmazione lineare a cura di A. Agnetis 1 Un lani¯cio produce ¯lato di tipo

5X

j=1xij = 1 i = A; : : : ; G

GX

i=Axij = 1 j = 1; : : : ; 5

xij 2 f0; 1g

µE facile vedere che la matrice dei coe±cienti del problema coincide con la matricedi incidenza di un grafo bipartito (avente 7 nodi da una parte, l'insieme degli invitati,e 5 dall'altra, l'insieme delle pietanze) completo, ossia in cui ogni nodo µe collegato contutti gli altri nell'altro insieme. Siccome tale matrice µe totalmente unimodulare, si ha chepossiamo risolvere il problema trascurando il vincolo di interezza e a®rontandolo come unqualsiasi problema di programmazione lineare.

14

Si consideri il seguente problema di programmazione lineare

min z = x1 + 2x2 ¡ x3 + 2x4

3x1 + x2 ¡ x3 = 2

x2 ¡ 2x3 = 1

x3 + 4x4 = 5

xi ¸ 0

1. Dimostrare che, nella soluzione ottima, x3 = 0.

2. Calcolare la soluzione ottima del problema duale.

Soluzione.Se nella soluzione ottima x3 = 0, necessariamente deve essere x4 = 5=4, x2 = 1, e, dalprimo vincolo, x1 = 2=3. Questa µe una soluzione ammissibile per il problema primale inquanto tutte le variabili sono non negative. Ora, per dimostrare che µe ottima, possiamoal solito seguire due strade: calcolare i costi ridotti oppure usare le condizioni di KKT.Seguiamo quest'ultima strada, visto che dobbiamo anche calcolare l'ottimo del duale. Ilproblema duale µe:

max 2u1 + u2 + 5u3

3u1 · 1

17

Page 18: Esercizi svolti di programmazione lineare - dii.unisi.itdetti/esamisvolt.pdf · Esercizi svolti di programmazione lineare a cura di A. Agnetis 1 Un lani¯cio produce ¯lato di tipo

u1 + u2 · 2

¡u1 ¡ 2u2 + u3 · ¡1

4u3 · 2

ui ¸ 0

Dalla soluzione del primale, che vogliamo dimostrare essere ottima, (2=3; 1; 0; 5=4), dis-cende che il primo, il secondo e il quarto vincolo del duale devono essere attivi. Dal primosi ricava u1 = 1=3, dal secondo u2 = 5=3 e dal quarto u3 = 1=2. Inserendo questi valorinel terzo vincolo, si ha

¡13¡ 10

3+

12· ¡1

che µe soddisfatto, e dunque le soluzioni (2=3; 1; 0; 5=4) e (1=3; 5=3; 1=2) sono ottime per irispettivi problemi. Come veri¯ca possiamo calcolare i valori delle due funzioni obiettivo,entrambi pari a 29/6.

15

Un'o±cina meccanica produce pezzi di ricambio per trattori. I vari ricambi possono essereraggruppati in 5 tipi, ognuno dei quali richiede un certo tempo di lavorazione su varimacchinari. Il tempo (in ore) richiesto da ciascun pezzo su ciascuna macchina, il pro¯tto(in migliaia di lire) derivante dalla produzione di ciascun pezzo e il tempo-macchinadisponibile nel prossimo mese sono indicati in tabella.

1 2 3 4 5 ore disponibilifresatura 2 1.5 1 1 2 200

taglio 1 2 2.5 2 1 80ispezione 2 1 2 1.5 1.5 100

pro¯tto un. 100 60 90 80 60

Un vostro collega sostiene che la cosa piµu conveniente µe produrre solo pezzi dei primidue tipi, e di non usare tutte le 200 ore di fresatura disponibili (mentre le ore di taglio eispezione vanno usate completamente). Sapreste dire se ha ragione o meno?

Soluzione.Si tratta di un classico problema di allocazione di risorse. Indichiamo con x1; : : : ; x5 levariabili di decisione, che rappresentano il numero di unitµa dei cinque tipi che devonoessere prodotte. La formulazione µe quindi, in forma standard

max 100x1 + 60x2 + 90x3 + 80x4 + 60x5

18

Page 19: Esercizi svolti di programmazione lineare - dii.unisi.itdetti/esamisvolt.pdf · Esercizi svolti di programmazione lineare a cura di A. Agnetis 1 Un lani¯cio produce ¯lato di tipo

2x1 + 1:5x2 + 1x3 + 1x4 + 2x5 + s1 = 200

1x1 + 2x2 + 2:5x3 + 2x4 + 1x5 + s2 = 80

2x1 + 1x2 + 2x3 + 1:5x4 + 1:5x5 + s3 = 100

xj ¸ 0

dove si noti l'aggiunta delle variabili di slack. Dalle informazioni date, abbiamo che labase ottima proposta µe costituita dalle variabili x1, x2 e s1, dunque si tratta di

B =

0B@

2 32 1

1 2 02 1 0

1CA

da cui

B¡1 =

0B@

0 ¡13

23

0 23 ¡1

31 1

3 ¡56

1CA

mentre

F =

0B@

1 1 2 0 052 2 1 1 02 3

232 0 1

1CA cTB = (¡100 ¡ 60 0) cTF = (¡90 ¡ 80 ¡ 60 0 0)

inserendo i valori numerici nell'espressione dei costi ridotti si ha

¹cTF = cTF ¡ cTBB¡1F =

(¡90 ¡ 80 ¡ 60 0 0) ¡ (¡330=3 ¡ 250=3 ¡ 230=3 ¡ 20=3 ¡ 140=3)

e dunque, poich¶e ¹cTF ¸ 0, dovete concludere che il vostro collega ha ragione.

16

Si consideri il seguente problema di programmazione lineare

min z = 2x1 + 4x2 + 2x3 ¡ x4

3x1 + x2 ¸ 2

x2 + 2x3 = 4

x3 + 4x4 · 5

xi ¸ 0

Dimostrare che la soluzione ottima del problema µe (2/3,0,2,3/4).

Svolgimento

19

Page 20: Esercizi svolti di programmazione lineare - dii.unisi.itdetti/esamisvolt.pdf · Esercizi svolti di programmazione lineare a cura di A. Agnetis 1 Un lani¯cio produce ¯lato di tipo

La soluzione data µe ottima se e solo se esiste una soluzione duale u¤ tale che:

x¤i (c ¡ATu¤)i = 0; i = 1; : : : ;m

Dunque, non dobbiamo far altro che scrivere il problema duale e veri¯care che in cor-rispondenza delle componenti non nulle di x¤, il sistema di equazioni formate dai vincoliattivi nel problema duale sia soddisfatto. Il duale µe

maxw = 2u1 + 4u2 + 5u3

3u1 · 2

u1 + u2 · 4

2u2 + u3 · 2

4u3 · ¡1

u1 ¸ 0

u3 · 0

Dunque, il sistema µe composto dalle seguenti equazioni:

3u1 = 2

2u2 + u3 = 2

4u3 = ¡1

u1 ¸ 0

u3 · 0

da cui otteniamo

u1 = 2=3

u2 = 7=8

u3 = ¡1=4

la soluzione soddisfa i vincoli sulle variabili duali, quindi possiamo concludere che x¤

µe ottima. Per veri¯ca, andiamo a calcolare il valore delle funzioni obiettivo. Questerisultano pari a 2(2=3)+4(0)+ 2(2)¡(3=4) = 55=12 e 2(2=3) +4(9=8) +5(¡1=4) = 55=12rispettivamente, come volevasi dimostrare.

20

Page 21: Esercizi svolti di programmazione lineare - dii.unisi.itdetti/esamisvolt.pdf · Esercizi svolti di programmazione lineare a cura di A. Agnetis 1 Un lani¯cio produce ¯lato di tipo

17

La Kilim vende elettrodomestici, e deve inviare frigoriferi in quattro localitµa diverse. Nellalocalitµa j devono essere spediti dj frigoriferi, j = 1; : : : ; 4. Per soddisfare questa domanda,la Kilim puµo attingere da tre depositi dislocati sul territorio nazionale, A, B e C. Nei tredepositi sono presenti sA, sB e sC frigoriferi rispettivamente. Spedire un frigorifero daldeposito i alla localitµa j ha un costo pari a cij. Non µe tecnicamente possibile spedirefrigoriferi dal deposito B alla localitµa 3. La tabella riporta i dati del problema.

1 2 3 4 siA 21 25 31 34 100B 23 19 +1 32 60C 36 27 25 19 50dj 40 50 50 70

1. Formulare come programmazione lineare il problema di decidere come spedire ifrigoriferi in modo da minimizzare i costi.

2. Cosa si puµo dire relativamente all'interezza della soluzione ottima?

Soluzione.Il problema µe un classico problema di trasporti. Indichiamo con xij il numero di frigoriferida inviare dal deposito i alla localitµa j. I vincoli di disponiblitµa dei frigoriferi per ognisorgente sono espressi da:

xA1 + xA2 + xA3 + xA4 · 100

xB1 + xB2 + xB4 · 60

xC1 + xC2 + xC3 + xC4 · 50

(23)

Analogamente, formuliamo i vincoli di domanda per ogni localitµa:

xA1 + xB1 + xC1 ¸ 40

xA2 + xB2 + xC2 ¸ 50

xA3 + xC3 ¸ 50

xA4 + xB4 + xC4 ¸ 70

(24)

21

Page 22: Esercizi svolti di programmazione lineare - dii.unisi.itdetti/esamisvolt.pdf · Esercizi svolti di programmazione lineare a cura di A. Agnetis 1 Un lani¯cio produce ¯lato di tipo

A questi vanno aggiunti i vincoli di non negativitµa delle variabili, cioµe

xij ¸ 0 peri = A;B;C j = 1; 2; 3; 4

La funzione obiettivo da minimizzare µe allora la seguente:

f(x) = 21xA1 + 25xA2 + 31xA3 + 34xA4 + +23xB1 + 19xB2 + 32xB3+

+36xC1 + 27xC2 + 25xC3 + 19xC4

Essendo la matrice dei coe±cienti totalmente unimodulare, le soluzioni risultano averevalori interi.

18

Dato il seguente problema di programmazione lineare

min z = 2x1 + x2 + 6x3 ¡ x4

3x1 + x2 ¡ x5 = 2

x2 + 4x3 = 4

x3 + 4x4 + x6 = 5

xi ¸ 0

si consideri l'insieme di colonne (A2; A4; A5), indicare se individua o meno una base, e intal caso se si tratta di una base ammissibile e/o ottima.

Soluzione.Perch¶e (A2; A4; A5) sia una base, occorre semplicemente che essa sia non singolare. Sivede a occhio che i tre vettori non sono linearmente dipendenti, tuttavia, per accertarcenecalcoliamo la matrice inversa, che ci tornerµa utile in seguito. Calcoliamo l'inversa con ilmetodo di Gauss. Consideriamo la matrice (B; I) dove B = (A2 A4 A5) e I µe la matriceidentitµa 3x3.

0B@

1 0 ¡1 1 0 01 0 0 0 1 00 4 0 0 0 1

1CA

Riscriviamo la matrice con la prima riga per ultima, e sottraiamo la prima riga alla terza.Otteniamo cosµi

0B@

1 0 0 0 1 00 4 0 0 0 10 0 ¡1 1 ¡1 0

1CA

22

Page 23: Esercizi svolti di programmazione lineare - dii.unisi.itdetti/esamisvolt.pdf · Esercizi svolti di programmazione lineare a cura di A. Agnetis 1 Un lani¯cio produce ¯lato di tipo

Poi dividiamo la seconda riga per 4 e moltiplichiamo la terza riga per -1. Otteniamo cosµi0B@

1 0 0 0 1 00 1 0 0 0 1=40 0 1 ¡1 1 0

1CA

Dunque, la matrice inversa B¡1 µe0B@

0 1 00 0 1=4¡1 1 0

1CA

Perch¶e sia una base ammissibile, occorre che risulti B¡1b ¸ 0. Facendo i calcoli, troviamoche

0B@

0 1 00 0 1=4¡1 1 0

1CA (2 4 5)T = (4 5=4 2) ¸ 0

Dunque, l'insieme B = (A2 A4 A5) µe una base ammissibile. Per veri¯care se µe ancheottima, occorre che i costi ridotti delle colonne non in base siano non negativi, ovvero,che

cTF ¡ cTBB¡1 F ¸ 0

ossia che

(2 6 0)T ¡ (1 ¡ 1 0)T

0B@

0 1 00 0 1=4¡1 1 0

1CA

0B@

3 0 00 ¡4 10 0 1

1CA ¸ 0

facendo gli opportuni calcoli, otteniamo il vettore (0 ¡ 4 3=4) che ha una componentenegativa, per cui la base B = (A2 A4 A5) non µe ottima.

19

Un agricoltore possiede 100 ettari di terreno che intende usare per coltivare grano, mais,canna da zucchero, erba da pascolo. Dei 100 ettari disponibili, 10 sono adatti perqualunque coltivazione, 50 sono adatti per qualunque coltivazione tranne che la cannada zucchero mentre i rimanenti 40 ettari possono essere adibiti solo a erba da pascolo.Inoltre, l'agricoltore puµo allevare delle mucche che richiedono, ciascuna, mezzo ettaro diterreno adibito a pascolo e che vengono vendute dopo un anno. L'agricoltore e i suoifamiliari non intendono lavorare, nell'arco del prossimo anno, piµu di 2000 ore complessive.

23

Page 24: Esercizi svolti di programmazione lineare - dii.unisi.itdetti/esamisvolt.pdf · Esercizi svolti di programmazione lineare a cura di A. Agnetis 1 Un lani¯cio produce ¯lato di tipo

Grano Mais Canna Erbacosto per ettaro (semi, fertiliz.)(mila lire) 6 3 8 5

prezzo vendita prodotto per ettaro (mila lire) 45 35 100 {ore di lavoro per ettaro (in un anno) 12 14 20 5

Inoltre, allevare una mucca per poi rivenderla dµa un pro¯tto netto di 200 mila lire, e ognimucca richiede in un anno 100 ore di lavoro. Formulare come programmazione lineare ilproblema di massimizzare il pro¯tto dell'agricoltore.

Soluzione.Poich¶e l'agricoltore vuole massimizzare il pro¯tto, appare evidente che tutto il terrenoche puµo essere adibito a pascolo sarµa sfruttato per l'allevamento delle mucche, essendo ilpro¯tto che se ne ottiene maggiore della spesa relativa. Modelliamo il problema con levariabili decisionali xj che rappresentano, per ogni tipo di coltivazione j, la quantitµa diterreno da adibire ad essa.I vincoli sono di due tipi: vincoli sulla disponibilitµa e le caratteristiche del terreno, evincoli sul numero di ore di lavoro. Per i primi, abbiamo che

xC · 10xG · 60xM · 60xE ¸ 40

Il primo vincolo esprime il fatto che la canna da zucchero puµo essere coltivata solo in10 ettari di terreno al massimo, il secondo e il terzo che il grano e il mais possono esserecoltivati dappertutto tranne che nella parte che puµo essere adibita solo a pascolo, e l'ultimoche la quantitµa di terreno per il pascolo µe sicuramente almeno pari a 40 ettari. A questivincoli va aggiunto il vincolo di disponibilitµa totale del terreno, e cioµe

xG + xM + xC + xE · 100

Abbiamo bisogno invece di un unico vincolo sul lavoro, che non deve superare le 2000 orecomplessive.

12xG + 14xM + 20xC + 1=2 100xE · 2000

Ovviamente tutte le variabili devono essere vincolate ad essere positive. In¯ne, la funzioneobiettivo da massimizzare µe data dalla di®erenza tra pro¯tti e costi, e cioµe

f(x) = 45xG + 35xM + 100xC + 1=2 200xE ¡ 6xG ¡ 3xM ¡ 8xC ¡ 5xE

24