You are on page 1of 34

RICERCA OPERATIVA 26/8/2002

COGNOME:
NOME:
MATRICOLA N.:
DOMANDE:
1. Una ditta gestisce la raccolta di erenziata ed il riciclaggio di ri uti
(carta, vetro e alluminio) in quattro siti S1 , S2 , S3 , S4 . Ognuno dei siti
produce le seguenti quantita di ri uti, in quintali/settimana:
S1

S2

S3

S4

Carta
40 40 5 28
Vetro
20 30 90 9
Alluminio 30 50 15 12
La raccolta viene e ettuata con due otte di veicoli attrezzati. La prima
otta e in grado di servire tutti e quattro i siti, con una capacita di
200 quintali/settimana. La seconda otta ha autonomia limitata, e puo
servire soltanto i siti S2 e S3 con una capacita di 90 quintali/settimana.
La raccolta costa, nei quattro siti, 25, 10, 15 e 12 euro/quintale rispettivamente. La ditta riesce ad ottenere un ricavo di 20 euro/quintale
sulla carta, 30 euro/quintale sul vetro e 40 euro/quintale sull'alluminio
raccolti e riciclati in proprio. L'eventuale quantita che non riesce a
raccogliere non da pro tti e viene raccolta da una ditta subappaltatrice, che si fa pagare 15 euro/quintale indipendentemente dal tipo di
ri uti. Formulare il programma lineare per piani care la raccolta di
ri uti settimanale massimizzando i pro tti.
2. Risolvere il seguente problema di programmazione lineare usando l'algoritmo
del simplesso revisionato.
min 2x1 x2 3x3
2x1 + x2 + x3  2
x1 + 3x2 + 2x3  6
x1 ; x2 ; x3  0:
1

3. Nell'algoritmo del simplesso, una soluzione ammissibile di base con


tutti i costi ridotti non negativi risulta ottima. Giusti care tale condizione di ottimalita.
4. Risolvere il seguente problema di trasporto con tre origini (righe) e tre
destinazioni (colonne) e costi, domande ed o erte speci cate in tabella.
1
2 3 a
1 12
3 4 100
2 20
8 1 150
3 2
5 3 70
b
90 160 50
i

5. Sia dato un problema di minimo di programmazione matematica e sia


indicato qui di seguito lo sviluppo parziale dell'albero di ricerca del
Branch and Bound associato. Con P (LB ; U B ) indichiamo rispettivamente il sottoproblema considerato (P ), il suo lower bound (LB ) ed
il suo upper bound (U B ).
i

P0(31,53)
|
___________|___________

|
|
P1(32,47)
|
____|____
|
|
|
|
P11(37,41) P12(39,42)

|
|
P2(33,57)
|
______|_____

|
|
P21

|
|
P22

Se per il problema P2 2 si ha LB2 2 = U B2 2 = 36, per quali valori


di lower bound LB2 1 e upper bound U B2 1 del problema P2 1 , si e in
grado di riconoscere immediatamente la soluzione ottima del problema?
Giusti care la risposta.
;

SOLUZIONE TEMA DESAME DEL 26/08/2002


Domanda 1
Il problema in esame un classico problema di PL in cui lobiettivo la massimizzazione dei
profitti. Il PL proposto costituisce una possibile soluzione al problema.
Dichiarazione delle variabili:
Indichiamo le variabili con tre pedici, uno relativo alla flotta di mezzi che si occupa della raccolta
rifiuti, uno relativo al sito di raccolta, uno relativo al tipo di rifiuti.
U

Xi j k
B

i = {1, 2} flotta di raccolta rifiuti


j = {S1,S2,S3,S4} siti di raccolta
k = {C, V, A} tipi di rifiuti
B

Modello:
U

f.o. max

20 i j X i j C + 30 i j X i j V + 40 i j X i j A - 25 i k X i S1 k - 10 i k X i S2 k +
B

- 15 i k X i S3 k 12 i k X i S4 k - 15 Y
B

s.t.
vincolo di capacit flotte:

prima flotta:

j k X 1 j k 200 q/sett

seconda flotta:

k (X 2 S2 k + X 2 S3 k) 90 q/ sett

vincolo di raccolta di tutti i rifiuti: (40 + 40 + 5 + 28 + 20 + 30 + 90 + 9 + 30 + 50 + 15 + 12)


- i j k Xi j k = Y
B

vincolo limitazione seconda flotta:

X 2 S1 k = 0 per ogni k
B

X 2 S4 k = 0 per ogni k
B

vincoli variabili: X i j k 0
Y0
B

Domanda 2
Risoluzione del problema di programmazione lineare usando lalgoritmo del simplesso revisionato.
Il problema proposto non in forma standard per cui lo riportiamo in tale forma usando variabili di
slack e di surplus.
Forma proposta
min 2x1 x2 3x3
-2x1 + x2 + x3 2
-x1 + 3x2 + 2x3 6
x1,x2,x3 0
B

Forma standard
min 2x1 x2 3x3
-2x1 + x2 + x3 x4 = 2
-x1 + 3x2 + 2x3 + x5 = 6
x1,x2,x3,x4,x5 0

Cerchiamo ora una soluzione di base iniziale e risolvendo la fase 1 col metodo del simplesso
revisionato. Se lottimo del problema artificiale sar pari a 0 allora potremo proseguire con il
metodo del simplesso revisionato per trovare la soluzione ottima del problema. Se lottimo della
fase 1 sar > 0 potremo dire che non esistono soluzioni di base del problema.
Fase 1 : problema artificiale
Possiamo in questo caso impostare un problema artificiale con una o con due variabili artificiali dal
momento che gi X5 presente con coefficienti 0 nel primo vincolo e 1 nel secondo vincolo.
Impostiamo un problema artificiale con una sola variabile artificiale Y.
B

Min Y
s.t.

-2X1 + X2 + X3 X4 + Y = 2
-X1 +3X2 +2X3 + X5 =6
B

-2 1
-1 3

Matrice dei coefficienti : A=

1
2

-1 0
0 1

1
0

BASE [X5 , Y]
B

B= 0
1

1
0

= B-1
P

T= cBT B-1 = [0,1]


P

PB

0
1

= [1,0]

1
0

rD = cDT TD = [ 0 , 0 , 0 , 0 ] [ 1 , 0 ]
B

PB

y2=B-1 a2 =

0
1

1
0

1
3

3
1

b = B-1 b =

0
1

1
0

2
6

6
2

min (6/3,2/1) = 2 ESCE X5


B

-2 1 1 -1 =[2,-1,-1, 1] ENTRA X
2
-1 3 2 0
B

BASE [X2,Y]
B

B=

1
3

DET = -3

1
0
0
1

T= cBT B-1 = [0,1]


P

PB

1/3
-1/3

PB

0
1

a3 = B-1 a3 =
B

b = B-1 b =

0
1

1/3
-1/3

1
2

1/3
-1/3

0
1

1/3
-1/3

= [1,-1/3]

rD = cDT B-1 = [ 0 , 0 , 0 , 0 ] [ 1,-1/3 ] -2


-1
B

B-1 =

-1
0

0
1

= [5/3,-1/3,1,1/3] ENTRA X3

2/3
1/3

=
=

2
6

1
2

ESCE Y

2
0

BASE [X2, X3]


B

B=

1
3

DET = 2 3 = 1 B-1 =

1
2

-2
3

T = cBT B-1 = [0,0]


P

PB

1
-1

-2
3

1
-1

= [0,0]

rD = [0,0,0,1] [0,0] = [0,0,0,1]


B

Ottimo = 0 per fase 1 abbiamo trovato una soluzione ammissibile per il problema assegnato: ora
possiamo passare alla fase 2 per cercare la soluzione ottima del problema di partenza. La base da
cui partiremo sar appunto la base [X2,X3].
B

FASE 2:
U

BASE = [X2,X3]
Min 2X1 X2 3X3
s.t. -2X1 + X2 + X3 X4 = 2
-X1 + 3X2 + 2X3 + X5 = 6
B

-2 1 1 -1 0
-1 3 2 0 1

A=

BASE [X2,X3]
B

B=

1
3

T = cBT B-1 = [-1,-3]


P

PB

rD = [2,0,0] [-7,2]
B

B-1

1
2
-2
3

1
-1

-2
3

1
-1

[2-9,-1+3] = [-7,2]

-2 -1 0 = [-10,-7,-2] ENTRA X1
-1 0 1
B

-2
3

a1 = B-1 a1 =
B

1
-1

-2
-1

3
-5

ESCE X2
B

BASE [X1,X3]
B

-2
-1

B=

1
2
-2/3
-1/3

T = cBT B-1 = [2,-3]


P

PB

1/3
2/3
1 -1
3 0

rD = [-1,0,0] [-1/3, -4/3 ]


B

0
1

-1
0

2/3
1/3

b = B-1b =

-2/3
-1/3

1/3
2/3

2
6

2/3
10/3

-2/3
-1/3

1/3
2/3

1/3
2/3

= [-1+13/3, -1/3, 4/3] ENTRA X4

-2/3
-1/3

= [-1/3,-4/3]

a4 = B-1a4=
B

B-1=

DET= -3

ESCE X1
B

BASE [X4,X3]
B

B=

-1
0

T = [0,-3]
P

-1
0

1/2
1/2

rD = [2,-1,0] [0,-3/2]
B

B-1 =

DET = -2

1
2

-1
0

1/2
1/2

=[0,-3/2]

-2 1 0 = [2,-1,0] [3/2,-9/2,-3/2] = [1/2,7/2,3/2] > 0 OTTIMO


-1 3 1

STOP !
xB = B-1 b =
B

-1 1/2
0 1/2

z =cBT xB = [0,-3]
B

PB

1
3

2
6

1
3

X4 = 1
B

X3 = 3
B

= -9 OTTIMO

Possiamo verificare la soluzione ottenuta sostituendo i valori delle variabili in base nella funzione
obiettivo e nei vincoli.

Domanda 3.
Ricordiamo che
Lalgoritmo del simplesso va applicato ad un problema espresso in forma canonica, ossia a un
problema di minimo con il seguente sistema di vincoli:
x1+ y1,m+1xm+1 + + y1nxn = y10
x2 + y2,m+1xm+1 + + y2nxn = y20

xm + ym,m+1xm+1 + + ymnxn = ym0


B

con x1,,xm : variabili di base


xm+1,,xn : variabili non di base
B

Per una generica soluzione ammissibile di base xT = (xBT, 0) = (y10,,ym0, 0, ,0) abbiamo un
tableau del tipo:
P

x1
1
0
B

x1
x2
.
.
xm
B

xm
0
0

xm+1
y1,m+1
y2,m+1

ym,m+1

PB

xn
y1n
y2n
B

ymn
B

y10
y20
B

ym0
B

Quindi
Indichiamo con z il valore della funzione obiettivo. Abbiamo per una generica soluzione
ammissibile:
z = cT x = c1x1 + c2 x2 + + cnxn
P

Nel caso in cui la soluzione ammissibile sia anche di base abbiamo:


z0 = cBTxB = c1y10 + + cmym0
B

PB

Sviluppando e raccogliendo otteniamo:


z = cTx = z0 + (cm+1 zm+1 )xm+1 + + (cn zn) xn
P

Nellalgoritmo del simplesso si cerca ad ogni iterazione di diminuire il valore della funzione
obiettivo fino al raggiungimento dellottimo. Se abbiamo un cj zj <0 con m+1 j n conviene
scambiare una variabile in base con la variabile xj fuori base perch in questo modo la variabile che
entra in base avr valore 0 e diminuir il valore di z. Otterremo cos una soluzione migliore. Nel
momento in cui tutti i costi ridotti delle variabili fuori base sono 0, possiamo dire di aver trovato
lottimo: se, infatti, facessimo entrare in base variabili il cui costo ridotto 0 avremmo un
aumento di z e dunque un peggioramento della soluzione.
B

Domanda 4
Abbiamo a che fare con un problema di trasporto non bilanciato: possiamo notare che ai bj.
Infatti:
B

ai = 320
B

bj = 300
B

Aggiungiamo quindi una destinazione con costi di trasporto nulli in modo da soddisfare domande e
offerte:
1

ai

12

100

20

150

70

90

160

50

20

bj
B

Ricerca di una soluzione ammissibile di base (metodo dellangolo di nord ovest):

90

10

100

150

90

160

150

50

20

50

20

70

Procediamo alla ricerca dellottimo: f.o. = 2460. Calcolo dei costi ridotti delle variabili fuori base:
Ui

Vi

12

(8)
4

(7)
0

-7

(3)
20

(2)
0

-2

(-17)
2

(-5)
5

19

10

Entra X 3,1 Ciclo di pi e di meno: = min [90, 150, 50] = 50


B

90 -

10 +
150 -

0 +
50 -

20

Ottengo la nuova base:

40

60
100

50

50

20

f.o. = 1610. Calcolo dei costi ridotti delle variabili fuori base:
Ui

Vi

12

(8)
4

(-10)
0

10

(3)
20

(-15)
0

15

(12)
5

(17)
3

-7

-14

Entra X 2 4 . Ciclo di pi e di meno :


B

40 -

= 20
60 +
100 -

50

50 +

+
20 -

Ottengo la nuova base:


20

80
80

50

20

70

f.o.= 1310. Calcolo dei costi ridotti delle variabili fuori base:
Ui

Vi

12

(8)
4

(5)
0

-5

(3)
20

( 12 )
5

( 17)
3

( 15 )
0

- 15

17

Tutti i costi ridotti delle variabili fuori base sono positivi. Abbiamo trovato la soluzione ottima
(opt=1310) con in base le variabili segnate in grassetto.

Domanda 5.
Come sappiamo, le condizioni di chiusura di un nodo sono le seguenti:
- il problema associato a quel nodo non pi ammissibile. Scendendo lungo lalbero aggiungo
vincoli al problema di partenza assegnando dei valori alle variabili critiche. E possibile che,
cos facendo, i vincoli lungo quel ramo siano in contraddizione tra di loro e impediscano quindi
di trovare una soluzione ammissibile;
- UB = LB, cio troviamo una soluzione intera ammissibile ottima per quel nodo (il che non
implica necessariamente di aver trovato la soluzione ottima del problema);
- la Z* intera gi trovata (cio la soluzione intera ammissibile migliore trovata nellesplorazione
dei vari nodi) tale per cui UBZ* in un problema di massimo o tale per cui LBZ* in un
problema di minimo.
Nel nostro caso abbiamo a che fare con un problema di minimo e dobbiamo cercare quei valori di
UB e LB associati a P21 che ci consentano di riconoscere immediatamente la soluzione ottima del
problema, che potr essere Z*=36 (soluzione trovata per P22 ammissibile intera) oppure una
soluzione ancora migliore.
La Z* pari a 36 in quanto 36, oltre ad essere una soluzione ammissibile per P22, la soluzione
ammissibile (intera) migliore trovata esplorando lalbero. Z* quindi minore del LB di P11 e di
P12: possiamo quindi chiudere questi nodi perch procedendo nella ricerca non potremo trovare
soluzioni migliori.
Per poter essere in grado di riconoscere immediatamente la soluzione ottima del problema
dobbiamo solamente poter chiudere P21. Se LB21> 36, allora potremo chiudere P21 per assenza di
cammino migliorante (indipendentemente dal fatto che si abbia LB21=UB21 oppure LB21 UB21) e la
soluzione ottima del problema coincider con la soluzione ammissibile di P22.
Se invece abbiamo LB21<36, per chiudere il nodo necessario che P21 abbia soluzione ammissibile
(altrimenti dovremmo procedere nella sua esplorazione). Non potendo inoltre avere LB pi piccolo
del LB del nodo padre, si avr che:
33LB2,1=UB2,136
B

RICERCA OPERATIVA 31/1/2003


COGNOME:
NOME:
MATRICOLA N.:
DOMANDE:
1. Formulare un modello di Programmazione Lineare relativo al problema
di massimo usso del grafo in gura (i valori sugli archi rappresentano
le capacita degli archi stessi) che consideri anche il seguente vincolo
aggiuntivo: se gli archi (3; 2) e (3; 5) hanno usso > 0 allora l'arco 6; 4
deve avere usso nullo.
3

2
1
1

3
4

3
1

2. Risolvere con il simplesso revisionato il seguente problema di P.L. partendo dalla base [x1 ; x2 ]
max 2x1 + x2 + 5x3 + 6x4
s. a 3x1 + x2 + x3 + 2x4 = 4
x1 + 3x2 + 2x3 + x4 = 4
xi  0
8i
3. In quali condizioni l'algoritmo del simplesso puo trovarsi a ciclare all'in nito
senza raggiungere l'ottimo se non viene applicata la regola di Bland?
4. Perche l'algoritmo di Bellman-Ford riesce ad individuare cicli di lunghezza
negativa (quando esistono) nel problema del cammino minimo?
5. Descrivere la procedura per il calcolo dei moltiplicatori nell'algoritmo
di Dantzig per il problema del trasporto.
6. Risolvere, con l'algoritmo del Branch and Bound, il seguente problema
dello zaino:
max 16x1 + 6x2 + 28x3 + 36x4 + 3x5
s. a 7x1 + 3x2 + 10x3 + 12x4 + 2x5  21
x1 ; x2 ; x3 ; x4 ; x5 2 f0; 1g:
1

SOLUZIONE TEMA DESAME 31/01/2003


Domanda 1.
Variabili:
xi j = flusso sullarco i, j
yij = variabile logica che vale 0 se la corrispondente variabile xij = 0, 1 altrimenti.
U

ci j = capacit massima dellarco i, j valore costante: un dato del problema


B

Modello:
N.B : il vincolo logico interpretabile in 2 modi:
1. se entrambi (3,2) e (3,5) 0 (6,4) = 0
2. se anche uno solo tra (3,2) e (3,5) 0 (6,4) = 0
U

Sappiamo che il relativo modello di Programmazione Lineare per un problema di massimo flusso
il seguente:
max v
-v
i xi j k xj k = 0
B

xi j ci j
B

j=s
js,t

j=t

i, j A
B

Abbiamo quindi nel nostro caso :


f.o.

max v

s.t.

- (x12 + x13 + x14) = -v


x57 + x67 = v
B

x12 + x32 x25 = 0


x13 + x43 x32 x35 x36 = 0
x14 + x64 x43 = 0
x25 + x35 x57 = 0
x36 x67 x64 = 0
B

origine
destinazione

x32 M y32
x35 M y35
x64 M y64

nodi intermedi

vincoli logici

y32 + y35 2 y64 interpretando nel modo 1


y32 + y64 1
y35 + y64 1 interpretando nel modo 2
y1, y2, y3, {0,1} intere
xi j 0 i, j A

vincoli variabili

x12 1
x13 3
x14 4
x25 3
x32 1
x35 8
x36 5
x43 1
x57 5
x67 6
x64 4

vincoli capacit

Domanda 2.
Trasformiamo innanzitutto il problema in forma standard:

min 2x1 x2 5x3 6x4


max 2x1 + x2 + 5x3 + 6x4
s.t. 3x1 + x2 +x3 +2x4 =4
x1 +3x2 +2x3 +x4 = 4
xi 0
i, j A
BASE [x1, x2]

B=

3
1

T = cBT B-1 = [-2,-1] =


P

B-1=

DET = 9-1 = 8

1
3

3/8
-1/8

-1/8
3/8

3/8
-1/8

-1/8
3/8

[-6/8 + 1/8, 2/8-3/8] = [-5/8, -1/8]


1
2

rD = cDT - TD = [-5 , -6 ] [-5/8, -1/8]


P

2
1

= [-5,-6] [- 7/8, -11/8] =


= [-33/8, -37/8]

I costi ridotti di entrambe le variabili fuori base sono 0. Facciamo entrare in base arbitrariamente
la variabile x4.
y4 = B-1 a4 =

3/8
-1/8

-1/8
3/8

2 =
1

5/8
1/8

xB = B-1b = =

3/8
-1/8

-1/8
3/8

1
min (8/5, 8/1) = 8/5 ESCE X1
1

BASE [x4, x2]

2
1

B=

1
3

DET = 5

T = cBT B-1 = [-6, -1 ]


P

3/5
-1/5

-1/5
2/5

B-1 =
P

3/5
-1/5

= [-17/5, 4/5]

-1/5
2/5

rD = cDT - TD = [-2 , -5 ] [-17/5, 4/5 ] =


P

3
1

1
2

[-2,-5] + [47/5, 9/5] = [ 37/5,-16/5] =


ENTRA X3

y3 = B-1a3 =

3/5
-1/5

xB= B-1b =

3/5
-1/5

-1/5
2/5

1 =
2

-1/5 4 =
2/5 4

1/5
3/5
8/5 min [8/5*5/1, 4/5*5/3] = 4/3 ESCE X2
4/5

BASE [X4, X3]

B=

2
1

T = cBT B-1 = [-6, -5 ]


P

DET = 3

1
2
P

2/3
-1/3

-1/3
2/3

B-1
P

-1/3
2/3

= [-7/3, -4/3]

rD = cDT - TD = [-2 , -1 ] [ -7/3 ,- 4/3 ]


P

2/3
-1/3

3
1

1
3

= [-2,-1] + [25/3, 19/3] = [19/3, 16/3]


> 0 OTTIMO

xB = B-1b =
P

2/3
-1/3

z0=cBTxB= [-6, -5]


P

-1/3
2/3

4 =
4

4/3
4/3

4/3 = -44/3
4/3

Domanda 3.
E possibile che lalgoritmo del simplesso cicli infinitamente senza riuscire a trovare una soluzione
quando si sceglie come elemento di pivot un elemento (p,q) a cui corrisponde yp0 = 0, ossia quando
siamo dinanzi a una soluzione degenere. Dal momento che in queste condizioni il valore della
funzione obiettivo non diminuisce, vi il rischio di passare da una soluzione degenere ad unaltra e
di tornare cos al tableau di partenza (loop).
La regola di Bland rappresenta una regola semplice e di facile applicazione (oltre che priva di
dimostrazione formale) per evitare questo tipo di rischi. Tale regola ci impone di far entrare in base
la variabile con minimo indice di colonna tra quelle con rj<0 e di fare uscire dalla base quella con
minimo indice di riga tra quelle che hanno stesso minimo rapporto yi0 / y1q con yiq> 0.
La regola assicura che lalgoritmo termini dopo un numero finito di passi di pivot.

Domanda 4.
Lalgoritmo di Bellman-Ford si basa sul seguente presupposto: per andare dal nodo iniziale 1 al
generico nodo i necessario passare per uno dei nodi j predecessori di i. Il valore della lunghezza
del cammino minimo tra 1 e i sar quindi pari a:

(i) = min [ (i), min j di i-1 ((j) + li j) ]


P

Lalgoritmo prosegue per k iterazioni, con k n, e ad ogni iterazione riaggiorna sempre il valore del
cammino minimo per ogni nodo i k(i) come il minimo tra [ k-1(i), min j di i-1 ( k-1(j) + li j)] fino a
quando per ogni i sia ha che k(i) = k-1 (i), cio fino a quando, per ogni i, k(i) raggiunge la
stabilit. Sappiamo che il cammino minimo tra 2 nodi passando una sola volta per ogni arco pu al
massimo essere pari a n-1 archi (con n numero di archi che uniscono i due nodi). Il valore del
cammino minimo per ogni i dovrebbe quindi divenire stabile al pi in k = n iterazioni. Se ci non
accade, lalgoritmo si ferma ed evidenzia la presenza di circuiti di lunghezza negativa.
Proprio per la capacit di individuare, ove vi siano, circuiti di lunghezza negativa, lalgoritmo di
Bellman-Ford viene utilizzato ogni qual volta si abbiano archi di lungezza arbitraria (positiva,
negativa o nulla) o si abbia il sospetto che vi possano essere circuiti negativi.
P

Domanda 5
Nellalgoritmo di Dantzig per il problema del trasporto possibile calcolare i moltiplicatori del
simplesso ui e vj nel modo che segue.
Scriviamo il vettore dei moltiplicatori T scrivendo tanti elementi quanti sono le origini (e dunque
tanti quanti sono i vincoli associati) e tanti elementi quante sono le destinazioni:
P

T = [u1, u2, , um, v1, v2, ,vn] (nel caso di m origini e n destinazioni).
P

Sappiamo che per ogni generica variabile xi j il costo ridotto rij ottenibile come:
r i j = c i j - T ai j
P

La matrice dei coefficienti dei vincoli caratterizzata dal fatto di avere in ogni colonna soltanto due
elementi con valore 1 e tutti i restanti pari a 0.
Esempio:
1

E quindi abbiamo ai j=

A= 1

1
0
0
0
1

Per tutte le variabili il costo ridotto rij dato dal coefficiente di costo corrispondente meno il
moltiplicatore relativo allorigine meno quello relativo alla destinazione:
rij = cij ui vj i, j A
Per tutte le variabili in base abbiamo rij = cij ui vj = 0 cij = vj + ui
Dal momento che conosciamo cij e dal momento che abbiamo un vincolo ridondante (abbiamo
infatti pi vincoli che variabili), possiamo scegliere in modo arbitrario il valore di un moltiplicatore
(che porremo per semplicit pari a 0) e ricavare cos a partire dai coefficienti di costo delle variabili
in base tutti gli altri moltiplicatori e da questi ricavare i valori dei costi ridotti delle variabili fuori
base.
Esempio:

ui
10
(-8)
1
(-3)
4
vj

8
7

(-3)
2
(-1)
3

5
4
2

* variabili in base con rij = 0

Domanda 6.
Riordino le variabili : coeff. f.o. / coeff. vincolo
x1 = 2.2857
x2 = 2
x3 = 2.8
x4 = 3
x5 = 1.5

ordine decrescente x4 x3 x1 x2 x5

Ottengo:
max 36 x4 + 28x3 + 16x1 + 6x2 + 3x5
s.a. 12x4 + 10x3 + 7x1 + 3x2 + 2x5 21
Nella ricerca della soluzione del problema rilassato mettiamo a 1 tutte le variabili via via fino a
saturare il vincolo e lultima variabile che non entra intera nello zaino assume un valore frazionario:
questa sar la variabile critica sulla quale eventualmente andremo a effettuare loperazione di
branch. Il valore dellupper bound potr poi essere arrotondato al valore della propria parte intera
essendo i coefficienti di costo tutti interi. Per calcolare il Lower Bound del problema, poniamo a 1
tutte le variabili, saltando quelle variabili che non stanno nello zaino.

ALBERO DI RICERCA:

P0

12x4 + 10x3 + 7x1 + 3x2 + 2x5 21


w=9
x4 = 1
x3 = 9/10
w=0
LB x4 = 1
x3 = 0
x1 = 1
x2 = 0
x5 = 1

UB = 36 + 28*9/10 = 61.2 61 ( coeff .interi)


LB = 36+16+3 = 55
Z* = 55

BRANCH SU P0 variabile critica x3


P1

x3 = 0
12x4 + 7x1 + 3x2 + 2x5 21
UB = 36 + 16 + 6*2/3 = 56
x4 = 1 w = 9
w=2
UB Z* continuo...
x1 =1
x2 =2/3
LB x4 = 1
x1 = 1
x5 = 1

P2

LB = 36+16+3 = 55

x3 = 1
12x4 + 10x3 + 7x1 + 3x2 + 2x5 21
UB = 28+11/12*36 = 61
x3 = 1 w = 11
x4 = 11 /12
LB x3 = x1 = x2 = 1

LB =28+16+6 = 50

BRANCH SU P1 variabile critica x2


P3

P4

x3 = 0
x2 = 0
x4 = 1
x1 = 1
x5 = 1

12x4 + 7x1 + 2x5 21


w=9
w=2
w=0

UB = 36+16+3 = 55 = LB chiudo il nodo


UB Z* + sol.amm.
Z* = 55

x3 = 0
12x4 + 7x1 + 3x2 + 2x5 21
x2 = 1
UB = 36+6+16*6/7 = 55.7 55
x2 = 1 w = 18
UB Z* chiudo il nodo
x4 = 1 w = 6
x1 = 6/7
LB x2 = x4 = x5 = 1

LB = 36+6+3 = 45

BRANCH SU P2 variabile critica x4


P5

x3 = 1
x4 = 0
x3 = 1
x1 = 1
x2 = 1
x5 = 1/2

10x3 + 7x1 + 3x2 + 2x5 21


w = 11
w=4
w=1

LBx3 = 1
x1 = 1
x2 = 1
P6

x3 = 1
x4 = 1
x3 = 1
x3 = 1

UB = 28+16+6+3*1/2 = 51.5 51 Z*
chiudo

LB = 28+16+6 = 50

12x4 + 10x3 + 7x1 + 3x2 + 2x5 21


w=9
w = non ammissibile

La soluzione ottima del problema quindi la soluzione di P3, ossia:


x2 = 0
x1 = 1
x3 = 0
Z* = 55
x4 = 1
x5 = 1
P0 [61 , 55]
x3 = 0

x3 = 1

P1 [56 , 55]
x2 = 0

P3 [55 , 55]
Soluzione ammissibile

P2 [61 , 50]
x2 = 1

x4 = 0

P4 [55.7 , 55]
P5 [51, 50]
Chiudo perch UBintero Z*

x4 = 1

P6
sol.non amm.

RICERCA OPERATIVA 20/2/2003

COGNOME:
NOME:
MATRICOLA N.:
DOMANDE:
1. Quattro palazzi 1,2,3,4 devono essere riforniti di gasolio per riscaldamento per l'inverno. Il fabbisogno dei palazzi e rispettivamente di
1000, 2000, 1800 e 2800 litri. La societa che possiede gli stabili puo
farli rifornire da tre fornitori A, B e C. Ai tre fornitori sono rimaste
disponibilita pari a 3000, 5000 e 4000 litri, rispettivamente. Inoltre,
per esigenze legate alla piani cazione dei trasporti:
 il fornitore A e disposto a rifornire al massimo 3 stabili;
 B non puo rifornire contemporaneamente gli stabili 2 e 4.

La fornitura non e di tipo esclusivo, cioe ogni stabile puo essere rifornito
da piu fornitori. I costi di approvvigionamento o erti da ogni fornitore
in euro/litro sono riportati in tabella:
1 2 3 4
A 3 2 1 3
B 4 2 3 2
C 3 2 3 4
Formulare il programma lineare per l'approvvigionamento a costo minimo.
2. (a) Dato il seguente programma lineare, determinare i valori reali del
parametro t per i quali la base [x1 ; x3 ] costituisce l'ottimo.
min (t + 2)x1 + x2 + 2x3 + 2x4
s.t. 2x1 + 3x2 + 2x3 + x4 + x5 = 3t + 2
x1 + 4x2 + 2x3 + 4x4 + x6 = 5
x1 ; : : : ; x6  0:
(b) Calcolare la soluzione ottima del problema per t = 2.
3. Si consideri il tableau nale (ottimo) del simplesso relativo ad una
soluzione di base non degenere per un problema di minimo. Se una
delle variabili fuori base ha costo ridotto nullo, quante soluzioni ottime
non di base possiamo trovare? Perche?
1

4. Giusti care la seguente a ermazione: "Si consideri l'algoritmo del simplesso duale. Se i coecienti della riga corrispondente alla variabile
che deve uscire dalla base sono tutti positivi o nulli, il sistema non ha
soluzione ammissibile."
5. Sia dato un problema di max e sia indicato qui di seguito lo sviluppo
parziale dell'albero di ricerca del Branch and Bound associato. Con
P (U B ; LB ) indichiamo rispettivamente il sottoproblema considerato
(P ), il suo upper bound (U B - soluzione ottima del problema rilassato)
ed il suo lower bound (LB - soluzione ammissibile del problema P
ottenuta con una qualche euristica).
i

P0(30,18)
___________|___________

|
P1(28,20)
____|____

|
|
P11(25,20) P12(26,23)

|
P2(28,24)
______|_____

|
P21

|
P22

Se il problema P2 2 non ha soluzione ammissibile, discutere l'intervallo


di valori di upper bound U B2 1 e lower bound LB2 1 del problema P2 1 ,
tali per cui sia possibile riconoscere immediatamente che il problema
P1 1 non porta alla soluzione ottima. Motivare la risposta.
;

SOLUZIONE TEMA DESAME DEL 20/02/2003


Domanda 1.
Dichiarazione delle variabili.
U

Xi j

i = [1,2,3,4]
j = [A,B,C]

litri forniti allo stabile i dal fornitore j

Yij

vale 0 se la corrispondente Xij = 0, 1 altrimenti

Modello:
U

f.o

min 3X1A + 2X2A + 1X3A + 3X4A + 4X1B + 2X2B + 3X3B + 2X4B + 3X1C + 2X2C + 3X3C +
4X4C

s.t.

X1A + X1B + X1C


X2A + X2B + X2C
X3A + X3B + X3C
X4A + X4B + X4C

1000
2000
1800
2800

X1A + X2A + X3A + X4A 3000


X1B + X2B + X3B + X4B 5000
X1C + X2C + X3C + X4C 4000

vincoli fabbisogno palazzi

vincoli disponibilit

Y1A + Y2A + Y3A + Y4A 3


X1A M Y1A
X2A M Y2A
X3A M Y3A
X4A M Y4A

vincoli logici

Y2B + Y4B 1
X2B MY2B
X4B M Y4B
Y1A, Y2A , Y3A , Y4A , Y2B , Y4B [0,1] intere
Xij 0

vincoli natura variabili

Domanda 2.
a. Valori reali di t per cui la base [x1, x3] costituisce lottimo:

Condizione di ammissibilit :
U

xB 0
2
1

B=

2
2

1
-1/2

xB = B-1b =
P

B-1=

DET = 2

3t + 2
5

-1
1

Da cui :
3t 3 0
-3/2 t + 4 0
Condizione di ottimalit:
rD 0
U

3t 3
-3/2 t + 4

t1
t 8/3

1
-1/2

-1
1

1 t 8/3

Quindi:
T = cBT B-1 = [ t + 2, 2]
P

1
-1/2

-1
1

rD = cDT - TD = [1,2,0,0] [t + 1, - t]
P

= [t + 2 1, - t 2 + 2] = [t + 1, - t]
3
4

1
4

1
0

0
1

= [t 2, 3t +1, - t 1, t] 0

Da cui:
t2
t -1/3
t -1
t0
_ _ _ | _ _ _ |_ _ _ |_ _ _ _ _ |_____
_____|_____| _ _ _ |_ _ _ _ _ |_ _ _ _
_____| _ _ _ |_ _ _ |_ _ _ _ _ | _ _ _
_ _ _ |_ _ _ | _ _ _ |_______ |_____
_____|_____|_____|_______ |______
-1
-1/3
0
2
b. Soluzione ottima del problema per t = 2:

min 4x1 + x2 + 2x3 + 2x4


s.t. 2x1 + 3x2 + 2x3 + x4 + x5 = 8
x1 + 4x2 + 2x3 + 4x4 + x6 = 5
Base [x5,x6] (base canonica)
T = cBT B-1 = [0,0]
P

non vi nessun valore reale di t per cui la


base [x1, x3] costituisca lottimo

rD = cDT - TD = [4,1,2,2] [0,0] . = [4,1,2,2] 0


P

1
0

xB = B-1b =
P

0
1

8
5

8
5

x5 = 8 ; x6 = 5

Lottimo si ottiene con in base x5 e x6 e non con la base [x1, x3] che prima abbiamo dimostrato non
portare alla soluzione ottima.

Domanda 3
Dato il tableau finale (ottimo) del simplesso relativo ad una soluzione di base non degenere per un
problema di minimo, se una delle variabili fuori base ha costo ridotto nullo possiamo trovare
infinite soluzioni ottime non di base in quanto il valore della funzione obiettivo trovata non cambia.
Sappiamo infatti che
z = z0 + ( cm+1 z m+1 ) xm+1 + ... + (cn - zn) xn
dove z0 = cBT xB = c1y10 + + cmym0
(xm+1, , xn ) variabili fuori base
P

Se quindi, data una variabile fuori base xm+1 con costo ridotto nullo, si aumenta il suo valore
modificando corrispondentemente il valore delle variabili di base e mantenendo a valore 0 le altre
variabili fuori base, il valore di z resta costante al variare di xm+1. Ma siccome la soluzione non
degenere, sar sempre possibile far passare xm+1 da 0 fino ad un qualche valore k. E per tutti i valori
di xm+1 a k (e ce ne sono infiniti essendo il problema continuo) si avranno differenti soluzioni
ottime.

Domanda 4
Considerando lalgoritmo del simplesso duale, se i coefficienti della riga corrispondente alla
variabile che deve uscire dalla base sono tutti positivi o nulli il sistema non ha soluzione
ammissibile in quanto lequazione associata alla riga del tableau corrispondente non pu essere
soddisfatta. Infatti, la somma di termini tutti positivi o nulli moltiplicati per variabili 0 ( n j = 1 yp j
xj 0 in quanto xj 0) non pu soddisfare luguaglianza con un termine noto negativo ( n j = 1 yp j xj
= yp 0 < 0).
P

Domanda 5
Abbiamo a che fare con un problema di max. In questo caso ricordiamo che si pu chiudere il nodo
se UB Z*.
Il valore della Z* attuale pari al massimo LB trovato, cio abbiamo Z* = 24
Per dire P11 non porta alla soluzione ottima, dovrei avere un Z* tale per cui UB11<Z* e quindi
25 < Z*. Devo trovare cio in P21 un LB maggiore di 25 in modo da aggiornare il valore di Z* da
Z* = 24 a un valore Z* > 25. Dovr avere cio:
LB21 > 25
LB21 pu essere al massimo pari a UB del nodo padre P2, che pari a 28. Dovr avere cio:
LB21 UB21 28
In conclusione si ha che:
25< LB21 UB21 28

RICERCA OPERATIVA 26/8/2003

COGNOME:
NOME:
MATRICOLA N.:
1. Una societa che e ettua la manutenzione di distributori automatici di
bevande deve piani care le assunzioni dei prossimi quattro mesi. La
ditta dispone attualmente di 50 lavoratori esperti; ogni lavoratore esperto copre 130 ore/mese di lavoro utile. I neoassunti, al primo mese
di lavoro, non producono lavoro utile: essi vengono invece aancati,
per apprendere il lavoro, ad un lavoratore esperto per la durata di un
mese. Durante tale mese il lavoratore esperto che aanca il giovane
produce solamente 90 ore di lavoro utile. Dopo il mese di apprendistato,
il neoassunto diventa un lavoratore esperto. Le ore di lavoro totali da
coprire per i prossimi quattro mesi sono 4500 per il primo, 6000 per
il secondo, 6500 per il terzo e 5500 per il quarto. Ogni lavoratore
esperto costa 1000 EURO/mese mentre ogni neoassunto al suo primo
mese costa la meta. Formulare il PL per programmare le assunzioni
minimizzando i costi per l'azienda.
2. Calcolare la soluzione ottima, partendo dalla base [x1 ; x2 ], del seguente
problema di P.L.
min 9x1 + 4x2 + 6x3 + x4
2x1 + x2 + 2x3 + 2x4  9
x1 + x2 + 2x3 + x4 = 6
xi  0
8i
3. Enunciare e giusti care le condizioni di assenza di soluzioni ammissibili
nell'algoritmo del simplesso.
4. Descrivere l'algoritmo di Dijkstra presentato a lezione per il problema
del cammino minimo.
Facoltativo: perche non e valido in presenza di archi negativi?
5. Data la soluzione ottima del problema del massimo usso, come si
ricava un taglio di minima capacita?
6. Risolvere con il metodo branch and bound il seguente problema
max 9x1 + 10x2 + 7x3 + 12x4 + 11x5 + 6x6
5x1 + 3x2 + 2x3 + 7x4 + 8x5 + 4x6  9
xi 2 f0; 1g
8i
1

SOLUZIONE TEMA DESAME 26/08/03


Domanda 1.
In questo caso abbiamo a che fare con un modello di tipo multiperiodale: un periodo viene diviso in
intervalli di tempo e la scelta che viene fatta in un intervallo influenza i periodi successivi.
Definizione delle variabili:
xi con i = (1,..,4) operai assunti nelli-esimo mese
U

Schema logico-temporale:
U

Esperti
50
50 + x1
50 + x1 + x2
50 + x1 + x2+ x3

I mese
II mese
III mese
IV mese

Neoassunti

x1
x2
x3
x4

Modello:
U

f.o. min [ 50 + (50 + x1) + (50 + x1 + x2) + (50 + x1 + x2 + x3) ] 1000 + (x1 + x2 + x3 + x4) 500
costo esperti
costo neoassunti
s.t.

(50 x1) 130 + 90 x1 4500


(50 + x1 x2) 130 + 90 x2 6000
(50 + x1 + x2 x3) 130 + 90 x3 6500
(50 + x1 + x2 + x3 x4) 130 + 90 x4 5500

vincoli ore lavorative

x1 50
x2 50 + x1
x3 50 + x1 + x2
x4 50 + x1 + x2 + x3
xi 0

vincoli personale assunto


(per affiancamento neoassunti)

i Z+ (numeri positivi) e interi (indicano il numero di operai assunti)


P

Domanda 2.
Forma standard:
min 9x1 + 4x2 + 6x3 + x4
s.t 2x1 + x2 + 2x + 2x4 x5 = 9
x1 + x2 + 2x3 + x4 = 6
BASE [x1, x2]
B=
2 1 DET = 2-1 = 1
1 1

T = cBT B-1 = [9,4] =


P

1
-1

-1
2

B-1=
P

1
-1

[5, -1]
2
2

2
1

-1
0

-1
2

rD = cDT - TD = [6,1,0] [5, -1] = [-2,-8,5] ENTRA X4 (si sarebbe anche potutofar entrare X3)
P

y4 = B-1 a4 =

1
-1

1
-1

xB = B-1b =
P

2 =
1

-1
2

9
=
6

-1
2

3
3

BASE [x4, x2]


B=
2 1 DET = 1
1 1

T = cBT B-1 = [1,4] =


P

B-1=

1
-1

1 ESCE X1
0

2
1

1
-1

y5 = B-1 a5 =
P

1
-1

y0 = B-1b =
P

-1
2

-1
0

-1
2

2
2

-1
0

=[8, -2,-3] ENTRA X5

-1
1

9
=
6

-1
2

1
-1

[-3,7]

-1
2

rD = cDT - TD = [9,6,0] [-3,7]


P

3
3

ESCE X2

BASE [x4, x5]

B=

T = cBT B-1 = [1,0] =


P

B-1=

DET = 1

2 -1
1 0

0
-1

1
2

2
1

-1

xB = B b =
P

0
-1

z = cBTxB= [1,0] =
P

1
2

9 =
6

1
2

[0,1]

rD = cDT - TD = [9,4,6] [0,1]


P

0
-1

1
1

2
2

=[8,3,4] 0 OTTIMO

6 x4 = 6 ; x5 = 3
3

= [-33/8, -37/8] ENTRA X4

6
6 OTTIMO
3

Domanda 3.
Dato un problema di PL possibile che questo non abbia soluzioni ammissibili. Perch una
soluzione sia ammissibile necessario che:
Ax = b
x0
e quindi nel caso di una soluzione di base necessario che xB = B-1 b 0.
P

Dato un problema in forma standard con variabili tutte 0, possiamo dire che il problema non ha
soluzioni ammissibili se sono presenti termini noti negativi in presenza di vincoli con coefficienti
tutti positivi o viceversa. In questo caso, infatti, in nessun modo sarebbe possibile soddisfare tale
vincolo. In generale, per, per verificare lesistenza di una soluzione ammissibile di base,
necessario applicare la cosiddetta fase 1 del simplesso. Viene introdotto un nuovo problema, detto
problema artificiale, dove i vincoli coincidono con quelli del problema originale ad eccezione
dellaggiunta in ogni vincolo di una variabile con coefficiente unitario, mentre la funzione obiettivo
data dalla somma delle nuove variabili introdotte (dette variabili artificiali). Si noti come il nuovo
problema sia gi in forma canonica con in base le variabili artificiali. Essendo queste variabili (di
cui si minimizza la somma in funzione obiettivo) 0, se lottimo del problema artificiale = 0,
allora le variabili artificiali avranno tutte valore 0 e la soluzione ottenuta sar ammissibile anche per
il problema di partenza, visto che i due problemi hanno vincoli coincidenti ad eccezione delle
variabili artificiali. Se, invece, lottimo del problema artificiale > 0, allora non esiste una
soluzione ammissibile di questo problema con tutte le variabili artificiali a 0, ossia, non esiste
soluzione ammissibile per il problema di partenza.

Domanda 4.
Lalgoritmo di Dijkstra applicabile per risolvere problemi di cammino minimo nel caso di archi di
lunghezza positiva o nulla (li j 0 per ogni i, j). Lobiettivo trovare la lunghezza (i) del cammino
pi corto che collega il nodo origine ad un generico nodo i del grafo o pi in generale a ciascun
nodo del grafo. Lalgoritmo di Dijkstra cerca nodo per nodo il cammino minimo esplorando via via
i nodi non ancora etichettati.
Assumiamo che il nodo 1 costituisca il nodo origine. Si inizializza (1) = 0 e (i) come l1j se j
nodo successore di 1, altrimenti. Linsieme dei nodi non etichettati (S), cio per i quali non
ancora stato determinato il cammino minimo, viene inizializzato a [2, , n]. Viene definito il
predecessore di i ( P(i)) pari a 1 se i successore di 1.
Lalgoritmo ricerca quindi ad ogni iterazione il nodo j appartenente a S con minor cammino minimo
corrente (per il quale non possibile trovare un cammino migliore), lo etichetta e, se linsieme S ha
ancora elementi, prosegue riaggiornando i valori di (i) al minimo valore tra quello attuale e quello
che assumerebbe passando per j [ (i) = min ( (i), (j) + lji) ]. Se il cammino minimo di i viene
riaggiornato, allora si pone come suo predecessore j [ P(i) =j se (i) = (j) + lij ].
Come soluzione otteniamo tutti i cammini minimi di ogni nodo con i relativi predecessori. Per
determinare il cammino minimo dal nodo 1 al nodo n necessario ripercorrere il cammino
allindietro lungo i predecessori di n fino a raggiungere il nodo 1.
Facoltativo: Lalgoritmo di Dijkstra non valido in presenza di archi negativi: si veda il seguente
contro-esempio:
2
5

-4
3

Nel caso proposto possiamo notare come il cammino minimo per raggiungere il nodo 3 sia (nodo1)
(nodo2) (nodo3 ), con lunghezza 1. Applichiamo Dijkstra:
S = [ 2,3]
(1) = 0
(2) = 5
(3) = 3

Vediamo subito che il cammino minimo per arrivare a 3 viene definito pari a 3, senza tener conto
della possibilit di passare per il nodo 2. Anche procedendo con lalgoritmo la soluzione (3) = 3
non viene modificata. In presenza di archi con lunghezza negativa non pi possibile etichettare i
nodi nel modo indicato dallalgoritmo di Dijkstra: infatti, non pi valida lassunzione che il nodo
j appartenente a S con minor cammino minimo corrente non possa migliorare il proprio cammino e
possa quindi essere etichettato.

Domanda 5
Data la soluzione ottima del problema di massimo flusso, possibile individuare sul grafo di scarto
un taglio di minima capacit. Ricordiamo che per taglio si intende linsieme HS di quegli archi del
grafo G che hanno un estremo in S (sottoinsieme degli n nodi del grafo che comprende il nodo
origine, ma non il nodo destinazione) e laltro estremo in T = N-S. La capacit di un taglio pari
alla somma delle capacit degli archi in avanti e per qualsiasi flusso che soddisfi i vincoli del
problema e per qualunque taglio si ha che vC(HS). E possibile ricavare un taglio di capacit
minima partendo dal grafo di scarto. Se nel grafo di scarto non posso individuare un cammino
aumentante, vuol dire che ho trovato la soluzione ottima del problema. A questo punto individuo i
nodi che posso raggiungere dal nodo origine e vado avanti fino a quando non sono pi in grado di
procedere. Tutti i nodi raggiungibili dal nodo origine costituiranno assieme al nodo origine
linsieme S, mentre tutti gli altri nodi costituiranno linsieme N-S.
Esempio:
grafo di scarto

grafo di partenza

2.2

2.2

3.4

3
3

1
3

1.1

2
3

0.2

3.3

2.2

3.3

E possibile individuare nellesempio anche un altro taglio partendo dal nodo destinazione: in
questo caso guardo tutti quegli archi che arrivano al nodo destinazione e anche qui, quando mi
fermo, posso dire di aver trovato un taglio di minima capacit (taglio blu nellesempio).

Domanda 6.
Riordino le variabili
x1 = 1.8
x2 = 3.333
ordine decrescente x3 x2 x1 x4 x6 x5
x3 = 3.5
x4 = 1.7143
x5 = 1.375
x6 = 1.5
Quindi:
max 7x3 + 10x2 + 9x1 + 12x4 + 6x6 + 11x5
s.t. 2x3 + 3x2 + 5x1 + 7x4 + 4x6 + 8x5 9
P0 2x3 + 3x2 + 5x1 + 7x4 + 4x6 + 8x5 9
w=7
x3 = 1
w=4
x2 = 1

UB = 7 + 10 +4/5*9 = 24.2

x1 = 4/5 variabile critica


LBx3 = 1
x2 = 1
x6 = 1

LB = 7+10+6=23 Z* = 23

BRANCH SU P0 variabile critica x1


P1 x1 = 0 2x3 + 3x2 + 7x4 + 4x6 + 8x5 9
w=7
x3 = 1
w=4
x2 = 1
x4 = 4/7 variabile critica

UB = 7+10+4/7*12 = 23.86 23

LBx3 = 1
x2 = 1
x6 = 1

LB = 23

P2 x1 = 1 2x3 + 3x2 + 5x1 + 7x4 + 4x6 + 8x5 9


w=4
x1 = 1
w=2
x3 = 1
x2 = 2/3 variabile critica
LBx1 = 1
x3 = 1

UB = 9+7+10*2/3 = 22.66 22
UB Z* chiudo
LB = 11 + 7 =18

BRANCH SU P1 variabile critica x4


P3 x1 = 0 2x3 + 3x2 + 4x6 + 8x5 9
x4 = 0
w=7
x3 = 1
w=4
x2 = 1
w=0
x6 = 1

UB = LB = 7+10+6 = 23
sol. amm. intera

P4 x1 = 0 2x3 + 3x2 + 7x4 + 4x6 + 8x5 9


x4 = 1
x4 = 1
w=2
w=0
x3 = 1

UB = 12+7 = LB = 9 Z* chiudo
sol.amm/assenza cammino migliorante

QUINDI:
P0 [24.2 , 23]
x1 = 0

x1 = 1

P1 [23.86 , 23]
x4 = 0

x4 = 1

P3 [23 , 23]
Soluzione ammissibile
OTTIMO ottimo P3:
Z* = 23
x3 = 1 x2 = 1 x6 = 1

P2 [22.66 , 18]
Chiudo perch UB Z*
P4 [19, 19]
soluz. amm. + chiudo perch UB Z*

x1 = 0

x4 = 0

x5 = 0

RICERCA OPERATIVA 9/9/2003


COGNOME:
NOME:
MATRICOLA N.:
1. Una fabbrica di lubri canti produce due tipi di oli speciali per turbine,
il tipo A per applicazioni di serie ed il tipo B per applicazioni speciali.
La domanda per il prodotto A e di 1400 l. al giorno e per il prodotto B
e di 900 l. al giorno. La qualita dei prodotti e identi cata attraverso la
quantita di additivo antiruggine e di additivo antiossidante. Nel caso
del prodotto A si deve avere rispettivamente almeno un minimo di 8
g/l e di 100 g/l e nel caso del prodotto B un minimo di 10 g/l e 110
g/l. La produzione avviene mescolando 4 sostanze chimiche C1 , C2 ,
C3 , C4 che hanno rispettivamente le seguenti caratteristiche: 7g/l di
antiruggine e 101 g/l di antiossidante, 9.5g/l di antiruggine e 90 g/l
di antiossidante, 7g/l di antiruggine e 83 g/l di antiossidante, 21g/l di
antiruggine e 103 g/l di antiossidante. La fornitura massima e di 800
l. al giorno per C1 , di 700 l. al giorno per C2 , di 1000 l. al giorno per
C3 e di 600 l. al giorno per C4 . I costi delle quattro sostanze di base
sono 10 EURO/l. per C1 , 8 EURO/l. per C2 , 7 EURO/l. per C3 e
6 EURO/l. per C4 . Il prodotto A viene venduto a 15 EURO/l. ed il
prodotto B a 20 EURO/l. Formulare un modello di programmazione
lineare che piani chi gli acquisti in modo da soddisfare la domanda e
massimizzare il pro tto.
2. Dato il seguente problema di P.L.
min 8x1 + 5x2 + 7x3 + 2x4
x1 + 2x2 + x3 + 2x4  4
x1 + x2 + 2x3 + 2x4  6
x  0
8i
i

(a) scrivere il modello duale;


(b) calcolare la soluzione ottima partendo dalla base [x1 ; x3 ].

3. Sia dato un problema di trasporto con 6 origini e 4 destinazioni la cui


soluzione corrente e data in tabella: supponendo che la variabile x14
abbia costo ridotto negativo, determinare la nuova soluzione di base
ottenibile facendo entrare in base proprio x14 .
1
2
3
4
1 100
100
2 60
60
3 20 60
80
4
0 70
70
5
50 40 90
6
100 100
180 60 120 140
4. Sia dato un grafo composto da 100 vertici. Quante iterazioni dell'algoritmo di Bellman sono necessarie per determinare il cammino minimo
dal vertice 1 al vertice 40 con al piu 20 archi? Motivare la risposta.
5. Sia data una soluzione ottima per il problema del usso massimo: e possibile incrementare il usso massimo aumentando la capacita di un arco
non appartenente al taglio di capacita minima? Motivare la risposta.
6. Sia dato un problema di minimo e sia indicato qui di seguito lo sviluppo
parziale dell'albero di ricerca del Branch and Bound associato. Con
P (U B ; LB ) indichiamo rispettivamente il sottoproblema considerato
(P ), il suo upper bound (U B - soluzione ottima del problema rilassato)
ed il suo lower bound (LB - soluzione ammissibile del problema P
ottenuta con una qualche euristica).
i

P0(32,17)
___________|___________

|
P1(26,21)
____|____

|
|
P11(24,22) P12(25,23)

|
P2(28,20)
______|_____

|
P21

|
P22

Se il problema P2 2 non ha soluzione ammissibile, discutere l'intervallo


di valori di upper bound U B2 1 e lower bound LB2 1 del problema P2 1 ,
tali per cui si sia in grado di riconoscere immediatamente la soluzione
ottima del problema. Motivare la risposta.
;

SOLUZIONE TEMA DESAME 9/9/2003


Domanda 1
Dichiarazione delle variabili.
U

xi j

i =1,2,3,4 (-->C1,C2,C3,C4) quantit di sostanza chimica i-esima per il prodotto


j = A,B
j-esimo

yj

j = A,B

quantit richiesta di prodotto j-esimo

Modello:
U

f.o max (15yA + 20yB) 10 (x1A + x1B) 8 (x2A + x2B) 7 (x3A + x3B) 6 (x4A + x4B)
s.t. 7 x1A + 9.5 x2A + 7 x3A + 21 x4A 8 yA
101 x1A + 90 x2A + 83 x3A + 103 x4A 100 yA

antiruggine in A
antiossidante in A

7x1B + 9.5 x2B + 7 x3B + 21 x4B 10 yB


101 x1B + 90 x2B + 83 x3B + 103 x4B 110 yB

antiruggine in B
antiossidante in B

vincoli di miscela

x1A + x1B 800


x2A + x2B 700
x3A + x3B 1000
x4A + x4B 600

vincoli di
fornitura

yA 1400
yB 900

vincoli di domanda

xi j , yj 0

vincoli natura variabili

Domanda 2
a. Modello duale
U

primale
min 8 x1 + 5x2 + 7x3 + 2x4
s.t.
x1 + 2x2 + x3 + 2x4 4
x1 + x2 + 2x3 + 2x4 6
xi 0

duale
max 4v1 + 6v2
s.t. v1 + v2 8
2v1 + v2 5
v1 + 2v2 7
2v1 + 2v2 2
v1 0
v2 0

b. Calcolo della soluzione ottima


BASE [x1, x3]
U

B=

1
1

1
2

T = cBT B-1 = [ 8, 7] =
P

B-1=

DET = 1
2
-1

-1
1

[9,-1]

2
-1

-1
1

2
1

rD = cDT - TD = [5,2,0,0] [ 9,-1] = =


P

2
2

y4 = B-1 a4 =

2
-1

-1
1

2 =
2

2
0

y0 = B-1b = =

2
-1

-1
1

2
ESCE X1
2

-1
0

0
1

[-12,-14,9,1] ENTRA X4

BASE [x4, x3]

B=

2
2

1
2

T = cBT B-1 = [ 2 ,7] =


P

1
1

1
-1

y6 = B-1a6=
P

-1/2
1

0
1

1
-1

-1/2
1

[-5,6]

-1/2
1

rD = cDT - TD = [8,5,0,0] [ -5, 6 ]


P

1
-1

B-1=

DET = 2

2
1

-1
0

-1/2
1

0
1

=[7,9,-5,-6] ENTRA X6

ESCE X3

BASE [x4, x6]

B=

2
2

0
1

T = cBT B-1 = [ 2 ,0] =


P

B-1=

DET = 2
1/2
-1

1
1

2
1

x4 = 2

2
2

x6 = B-1b= =
P

1/2
-1

z = cBTxB = [2,0] =
P

0
1
2
2

4
6

1/2
-1

1
2

-1
=[7,3,6,1] 0
0
= [-33/8, -37/8] ENTRA X4

; x6 = 2

4 OTTIMO

Domanda 3
1
2
3
4
5
6

1
10060
20 +

180
= 40 quindi

0
1

[1,0]

0
1

rD = cDT - TD = [8,5,7,0] [1 , 0]
P

2
60 0+
60

70 50 +
120

4
+

40 100
140

100
60
80
70
90
100

1
2
3
4
5
6

1
60
60
60

180

2
20
40
60

4
40

30
90
120

100
140

100
60
80
70
90
100

Domanda 4
Per determinare il cammino minimo dal vertice 1 al vertice 40 con al pi 20 archi sono necessarie al
pi 20 iterazioni. Infatti lalgoritmo di Bellman calcola alliterazione k la soluzione ottima del
problema con al pi k archi. Quindi per avere la soluzione ottima con al pi 20 archi, sono
necessarie 20 iterazioni.

Domanda 5
Data una soluzione ottima per il problema del flusso massimo, non possibile incrementare il flusso
massimo aumentando la capacit di un arco non appartenente al taglio di capacit minima in quanto
questo rappresenta proprio il collo di bottiglia del sistema. Il taglio di capacit minima ha infatti
capacit pari alla somma delle capacit degli archi in avanti che lo compongono e il flusso che lo
attraversa pari al massimo flusso possibile. Aumentare la capacit degli altri archi non modifica la
soluzione di massimo flusso ottenuta in quanto non incide sul fattore limitante della soluzione
stessa.

Domanda 6
Dal momento che P22 non ha soluzione ammissibile, possiamo chiudere il nodo P22. Per poter
riconoscere immediatamente la soluzione ottima del problema necessario innanzitutto trovare una
soluzione ammissibile intera (che non stata trovata in n in P11 n in P12) e cio avere UB21 =
LB21. Per poter chiudere i nodi P11 e P12 dobbiamo avere una soluzione ammissibile in P21 che sia
minore di o uguale al LB associato a P11 e a P12 (perch altrimenti potremmo trovare una
soluzione migliore esplorando questi due nodi). Inoltre, il LB di 21 non potr essere pi piccolo del
LB del nodo padre.
Da tutto ci si deduce quindi che dobbiamo avere:
20 LB12 = UB12 22

You might also like