Professional Documents
Culture Documents
I Esercizi 5
1 Programmazione lineare 7
2 Dualita 13
3 Analisi di sensitivita 17
4 Programmazione intera 21
5 Introduzione ai grafi 25
II Soluzioni 35
1 Programmazione lineare 37
2 Dualita 51
3 Analisi di sensitivita 61
4 Programmazione intera 65
5 Introduzione ai grafi 73
3
4 INDICE
Parte I
Esercizi
5
Capitolo 1
Programmazione lineare
soggetto a
x1 + 2x2 x3 5
2x1 + 4x3 = 12 (a)
x1 + x 2 + x 3 15
x1 , x2 0, x3 libera.
max 4x1 x2
soggetto a
x1 + x 2 x 3 =8
(b)
3x1 + x3 7
x1 0, x2 libera, x3 0.
min 8x1 x2 + x3
soggetto a
x1 + x 3 4
x2 x 3 7 (c)
x1 x 2 2
x1 , x2 0, x3 0.
max 4x1 x2
soggetto a
x1 + 2x2 2
(d)
2x1 + 7x2 =8
x1 0, x2 0.
min 4x1 + 5x2 x3 + 2x4
7
8 CAPITOLO 1. PROGRAMMAZIONE LINEARE
soggetto a
x1 + x 2 4
x2 + x 3 7
(e)
x3 x 4 2
x1 x 4 = 12
x1 , x2 .x3 0, x4 libera.
max 2x1 + 4x3
soggetto a
x1 + x 2 + x 3 12
x1 x 2 2 (f )
x2 + x 3 4
x1 0, x2 libera, x3 0.
soggetto a
soggetto a
x1 2x2 + x3 2
(b)
3x1 x2 2x3 6
x1 , x 2 , x 3 0
soggetto a
x1 + x 2 + x 3 2
(c)
2x1 + 3x2 + 8x3 12
x1 , x2 , x3 0.
soggetto a
2x1 + x2 x3 + 3x4 8
x1 + 2x2 2x3 + 2x4 4 (d)
x1 + x 3 10
x1 , . . . , x4 0.
max x1 + 3x2 x3
soggetto a
2x1 + x2 3
x1 + x2 + 3x3 6 (e)
2x1 + x2 + 3x3 8
x1 , x2 , x3 0.
soggetto a
x1 + x2 1
2x2 x3 2 (f )
x1 + x 3 1
x1 , x2 , x3 0.
soggetto a
soggetto a
soggetto a
x1 + x2 + 2x3 =3
(c)
2x1 + x2 + 3x3 =5
x1 , x2 , x3 0.
max x1 + x2 + x3
soggetto a
x1 2x2 + x3 + x4 =5
4x2 + x3 + 2x4 =2 (d)
3x2 2x4 6
x1 , . . . , x4 0.
soggetto a
x1 + 2x2 + x3 x4 2
(e)
2x1 x2 + x3 5x4 3
x1 , . . . , x4 0.
min x1 + x2 2x3
soggetto a
2x1 + x2 + x3 =2
3x1 + x2 + 2x3 =5 (f )
x1 + 2x2 + x3 =4
x1 , x2 , x3 0.
ESERCIZIO 1.6. Per ognuno dei programmi lineari dellesercizio 1.3, identi-
ficare la matrice A1
B .
max x1 + x2
11
soggetto a
2x1 x2 4
x1 + 4x2 10 (a)
x2 1
x1 , x2 0.
min 2x1 + x2
soggetto a
x1 + 4x2 8
x1 2 (b)
2x1 + x2 4
x1 , x2 0.
max 2x1 x2
soggetto a
x1 + 4x2 8
x1 2 (c)
2x1 + x2 4
x1 , x2 0.
2 8
max x1 + x2
3 3
soggetto a
x1 + 4x2 9
x1 8 (d)
x2 2
x1 , x2 0.
12 CAPITOLO 1. PROGRAMMAZIONE LINEARE
Capitolo 2
Dualita
ESERCIZIO 2.1. Partendo dalla forma standard, determinare i duali dei pro-
grammi lineari dellesercizio 1.3.
ESERCIZIO 2.2. Partendo dalla forma standard, determinare i duali dei pro-
grammi lineari dellesercizio 1.4.
ESERCIZIO 2.3. Dato il seguente programma lineare in forma standard
max cx
soggetto a
Ax = b
(P)
x 0,
ed il suo duale
min ub
soggetto a
uT A c, (D)
13
14 CAPITOLO 2. DUALITA
soggetto a
Ax = b (PR)
xj = 0, j
/S
x0
soggetto a
x1 + x 2 4
(a)
2x1 + x2 x3 8
x1 , x2 , x3 0.
soggetto a
x1 + x 2 x 3 6
2x1 + x3 4 (b)
x1 + x2 2x3 2
x1 , x2 , x3 0.
x1 + 2x3 1
x1 + x2 5.
15
ESERCIZIO 2.8. Per ognuno dei programmi lineari dellesercizio 1.3, de-
terminare il valore ottimo delle variabili duali se lottimo esiste (considerare i
duali formulati rispetto alle forme standard), e quando non esiste dire cosa puo
accadere nel duale.
ESERCIZIO 2.9. Come lesercizio precedente, con riferimento ai programmi
lineari dellesercizio 1.4.
ESERCIZIO 2.10. Senza passare per la forma standard, scrivere i duali dei
programmi lineari dellesercizio 1.4.
16 CAPITOLO 2. DUALITA
Capitolo 3
Analisi di sensitivita
ESERCIZIO 3.1. Per ognuno dei seguenti programmi lineari, per i quali sono
specificate la base ottima Bot , la AB 1 e la riformulazione associata, verifi-
ot
care se ammissibilita ed ottimalita sono conservate a fronte delle perturbazioni
specificate per i singoli ci , bi .
max 3x1 4x2 + 2x3
soggetto a
x1 + 2x2 x3 x4 =4
(a)
2x1 x2 + x5 =5
x1 , . . . , x5 0,
1
0
2
Bot = {x2 , x5 }, A1
Bot = 1 ,
2 1
max z = 8 x1 2x4
x2 = 2 21 x1 + 12 x3 + 21 x4
x5 = 7 25 x1 + 12 x3 + 21 x4
x1 , . . . , x5 0,
1
b2 = 8, c3 = 1, c5 =
5
soggetto a
x2 + x 3 + x 5 =6
x1 + 2x3 x4 =7 (b)
2x1 + 4x2 =8
x1 , . . . , x5 0,
1
0 0 2
Bot = {x1 , x3 , x4 }, A1 = 1 0 0 ,
Bot
1
2 1 2
17
18 CAPITOLO 3. ANALISI DI SENSITIVITA
soggetto a
3x1 2x2 + x4 =7
x2 + 5x3 x5 =8 (c)
x2 + x 3 =6
x1 , . . . , x5 0,
0 14 5
4
1
Bot = {x2 , x3 , x4 }, A1 = 0 14 ,
Bot 4
1 12 5
2
max z = 41 9x1 23 x5
11
x2 = 2 41 x5
1
x3 = 2 + 41 x5
x4 = 18 3x1 21 x5
x, . . . , x5 0,
b2 = 3, c1 = 9, c2 = 8.
soggetto a
soggetto a
5x1 2x3 + x4 =6
x2 2x3 + 2x5 =9 (e)
x3 + x 4 + x 5 =6
x1 , . . . , x5 0,
2 1 2
Bot = {x2 , x4 , x5 }, 1 0 0 ,
1 0 1
max z = 18 12x1 12x3
x2 = 9 +10x1 +8x3
x4 = 6 +5x1 +2x3
x5 = 0 5x1 3x3
x1 , . . . , x5 0.
b1 = 1, c1 = 1, c4 = 3.
soggetto a
2x1 2x3 + x4 =7
x2 + x3 + 2x5 = 10 (f )
3x1 + 3x3 2x4 + x5 =6
x1 , . . . , x5 0,
2 1 1
7 14 7
3 1
Bot = {x1 , x4 , x5 }, 27 ,
7 7
1
0 2 0
15
max z = 7 61
14 x2
13
14 x3
15 1 3
x1 = 7 14 x2 + 14 x3
19
x4 = 7 + 17 x2 3
+ 14 x3
x5 = 5 + 21 x2 21 x3
x1 , . . . , x5 0.
b2 = 2, c1 = 1, c2 = 1.
ESERCIZIO 3.2. Per ognuno dei programmi lineari dellesercizio 3.1 cal-
colare per ogni termine noto bi il massimo ed il minimo valore della pertur-
bazione bi R che non compromette lammissibilita della base specificata.
Per ogni coefficiente di costo ci , calcolare il minimo e massimo valore della
perturbazione ci R che non compromette lottimalita della base specificata.
20 CAPITOLO 3. ANALISI DI SENSITIVITA
ESERCIZIO 3.3. Per ognuno dei programmi lineari dellesercizio 3.1, verifi-
care se le seguenti perturbazioni aij dei coefficienti aij (coefficiente di xj nel
vincolo i) specificati causano perdita di ottimalita.
(a) a14 = 2;
(b) a25 = 1;
(c) a25 = 1;
(d) a23 = 5;
(e) a31 = 5;
(f ) a32 = 1.
Capitolo 4
Programmazione intera
max 2x1 x2 x3
soggetto a
2x1 + x2 5
4x2 + x3 5 (a)
x1 x 3 2
x1 , . . . , x3 0, intere.
soggetto a
x1 + 3x2 + x4 =8
x2 + 2x3 + x5 =9 (b)
x1 x 2 + x 6 =7
x1 , . . . , x5 0, intere.
soggetto a
2x1 + x2 x3 + x4 =5
(c)
2x2 + x3 + x5 =3
x1 , . . . , x5 0, intere.
21
22 CAPITOLO 4. PROGRAMMAZIONE INTERA
soggetto a
x2 x3 2x4 =3
(d)
2x1 + x3 + 3x4 + x5 =7
x1 , . . . , x5 0, intere.
max 3x1 x2 + x3
soggetto a
2x1 x2 + x3 =1
(e)
3x1 + 2x2 + x4 =3
x1 , . . . , x4 0, intere.
max 2x2 + x3
soggetto a
3x1 + 3x2 + x3 =2
x2 + x 3 =1 (f )
x1 + x 4 =1
x1 , . . . , x4 0, intere.
max x1 x2
soggetto a
2x1 + x2 5
x1 3 (a)
x2 6
x1 , x2 , intere.
max x1 + 2x2
soggetto a
3x1 2x2 6
x1 5 (b)
x1 2
x1 , x2 0, intere.
soggetto a
2x1 5
(c)
2x1 + 3x2 7
x1 , x2 0, intere.
max 3x1 x2
soggetto a
x1 5
(d)
x1 + 3x2 4
x1 , x2 0, intere.
Introduzione ai grafi
ESERCIZIO 5.1. Per ognuno dei seguenti grafi orientati G(V, A), rappresen-
tati come lista di adiacenze, determinare se G e connesso o meno utilizzando
lalgoritmo visto a lezione, e determinare le sue componenti connesse.
(a) a :(b, e), b :(c), c :, d :(e, f ), e : f :(c), g :(e, f ).
(b) a :(c), b :(d), c :(e), d :(f ), e :(h), f :(g), g :(b), h :(a), i :(d).
(c) a :(g), b :, c :(b, d), d :(e), e :(b). f :(b), g :(a, h), h :(a).
(d) a :(b), b :(c), c :(d, f ), d :(a, e), e :(a, b), f :.
(e) a :(c, f ), b :(a), c :(b), d :(e, g), e :(d, g), f :, g :(d, e).
(f ) a :(c, d), b :(g), c :(f ), d :, e :(d), f :(h), g :(e, h), h :.
ESERCIZIO 5.2. Per ognuno dei grafi dellesercizio 5.1, determinare se G e bi-
partito utilizzando lalgoritmo visto a lezione.
ESERCIZIO 5.3. Le seguenti matrici wij rappresentano i pesi degli archi di
altrettanti grafi G(V, A). Quando wij = , larco corrispondente non esiste; se
la matrice e triangolare alta, si intende riferita ad un grafo non orientato. Per
ogni grafo, determinare uno spanning tree di peso totale minimo utilizzando
entrambi gli algoritmi visti a lezione.
a b c d e a b c d e
a 5 1 8 15 a 4 7 4
b 9 7
b 1 5 3
c 3 2 4
c
6 8 8
d 7 8 d 9 7
e 7 12 4 e 4 2
(a) (b)
a b c d e a b c d e
a 7 8 4 12 a 12 9 4 3
b 12 1 2 b 3 2
c 5 3 c 6
d 1 d 4
e e
(c) (d)
25
26 CAPITOLO 5. INTRODUZIONE AI GRAFI
a b c d e f a b c d e f
a 10 7 a 4 3 8
b 5 2 4 3 9
b 5 2 7
c 5 8 c
5 6 2 9
d 9 8 7
d 5 1
e 7 2 e 3 4 11 2 5
f 4 f 12 4
(e) (f )
Capitolo 6
Nel problema del flusso a costo minimo si considera un grafo G(V, A), con costi
cij associati ad ogni arco (ij) A. Ai nodi i V sno associati valori bi che
identificano nodi sorgente (bi > 0, il flusso viene generato a tali nodi), nodi
destinazione (bi < 0, il flusso viene consumato) e nodi di transito (bi = 0). Il
modello di Programmazione Lineare del problema e il seguente.
X
min cij xij
(i,j)A
soggetto a
X X
xij xji = bi i A, (I)
j : (i,j)A j : (j,i)A
xij 0, (i, j) A.
I vincoli (I) esprimono la conservazione del flusso nella rete.
ESERCIZIO 6.1. Per ognuno dei grafi di Figura 6.1, dire se i seguenti insiemi
di archi identificano basi del problema, ed in caso affermativo calcolare, quando
possible, i valori dei flussi nelle soluzioni ammissibili ad essi associate.
(a) B1 = {(1, 2), (2, 3), (2, 6), (4, 5), (5, 6), (6, 7), (7, 8)},
B2 = {(1, 3), (1, 4), (2, 3), (3, 6), (3, 5), (5, 8), (7, 8)},
B3 = {(1, 2), (1, 4), (2, 6), (4, 5), (5, 6), (5, 8), (6, 7)}.
(b) B1 = {(2, 1), (3, 6), (4, 1), (4, 5), (5, 7), (6, 2)},
B2 = {(1, 3), (3, 5), (3, 6), (4, 1), (6, 2), (6, 7)},
B3 = {(1, 3), (3, 5), (3, 6), (4, 5), (5, 7), (6, 2)}.
(c) B1 = {(1, 2), (2, 3), (2, 4), (4, 5), (5, 6)},
B2 = {(1, 2), (2, 4), (3, 4), (4, 5), (5, 6)},
B3 = {(1, 2), (2, 3), (2, 4), (3, 4), (5, 6)}.
(d) B1 = {(1, 2), (2, 6), (3, 4), (5, 4), (6, 3)},
B2 = {(1, 2), (3, 2), (5, 3), (5, 4), (5, 6)},
B3 = {(1, 2), (1, 6), (3, 2), (3, 4), (5, 3)}.
27
28 CAPITOLO 6. PROBLEMI DI FLUSSO A COSTO MINIMO
(e) B1 = {(1, 2), (1, 3), (2, 4), (3, 5), (4, 8), (6, 3), (8, 7)},
B2 = {(1, 2), (2, 4), (3, 2), (5, 7), (6, 3), (6, 5), (8, 7)},
B3 = {(1, 2), (1, 3), (2, 4), (3, 5), (5, 7), (6, 3)}.
(f ) B1 = {(1, 2), (2, 5), (3, 6), (4, 2), (4, 7), (5, 3)},
B2 = {(1, 2), (3, 2), (3, 6), (4, 7), (5, 3), (5, 7)},
B3 = {(1, 2), (3, 2), (3, 6), (4, 2), (5, 3), (5, 7)}.
ESERCIZIO 6.2. Per ognuno dei grafi di Figura 6.1 determinare un flusso a
costo minimo applicando il simplesso su rete, partendo dalla base B0 specificata.
(a) B0 = {(1, 2), (1, 4), (2, 3), (4, 5), (5, 6), (5, 8), (6, 7)};
(b) B0 = {(1, 3), (1, 6), (3, 5), (4, 1), (5, 7), (6, 2)};
(c) B0 = {(1, 2), (2, 3), (3, 4), (4, 5), (5, 6)};
(d) B0 = {(1, 2), (2, 6), (3, 4), (4, 6), (5, 4)};
(e) B0 = {(1, 2), (1, 3), (1, 6), (2, 4), (3, 5), (4, 8), (8, 7)};
(f ) B0 = {(1, 2), (2, 5), (3, 6), (4, 2), (5, 3), (5, 7)}.
soggetto a
X X
xij xji = 0 i A, (II)
j : (i,j)A j : (j,i)A
xij 0, (i, j) A.
Dire se e quando il modello (II) possiede soluzioni ammissibili non nulle (sug-
gerimento: considerare un flusso > 0 instradato lungo un circuito, se il grafo
ne possiede uno. . . ).
ESERCIZIO 6.5. Discutere la forma della regione di ammissibilita del modello
di flusso a costo minimo: quando e un politopo (o poliedro) convesso? E quando
e un poliedro illimitato (troncone)?
ESERCIZIO 6.6. Applicare sui grafi di Figura 6.2 la procedura per deter-
minare una soluzione ammissibile di base iniziale.
ESERCIZIO 6.7. Si consideri la procedura per la determinazione di una
soluzione ammissibile di base iniziale nel problema del flusso a costo mini-
mo. Dire quando la soluzione di base finale prodotta da questa procedura e
degenere.
29
2
b7 = 7 b2 = 8 b7 = 8
8 9 4 7
2 6 7 2 6 7
2 2 9
5 1 2 4 3 4
3 4 2 2 2
b1 = 5 1 3 5 8 b1 = 10 1 3 5
7 4 b8 = 4 1 1
4 4
b4 = 6 b4 = 6
(a) (b)
b2 = 1 b4 = 1 b2 = 10 b3 = 8
3 1
2 4 2 3
2 2 7 2
4 3
8
3 b1 = 12 1 2 3 4 b4 = 10
b1 = 5 1 3 5 b5 = 1 1
b3 = 1 7 1 10
4 3
1
6 6 5
b6 = 1 b6 = 10 b5 = 10
(c) (d)
b4 = 8
3
2 4
-2 -2
b8 = 5
2 1 1
2 4 8 1 4 7
b1 = 8 4
2 b7 = 6
1 8 3
3
3 -3 2 3 5
b1 = 10 1 3 5 7 1
4 2 b7 = 5 1
4
-5 6
6 b6 = 10
(e) (f )
Figura 6.1: Reti di flusso. I costi unitari di trasporto cij sono indicati sugli
archi, i termini noti bi accanto ai nodi (si assume bi = 0 quando non indicato).
30 CAPITOLO 6. PROBLEMI DI FLUSSO A COSTO MINIMO
b3 = 10
2 3
b1 = 10 1 2 5
b1 = 10 1
3 4
4 5 b4 = 10
(a) (b)
Nel problema del massimo flusso sono dati un grafo orientato G(V, A) con ca-
pacita cij > 0 specificate per ogni arco (i, j) A, un nodo sorgente s ed un
nodo destinazione d, e si richiede di determinare il massimo flusso che puo tran-
sitare sulla rete tra s e d rispettando le capacita degli archi. Il modello in
Programmazione Lineare del problema e
X
max xsi
i : (s,i)A
soggetto a
X X
xij xji = 0, i V {s, d},
j : (i,j)A j : (j,i)A
ESERCIZIO 7.1. Per ognuno dei grafi di Figura 7.1, determinare il massimo
flusso tra la sorgente s e la destinazione d, partendo dal flusso iniziale indicato.
Determinare anche un taglio di capacita minima.
(a) xs1 = 3, x12 = 2, x13 = 1, x24 = 1, x26 = 1, x6d = 1, x43 = 1, x3d = 2 (tutte
le altre xij = 0).
(b)(e) Flusso nullo.
ESERCIZIO 7.2. Dire se e quando la regione di ammissibilita del problema
del massimo flusso puo essere un poliedro illimitato (troncone).
ESERCIZIO 7.3. Si supponga di avere un problema di massimo flusso con
capacita associate ai nodi anziche agli archi; si suppone cioe che gli archi abbiano
capacitra infinita, ma in ogni nodo i possa transitare al massimo una quantita
ci di flusso. Proporre una procedura per risolvere tale problema.
ESERCIZIO 7.4. Scrivere il duale del problema del massimo flusso. E possi-
bile affermare che in ogni soluzione di base di tale duale le variabili assumeranno
solo valori interi? Motivare la risposta.
31
32 CAPITOLO 7. PROBLEMA DEL MASSIMO FLUSSO
2 2 3
1 2 6 1 3
1
3 4 2 2
8 6 5
6
1 1 2 4 4
s 4 3 d s 4 4 5 d
4 1 5 8
2
7 2
5 2
(a) (b)
2 4 4
1 2 3 1 5
4 6 3 8
1
2
1 4 2
s 8 d s 2 4 d
3 3 4
4 5
2 2 1
4 5 6 3 6
10 8 2
(c) (d)
4 9
1 5 7
2
7 1 2 1 8 8
4 8
s 2 4 8 d
2 1
7
9
6 1
3
3 6
(e)
ESERCIZIO 7.5. Si consideri il duale del problema del massimo flusso formato
nellesercizio precedente, con variabili ui (i V {s, d}) e wij ((i, j) A).
Verificare che, ad ogni taglio indotto da un insieme U V (con s U ), e
possibile associare una soluzione ammissibile duale, definita da
( (
1, se i U , 1, se i U , j
/ U,
ui = wij =
0, se i
/ U, 0, altrimenti.
Capitolo 8
8.1 Esercizi.
m X
X n
min cij xij
i=1 j=1
soggetto a
n
X
xij = ai i = 1, . . . , m,
j=1
m
(IV)
X
xij = bj j = 1, . . . , n,
i=1
xij 0, i = 1, . . . , m, j = 1, . . . , n.
Pm Pn
Si assume i=1 ai = j=1 bj , eventualmente dopo lapplicazione della proce-
dura di bilanciamento.
33
34 CAPITOLO 8. PROBLEMA DEL TRASPORTO.
1 2 3 4 ai 1 2 3 ai
1 8 5 8 9 90 1 2 8 4 20
2 4 6 10 4 50 2 3 4 9 20
3 2 11 4 3 60 3 8 7 10 40
bj 80 60 30 50 bj 20 30 20
(a) (b)
1 2 3 4 ai 1 2 3 4 ai
1 4 7 12 8 50 1 5 8 15 9 50
2 9 2 6 11 50 2 7 4 2 2 60
3 7 9 2 1 20 3 4 2 3 1 20
bj 40 60 10 30 bj 50 40 30 10
(c) (d)
1 2 3 4 ai
1 2 3 4 ai
1 10 8 4 3 40
1 10 7 2 15 150
2 7 9 8 8 20
2 4 8 9 8 50
3 9 9 7 8 80
3 2 3 4 6 50
4 4 2 1 9 60
bj 100 100 25 25
bj 50 50 60 40
(f )
(e)
a1 = 150, a2 = 50 + , a3 = 50,
b1 = 100, b2 = 100, b3 = 25 + , b4 = 25.
Confrontare le soluzioni ottime dei due problemi. Calcolare il costo totale per
le due soluzioni ottime, confrontare e giustificare i risultati.
Parte II
Soluzioni
35
Capitolo 1
Programmazione lineare
Quindi si ottiene
max 3x1 4x2 + 2u 2v
soggetto a
x1 2x2 + u v 5
2x1 + 4u 4v 12
2x1 4u + 4v 12
x1 + x 2 + u v 15
x1 , x2 , u, v 0.
(b) Sostituendo x3 con y3 e x2 libera con u v, u, v 0, e rimpiazzando il
vincolo di uguaglianza con la coppia di disuguaglianze che esso induce si ottiene
max 4x1 u + v
soggetto a
x1 + u v + y 3 8
x1 u + v y 3 8
3x1 y3 7
x1 , y3 , u, v 0.
37
38 CAPITOLO 1. PROGRAMMAZIONE LINEARE
max 8x1 + x2 + y3
soggetto a
x1 + y 3 4
x2 + y 3 7
x1 x 2 2
x1 , x2 , x3 0.
max 4x1 + y2
soggetto a
x1 2y2 2
2x1 7y2 8
2x1 + 7y2 8
x1 , y2 0.
soggetto a
x1 x2 4
x2 + x 3 7
x3 u + v 2
x1 u + v 12
x1 + u v 12
x1 , x2 .x3 , u, v 0.
(f ) Forma canonica:
soggetto a
x1 + u v y 3 12
x1 + u v 2
u v y3 4
x1 , u, v, y3 0.
1.2. (a) In base alla definizione di forma canonica, e necessario effettuare le seguenti
trasformazoni:
39
soggetto a
x1 + 2x2 u + v x4 =5
2x1 + 4u 4v = 12
x1 + x 2 + u v + x 5 = 15
x1 , x2 , u, v, x4 , x5 0.
(b) Forma standard, con x4 variabile di slack:
max 4x1 u + v
soggetto a
x1 + u v + y 3 =8
3x1 y3 + x4 =7
x1 , u, v, y3 , x4 0.
(c) Forma standard:
max 8x1 + x2 + y3
soggetto a
x1 y 3 x 4 =4
x2 + y 3 + x 5 =7
x1 x 2 + x 6 =2
x1 , . . . , x6 , y3 0.
(d) Forma standard:
max 4x1 + y2
soggetto a
x1 2y2 + x3 =2
2x1 7y2 =8
x1 , y2 , x3 0.
40 CAPITOLO 1. PROGRAMMAZIONE LINEARE
soggetto a
x1 + x 2 x 5 =4
x2 + x 3 + x 6 =7
x3 u + v + x 7 =2
x1 u + v = 12
x1 , . . . , x7 , u, v 0.
(f ) Forma standard:
soggetto a
x1 + u v y 3 + x 4 = 12
x1 u + v x 5 =2
x2 y 3 + x 6 =4
x1 , x2 , x4 , x5 , x6 , y3 , u, v 0.
1.3. (a) Come prima cosa occorre sempre porre il problema in forma standard,
quindi:
soggetto a
soggetto a
x1 2x2 + x3 + x4 =2
3x1 x2 2x3 + x5 =6
x1 , . . . , x5 0,
soggetto a
2x1 + x2 x3 + 3x4 + x5 =8
x1 + 2x2 2x3 + 2x4 + x6 =4
x1 + x 3 + x 7 = 10
x1 , . . . , x7 0,
con x5 , x6 , x7 variabili di slack, lapplicazione del simplesso porta a determinare
la base ottima Bot = {x4 , x6 , x3 }, x3 = 10, x4 = 6, x6 = 12.
(e) Il programma in forma standard risulta
max x1 + 3x2 x3
soggetto a
2x1 + x2 + x4 =3
x1 + x2 + 3x3 + x5 =6
2x1 + x2 + 3x3 + x6 =8
x1 , . . . , x6 0,
con x4 , x5 , x6 variabili di slack. Lapplicazione del simplesso porta a determinare
la base ottima Bot = {x2 , x5 , x6 } con x2 = 3, x5 = 3, x6 = 5.
(f ) Dalla forma standard
max 4x1 + x2 + 5x3
soggetto a
x1 + x2 + x4 =1
2x2 x3 + x5 =2
x1 + x 3 + x 6 =1
x1 , . . . , x6 0,
(x4 , x5 , x6 variabili di slack) si perviene tramite lapplicazione del simplesso alla
base ottima Bot = {x2 , x5 , x3 }, con x2 = x3 = x5 = 1.
1.4. (a) Il programma in forma standard e
max 6x1 x2 3x3
soggetto a
max s1 s2
soggetto a
Nota: nella riformulazione sono state eliminate, come dovuto, le variabili in base
s1 , s2 dallespressione della funzione obiettivo z = s1 s2 , per sostituzione
dalle relazioni vincolari.
Procedendo ora normalmente, risulta B1 = B0 {x1 } {s1 }, e quindi
max z = 29 10 11
s1 54 x2 + 25 x3 1
+ 10 x4 x5
3
x1 = 2 10 s1 + 51 x2 21 x3
1 1
+ 10 x4
9 1 4 1
s2 = 2 10 s1 + 5 x2 52 x3 10 x4 +x5
x1 , . . . , x5 , s1 , s2 0.
max z= 0 s1 s2
3 3 1
x1 = 5 25 s1 + 25 x2 + 51 s2 3
+ 25 x4 51 x5
9 1 8
x3 = 5 + 25 s1 + 25 x2 52 s2 1
25 x4 + 52 x5
x1 , . . . , x5 , s1 , s2 0.
max z = 9 11 5 x2 53 x4
3 1 3
x1 = 5 + 25 x2 + 25 x4 51 x5
9
x3 = 5 + 25 x2 25 x4 + 52 x5
8 1
x1 , . . . , x5 , s1 , s2 0.
44 CAPITOLO 1. PROGRAMMAZIONE LINEARE
soggetto a
soggetto a
max z= 0 s1
1
x1 = 2 41 s1 43 x2 12 x4 + 41 x5
7
x6 = 2 45 s1 43 x2 x3 32 x4 + 45 x5
x1 , . . . , x6 , s1 0.
Poiche z = 0 nella prima fase, si puo passare alla riformulazione rispetto a B 1
del programma iniziale ed applicare il simplesso.
max z = 72 + 13 4 x2 +5x3 + 92 x4 47 x5
1 3
x1 = 2 4 x2 12 x4 + 41 x5
7
x6 = 2 43 x2 1x3 32 x4 + 45 x5
x1 , . . . , x6 0.
45
soggetto a
x1 + x2 + 2x3 =3
2x1 + x2 + 3x3 =5
x1 , x2 , x3 0.
max s1 s2
soggetto a
x1 + x2 + 2x3 + s1 =3
2x1 + x2 + 3x3 + s2 =5
x1 , x2 , x3 , s1 , s2 0.
max x1 + x2 + x3
soggetto a
x1 2x2 + x3 + x4 =5
4x2 + x3 + 2x4 =2
3x2 2x4 + x5 =6
x1 , . . . , x5 0,
46 CAPITOLO 1. PROGRAMMAZIONE LINEARE
soggetto a
x1 2x2 + x3 + x4 + s1 = 5
4x2 + x3 + 2x4 + s2 =2
3x2 2x4 + x5 =6
x1 , . . . , x5 , s1 , s2 0.
Partendo dalla base B0 = {s1 , s2 , x5 } (s1 = 5, s2 = 2, x5 = 6) si ottiene quanto
segue.
max z = 7 x1 6x2 +2x3 +3x4
s1 = 5 +x1 +2x2 x3 x4
s2 = 2 4x2 x3 2x4
x5 = 6 3x2 +2x4
x1 , . . . , x5 , s1 , s2 0;
B1 = B0 {x4 } {s2 },
max z = 4 x1 + 21 x3 23 s2
s1 = 4 +x1 +4x2 21 x3 + 21 s2
x4 = 1 2x2 21 x3 21 s2
x5 = 8 7x2 x3 s2
x1 , . . . , x5 , s1 , s2 0;
B2 = B1 {x3 } {x4 },
soggetto a
x1 + 2x2 + x3 x4 x5 =2
2x1 + x2 x3 + 5x4 x6 =3
x1 , . . . , x6 0.
Dal problema di prima fase si ottiene la base ammissibile B = {x2 , x4 }, e suc-
cessivamente, applicando il simplesso alla riformulazione del programma iniziale
rispetto a B, si verifica che questo e illimitato.
(f ) Non esiste soluzione ammissibile.
47
1.5. (a) Dalla riformulazione rispetto alla base finale {x4 , x2 } si hanno le relazioni
max z = 1 x5 +5x1 x3 ,
dove il costo ridotto 1 > 0 indica che la base {x2 , x4 } non e ottima.
(b) Tenendo presente che min 4x1 + 5x2 x3 equivale a max 4x1 5x2 + x3
nella forma standard, riformulando rispetto alla base finale {x3 , x5 } si ottiene
1 1
3 0 3
(d) A1 2 4
B = 3 1 3 .
0 0 1
1 0 0
1
(e) AB = 1 1 0.
1 0 1
1 0 0
(f ) A1
B = 2 1 1.
0 0 1
1.7. La Figura 3.1 illustra le regioni Sa per i programmi lineari in esame. Si possono
fare le seguenti considerazioni.
(a) Il punto (x1 = 6, x2 = 1) e il punto di Sa piu lontano dalla retta z = 0,
quindi e lunica soluzione ottima.
(b) Il punto (x1 = 2, x2 = 32 ) e il punto di Sa piu vicino alla retta z = 0.
(c) Lungo la semiretta x1 8, x2 = 0 che appartiene ad Sa si puo osservare
che si trovano punti con valore di funzione obiettivo grande a piacere, quindi il
problema e illimitato.
(d) Il punto (x1 = 1, x2 = 2) e a distanza massima dalla retta z = 0, e con esso
tutti i punti del segmento che lo congiunge a (x1 = 8, x2 = 41 ).
49
x2
B( 26 16
9 , 9 )
A( 25 , 1) Sa C(6, 1)
x1
(a)
x2
Sa
B(2, 23 )
x1
(b) (c)
x2
A(1, 2)
Sa
B(8, 41 )
x1
(d)
Dualita
2.1. Riferendosi alle forme standard ottenute per lesercizio 1.3 si ottengono i seguen-
ti programmi duali.
min 4u1 + u2
soggetto a
4u1 + 2u2 3
2u1 + u2 2 (a)
2u1 + u2 5
u1 , u2 0.
soggetto a
u1 + 3u2 1
2u1 2u2 2 (b)
u1 2u2 3
u1 , u2 0.
Nota: sommando il secondo e terzo vincolo, si ottiene u1 4u2 1, che e
incompatibile con i vincoli u1 , u2 0. Quindi il programma duale (b) non ha
soluzione ammissibile. Questo e coerente con quanto ricavato per il primale
nellesercizio 1.3 (programma illimitato).
min 2u1 + 12u2
soggetto a
u1 + 2u2 2
u1 + 3u2 1 (c)
u1 + 8u2 3
u1 , u2 0
51
52 CAPITOLO 2. DUALITA
soggetto a
2u1 u2 + u3 3
u1 + 2u2 1
(d)
u1 2u2 + u3 2
3u1 + 2u2 1
u1 , u2 , u3 0.
soggetto a
2u1 + u2 + 2u3 1
u1 + u 2 + u 3 3 (e)
3u2 + 3u3 1
u1 , u2 , u3 0.
min u1 + 2u2 + u3
soggetto a
u1 + u3 4
u1 + 2u2 1 (f )
u2 + u3 5
u1 , u2 , u3 0.
2.2. Partendo dalle forme standard ricavate per lesercizio 1.4 si ottengono i seguenti
programmi duali.
min 15u1 + 6u2
soggetto a
10u1 + u2 6
2u1 u2 1 (a)
5u1 + 3u2 3
u1 , u2 0.
min 2u1 + u2
soggetto a
4u1 5u2 7
3u1 3u2 2
(b)
u2 5
2u1 u2 1
u1 0, u2 0.
soggetto a
u1 + 2u2 2
u1 + u 2 1 (c)
2u1 + 3u2 4
soggetto a
u1 1
2u1 + 4u2 + 3u3 1
(d)
u1 + u 2 1
u1 + 2u2 2u3 0
u3 0
soggetto a
u1 2u2 4
2u1 + u2 3
(e)
u1 u 2 1
u1 + 5u2 2
u1 , u2 0.
soggetto a
2u1 + 3u2 + u3 1
u1 + u2 + 2u3 1 (f )
u1 + 2u2 + u3 2
max cx
soggetto a
Ax = b + (P0 )
x 0,
si ottiene
min u(b + )
54 CAPITOLO 2. DUALITA
soggetto a
uT A c. (D0 )
min ub
soggetto a
uA c + . (D00 )
uA c c + ( 0).
max{c1 , . . . , cn }
ui =
min{aij , i = 1, . . . , n, j = 1, . . . , m}
uA c,
e quindi una soluzione ammissibile duale. Quindi (P) non puo essere illimitato.
2.4. Considerando il prodotto
n
X
(uA c)x = [(uaj cj )xj ]
j=1
2.5. (a) Come sempre, occorre riportare il programma alla sua forma standard, che
risulta, con x4 , x5 variabili di surplus:
soggetto a
x1 + x 2 x 4 =4
2x1 + x2 x3 x5 =8
x1 , . . . , x5 0.
max z = 8 x1 x5 4x3
x4 = 4 x1 +x5 +x3
x2 = 8 2x1 +x5 +x3
x1 , . . . , x 5 0 .
soggetto a
x1 + x 2 x 3 x 4 =6
2x1 + x3 x5 =4
x1 + x2 2x3 + x6 =2
x1 , . . . , x6 0.
56 CAPITOLO 2. DUALITA
Applicando il metodo del simplesso duale a partire dalla base ammissibile per
il duale e non ammissibile per il primale B0 = {x4 , x5 , x6 } risulta quanto segue.
B1 = B0 {x1 } {x4 }
B2 = B1 {x3 } {x6 }
max z = 8 x1 x5 4x3
x4 = 4 x1 +x5 +x3
x2 = 8 2x1 +x5 +x3
x1 , . . . , x 5 0 .
x1 + 2x3 s = 1,
max z = 8 x1 x5 4x3
x4 = 4 x1 +x5 +x3
x2 = 8 2x1 +x5 +x3
s = 1 +1x1 +2x3
x1 , . . . , x 5 0 .
x1 + x 2 + s = 5
min 4u1 + u2
soggetto a
2u1 + u2 =2
= u1 = 0, u2 = 2.
u1 =0
u1 + 2u2 =2 10 1
(c) = u1 = , u2 = .
u1 + 8u2 =3 6 6
u1 2u2 + u3 =2
1 7
(d) 3u1 + 2u2 = 1 = u1 = , u2 = 0, u3 = .
3 3
u2 =0
u1 + u 2 + u 3 =3
(e) u2 = 0 = u1 = 3, u2 = 0, u3 = 0.
u3 =0
u1 + 2u2 =1
(f ) u2 + u3 = 5 = u1 = 1, u2 = 0, u3 = 5.
u2 =0
10u1 + u2 = 6 3
2.9. (a) = u1 = , u2 = 0.
5u1 + 3u2 = 3 5
u1 + 2u2 = 2
(c) = u1 = 0, u2 = 1.
u1 + u 2 = 1
(d) Poiche il primale non ha soluzioni ammissibili, il duale puo essere illimitato
o avere regione ammissibile vuota.
(e) Non esiste soluzione ammissibile perche il primale e illimitato.
(f ) Il duale e illimitato o ha regione ammissibile vuota in quanto il primale non
ha soluzioni ammissibili.
2.10.
soggetto a
10u1 + u2 6
2u1 u2 1
(a)
5u1 + 3u2 3
u1 , u2 0.
max 2u1 + u2
59
soggetto a
4u1 5u2 7
3u1 3u2 2
u2 5 (b)
2u1 u2 1
u1 0, u2 0.
soggetto a
u1 + 2u2 2
u1 + u 2 1 (c)
2u1 + 3u2 4
soggetto a
u1 1
2u1 + 4u2 + 3u3 1
u1 + u 2 1 (d)
u1 + 2u2 2u3 0
u3 0.
soggetto a
u1 + 2u2 4
2u1 u2 3
u1 + u 2 1 (e)
u1 5u2 2
u1 0, u2 0.
soggetto a
2u1 + 3u2 + u3 1
u1 + u2 + 2u3 1 (f )
u1 + 2u2 + u3 2
60 CAPITOLO 2. DUALITA
Capitolo 3
Analisi di sensitivita
max z = 8 x1 + x3 2x4 ,
5 1 1 1
c5 x5 = 7c5 c5 x1 + c5 x3 + c5 x4 (c5 = )
2 2 2 5
47 1 1 21
max z = x1 x3 x4 ,
5 2 10 10
senza perdita di ottimalita (1 , 3 , 4 0); si puo osservare che la perturbazione
causa una variazione della funzione obiettivo pari a z = c5 x5 = 75 .
(b) La perturbazione di b3 non causa perdita di ammissibilita; si puo osservare
che, poiche la soluzione ottima del duale non cambia, dal valore delle variabili
duali
1
0 0 2
u = u1 u2 u3 = cB A1 B = 4 0 2 1 0 0 = 4 2 3
2 1 12
61
62 CAPITOLO 3. ANALISI DI SENSITIVITA
z = u3 b3 = 3.
A1
B (b + b) 0 = A1 1
B b AB b
e, nel caso di b1 ,
1
0
2 4 + b1
1 0,
2 1 5
cioe
1
0
2 b1 2
1 .
2 1 0 7
1
b1 2
2 = 4 b1 +.
1
b2 7
2
Analogamente, per il termine noto b2 si impostano le condizioni
1
0
2 0 2
1 ,
2 1 b 2 7
63
cioe
0 2
= 7 b2 +.
b2 7
Per quanto riguarda i coefficienti di costo della funzione obiettivo, si procede in
modo analogo, ricordando che la base B e ancora ottima rispetto ad un vettore
di costi perturbato c = c + c se cN cB A1
B N 0 (costi ridotti non positivi).
Nel caso di c1 (x1 / Bot ) la variazione c1 si ripercuote direttamente sul costo
ridotto 1 , trasformando la funzione obiettivo riformulata in
max z = 8 + (c1 1)x1 2x4 ,
c1 1 0 = c1 1.
Perturbando il coefficiente c2 (x2 Bot ) con un c2 e sommando il contributo
1 1 1
c2 x2 = 2c2 c2 x1 + c2 x3 + c2 x4
2 2 2
la funzione obiettivo riformulata diventa
1 1 1
max (2c2 8) (1 + c2 )x1 + c2 x3 + ( c2 2)x4 ,
2 2 2
e, per conservare le condizioni di ottimalita, la c2 deve soddisfare le condizioni
1
c2 1 0
2
1
c2 0 = 2 c2 0.
2
1
c2 2 0
2
Analogamente, si ottengono i seguenti risultati
2
c3 0, c4 2, c5 0.
5
(b)
9
b1 +, b2 9, 8 b3 +,
2
17
c1 +, c2 17, 4 c3 +,
2
2 c4 +, c5 4.
(c)
22
18 b1 +, 2 b2 22, b3 2
5
c1 9, 6 c2 +, c3 6,
3
3 c4 +, c5 .
2
64 CAPITOLO 3. ANALISI DI SENSITIVITA
(d)
11
b1 11, 8 b2 +, b3 +
3
23 23 23 23
c1 , c2 , c3 ,
3 2 5 5
23 23 23
c4 +, c5 .
5 5 10
(e)
9 9
b1 0, 9 b2 +, 0 b3 ,
2 2
6
c1 12, c2 , c3 12,
5
12 12
c4 , c5 +.
5 5
(f )
19 19
b1 +, 10 b2 30, 15 b3
3 2
13 61 13
61 c1 , c2 , c3 ,
3 14 14
13 13 61
c4 , c5 .
22 7 7
3.3. Tutte le variazioni riguardano colonne associate a variabili non appartenenti
alla base ottima.
(a) Il valore delle variabili duali allottimo e dato da
u1 u2 = cB A Bot 1 = 2 0 .
u1 a14 = 4 = 4 = 2 + 4 = 2 > 0
u2 a25 = 2 = 5 = 4 2 = 6 < 0,
Programmazione intera
max 2x1 x2 x3
soggetto a
2x1 + x2 + x4 =5
4x2 + x3 + x5 =5
x1 x 3 x 6 =2
x1 , . . . , x6 0 intere,
max z = 5 2x2 x3 x4
1
x6 = 2 21 x2 x3 21 x4
x5 = 5 4x2 x3
5
x1 = 2 21 x2 12 x4
x1 , . . . , x 6 0.
Poiche la soluzione prodotta non e intera, si seleziona una riga k con k non
intero e si genera il taglio di Gomory ad essa associato. Il taglio in questione
per la riga della x6 e
1 1 1
+ x2 + x4 0,
2 2 2
che inserito nella precedente riformulazione produce
max z = 5 2x2 x3 x4
1
x6 = 2 21 x2 x3 21 x4
x5 = 5 4x2 x3
5
x1 = 2 21 x2 21 x4
y1 = 2 + 21 x2
1
+ 12 x4
x1 , . . . , x 6 , y 1 0.
65
66 CAPITOLO 4. PROGRAMMAZIONE INTERA
max z = 4 x2 x3 2y1
x6 = 0 x3 y1
x5 = 5 4x2 x3
x1 = 2 y1
x4 = 1 x2 +2y1
x1 , . . . , x 6 , y 1 0.
max z = 8 3x1 x4 x3
8 1 1
x2 = 3 3 1x 3 x4
19 1 1
x5 = 3 + 3 1x + 3 x4 2x3
29 4 1
x6 = 3 3 1x 3 x4
x1 , . . . , x6 0.
max z = 8 3x1 x4 x3
8 1 1
x2 = 3 3 x 1 3 x4
19 1 1
x5 = 3 + 3 x 1 + 3 x4 2x3
29 4 1
x6 = 3 3 x 1 3 x4
2 1 1
y1 = 3 + 3 x1 + 3 x4
x1 , . . . , x6 , y1 0,
da cui
quindi
max z = 0 3y1
x2 = 1 3y1
x3 = 2 +3y1
x4 = 0 2y1
x1 = 1 +2y1
x1 , . . . , x4 , y1 0.
La riga di x2 presenta la condizione di illimitatezza duale, quindi il programma
originale non ammette soluzione intera.
4.2. (a) La Figura 4.1(a) riporta la regione di ammissibilita del rilassamento lineare
del problema (Nodo 0), costituita dalla figura ABCDE; lottimo frazionario e
localizzato nel punto C(x1 = 25 , x2 = 0). Si ha quindi LB = , UB = 52 .
Eseguendo loperazione di branch sulla variabile x1 si ottengono i due nodi 1
(x1 2) e 2 (x1 3). I rispettivi sottoproblemi hanno regioni di ammissibilita
delimitate dal trapezio DEHF (Nodo 1) con ottimo intero in F (x1 = 2, x2 = 1)
e dal segmento AB, con ottimo intero in B(3, 0) (Nodo 2). Entrambi i nodi
possono essere quindi cancellati subito, e lottimo del problema iniziale e nel
punto F (z = 3) nota: anche B e ottimo.
(b) La Figura 4.1(b) riporta la regione di ammissibilita del problema (triangolo
ABC); lottimo (frazionario) e localizzato in B(x1 = 5, x2 = 92 ); quindi si ha
LB = , e UB = 4 al nodo 0. Effettuando il branch su x2 si ottengono
i nodi 1 (x2 4) e 2 (x2 5). Di questi, il 2 risulta immediatamente con
regione ammissibile vuota e viene cancellato; il nodo 1 ha invece la regione di
ammissibilita delimitata dal trapezio ADF C, con ottimo in D(x1 = 14 3 , x2 = 4).
Occorre quindi effettuare un nuovo branch su x1 , generando i nodi 3 (x1
4) e 4 (x1 5). Le regioni di ammissibilita per i due nuovi sottoproblemi
associati ai nodi sono rispettivamente il triangolo AEG, con ottimo intero in
E(4, 3), UB = 2 = LB = 2 ed il solo segmento CF , con ottimo intero in
F (5, 4), UB = 3 = LB = 3. Entrambi i nodi vengono quindi cancellati, ed il
processo si arresta con soluzione ottima x1 = 5, x2 = 4, z = 3.
(c) Soluzione ottima con x1 = 2, x2 = 1, valore ottimo z = 10.
(d) Soluzione ottima con x1 = 0, x2 = 2, valore ottimo z = 2.
68 CAPITOLO 4. PROGRAMMAZIONE INTERA
4.3. Per lavorare con piu di due variabili, e vantaggioso utilizzare il simplesso duale
per gestire i vincoli addizionali in modo incrementale (analogamente al metodo
di Gomory). (a) Come primo passo si risolve il rilassamento lineare (o continuo)
del problema, partendo dalla forma standard
max 2x1 x2 x3
soggetto a
2x1 + x2 + x4 =5
4x2 + x3 + x5 =5
x1 x 3 x 6 =2
x1 , . . . , x6 0.
max z = 5 2x2 x3 x4
1
x6 = 2 21 x2 x3 12 x4
x5 = 5 4x2 x3 (Nodo 0)
5
x1 = 2 21 x2 12 x4
x1 , . . . , x 6 0.
Il nodo radice 0 ha quindi UB = 5. La soluzione trovata non e intera, quindi si
assume LB = . A questo punto si sceglie una variabile con valore frazionario
per eseguire loperazione di branch. In questo caso si e scelto x1 , generando i
branch x1 2 e x1 3 (nodi 1 e 2 rispettivamente).
Disponendo della riformulazione ottima del nodo radice, i rilassamenti lineari
associati ai nodi figli possono essere risolti in modo incrementale, facendo uso
del simplesso duale come accade nel metodo di Gomory. In particolare facendo
uso delluguaglianza relativa ad x1 si possono esprimere i due vincoli addizionali
come
5 1 1 1 1 1
x1 2 x2 x4 2 x2 x4 + y1 = ,
2 2 2 2 2 2
5 1 1 1 1 1
x1 3 x2 x4 3 x2 x4 y2 = ,
2 2 2 2 2 2
facendo uso della variabile di slack y1 e della variabile di surplus y2 rispetti-
vamente. Nota: questi vincoli non sono tagli di Gomory, ma per la forma in
cui sono stati posti possono essere introdotti nella riformulazione e la riottimiz-
zazione dei sottoproblemi avviene tramite il simplesso duale; questo evita di
riavviare il simplesso da zero per risolvere i nuovi nodi.
Per il nodo 1, inserendo y1 nella riformulazione ottima del nodo padre 0 si
ottiene allora
max z = 5 2x2 x3 x4
1
x6 = 2 12 x2 x3 12 x4
x5 = 5 4x2 x3
5
x1 = 2 12 x2 21 x4
y1 = 2 + 12 x2
1
+ 21 x4
x1 , . . . , x 6 , y 1 0.
69
e quindi
max z = 4 x2 x3 2y1
x6 = 0 x3 y1
x5 = 5 4x2 x3
x1 = 2 y1
x4 = 1 x2 +2y1
x1 , . . . , x 6 , y 1 0.
Il nodo 1 viene quindi chiuso per ottimalita, e si ha LB = 4. Per il nodo 2,
aggiungendo il vincolo x1 3 si ottiene la riformulazione
max z = 5 2x2 x3 x4
1
x6 = 2 21 x2 x3 21 x4
x5 = 5 4x2 x3
5
x1 = 2 21 x2 21 x4
y2 = 2 21 x2
1
12 x4
x1 , . . . , x 6 , y 2 0,
che presenta la condizione di illimitatezza duale; quindi il sottoproblema asso-
ciato a questo nodo ha regione ammissibile vuota ed il nodo viene chiuso. Non
essendoci altri nodi da processare, lalgoritmo si arresta con la soluzione ottima
trovata al nodo 1. Lalbero di branch e riportato in Figura 4.2(a).
(b) Soluzione ottima con x2 = 2, x5 = 7, x6 = 9, x4 = 2, x1 = x3 = 0, con
valore ottimo z = 6.
(c) La soluzione del rilassamento lineare fornisce la riformulazione
max z= 8 x4 x5 x3
7
x1 = 4 21 x4 + 41 x5 + 43 x3
3 (Nodo 0)
x2 = 2 21 x5 21 x3
x1 , . . . , x5 0.
Effettuando il branch su x1 si generano i nodi 1 (x1 1) e 2 (x1 2). Per il
nodo 1, inserendo il vincolo x1 1 si ha
max z = 8 x4 x5 x3
7
x1 = 4 21 x4 + 41 x5 + 34 x3
3
x2 = 2 21 x5 12 x3
y1 = 43 + 21 x4 41 x5 34 x3 x1 , . . . , x5 , y1 0.
da cui
13
max z = 2 2y1 23 x5 52 x3
x1 = 1 y1
3
x2 = 2 12 x5 12 x3 (Nodo 1)
3
x4 = 2 +2y1 + 21 x5 + 32 x3
x1 , . . . , x5 , y1 0.
Per il nodo 2 si ha
max z = 8 x4 x5 x3
7 1 1
x1 = 4 2 x 4 + 4 x5 + 34 x3
3 1
x2 = 2 2 x5 12 x3
1 1 1
y2 = 4 2 x4 + 4 x5 + 43 x3
x1 , . . . , x5 , y2 0.
70 CAPITOLO 4. PROGRAMMAZIONE INTERA
da cui
23
max z = 3 35 x4 23 x5 34 y2
x1 = 2 +y2
4
x2 = 3 31 x4 13 x5 32 y2 (Nodo 2)
1
x3 = 3 + 32 x4 13 x5 + 34 y2
x1 , . . . , x 5 , y 2 0
Nessuno dei due nodi presenta una soluzione intera, pertanto si assume ancora
LB = . Uno dei nodi deve quindi essere selezionato per effettuare un branch.
Operando sul nodo 2, si generano i nodi 3 (x2 1) e 4 (x2 2). Per il nodo 3,
procedendo in modo analogo a prima si introduce il vincolo
4 1 1 2 1 1 2 1
x2 1 x4 x5 y2 1 x4 x5 y2 + y3 = ,
3 3 3 3 3 3 3 3
nella riformulazione ottima del nodo padre 2 e si ha
max z = 23
3 53 x4 23 x5 34 y2
x1 = 2 +y2
4
x2 = 3 13 x4 13 x5 32 y2
1
x3 = 3 + 23 x4 13 x5 + 34 y2
y3 = 31 + 13 x4 + 31 x5 + 32 y2 x1 , . . . , x5 , y2 , y3 0,
e quindi
max z = 7 x4 2y3
x1 = 2 +y2
x2 = 1 y3
(Nodo 3)
x3 = 0 +x4 y3 +2y2
x5 = 1 x4 +3y3 2y2
x1 , . . . , x5 , y2 , y3 0.
x2
D(0, 5)
F (2, 1)
B(3, 0) 0
x1 2 x1 3
C( 25 , 0) x1
1 2
(a)
x2
B(5, 92 )
D( 14
3 , 4) F (5, 4)
E(4, 3)
0
x2 4 x2 5
1 2
x1 4 x1 5
A(2, 0) G(4, 0) x1
C(5, 0)
3 4
(b)
0
x1 2 x1 3
1 2
(a)
0
x1 1 x1 2
1 2
x2 1 x2 2
3 4
(c)
Introduzione ai grafi
5.1. (a) Seguendo lalgoritmo noto per la determinazione delle componenti connesse,
si parte con un insieme di nodi W = V = {a, b, c, d, e, f, g}. Si pone S = {a},
T1 = , quindi si procede iterativamente come segue.
4. S := S {c} f = {d, g, f };
T1 := T1 {c} = {a, b, e, c};
5. S := S {d} {f } = {g, f };
T1 := T1 {d} = {a, b, e, c, d};
6. S := S {g} {f } = {f };
T1 := T1 {g} = {a, b, e, c, d, g};
7. S := S {f } = ;
T1 := T1 {f } = {a, b, e, c, d, g, f };
73
74 CAPITOLO 5. INTRODUZIONE AI GRAFI
4. S := S {e} = ;
T1 := T1 {e} = {a, c, h, e};
quindi T1 = {a, c, h, e} e una componente connessa di G; ricalcolando W :=
W T1 = {b, d, f, g, i} 6= , si conclude che esistono altre componenti connesse
da identificare. Quindi si pone s = {b}, T2 = e si ha
1. S := S {b} {d, g} = {d, g};
T2 := T2 {b};
2. S := S {d} {f, i} = {g, f, i};
T2 := T2 {d} = {b, d};
3. S := S {g} {f } = {f, i};
T2 := T2 {g} = {b, d, g};
4. S := S {f } = {i};
T2 := T2 {f } = {b, d, g, f };
5. S := S {i} = ;
T2 := T2 {i} = {b, d, g, f, i};
essendo W T2 = , lalgoritmo termina. Sono state identificate le componenti
connesse T1 = {a, c, e, h} e T2 = {b, d, g, f, i}, quindi G non e connesso.
(c) Si hanno T1 = {b, c, d, e, f } e T2 = {a, g, h}, quindi G non e connesso.
(d) Si ha T1 = {a, b, c, d, e, f } = V , quindi G e connesso.
(e) Si hanno T1 = {a, b, c, f } e T2 = {d, e, g}, quindi G non e connesso.
(f ) Si ha T1 = {a, b, c, d, e, f, g, h} = V , quindi G e connesso.
5.2. (a) Applicando lalgoritmo per il riconoscimento dei grafi bipartiti, si ponga
W = V e si proceda come segue.
C1 : a
T2 = {b, e}
C2 :
C1 : a
T1 = {g, d, c};
C2 : b, e
C1 : a, g, d, c
T2 = {f };
C2 : b, e
C1 : a, g, d, c
T1 = , T2 = .
C2 : b, e, f
C1 : a
T2 = {c, h}
C2 :
C1 : a
T1 = {e}
C2 : c, h
C1 : a, e
T2 = , T1 = .
C2 : c, h
75
C1 : a
T2 = {g, h}
C2 :
C1 : a
T1 = {g, h}
C2 : g, h
C1 : a, g, h
C1 C2 6= .
C2 : g, h
(a, c), (c, b), (c, a), (c, d), (e, c), (a, b),
(b, c), (d, b), (e, a), (a, d), (d, e), (b, a),
(e, b), (a, e).
3. Si aggiornano gli ev , v
/ U : risulta eb = (c, b), ed = (c, d), ee = (e, c);
4. Si sceglie il nuovo arco di costo minimo, eb = (c, b), quindi U := {a, b, c}
e AT = {(a, c), (c, b)};
5. Si verifica che gli ev , v
/ U , non cambiano: ed = (c, d), ee = (e, c);
6. Si sceglie larco di costo minimo, ed = (c, d) e quindi U := {a, b, c, d},
AT := {(a, c), (c, b), (c, d)};
7. Infine si aggiorna ee = (e, c) (qui non varia) e si aggiunge questultimo
arco allalbero.
Risulta, come sopra, T (V, AT ) con w(T ) = 11.
(b) AT = {(a, e), (b, c), (b, e), (e, d)} (non necessariamente nellordine di selezione),
w(T ) = 10. Un altro albero equivalente si ottiene sostituendo (a, e) con (a, b).
(c) AT = {(a, d), (b, d), (c, e), (d, e)}, w(T ) = 9.
(d) AT = {(a, e), (b, c), (b, d), (d, e)}, w(T ) = 12. Un albero equivalente si ottiene
sostituendo (d, e) con (a, d).
(e) AT = {(b, a), (b, c), (b, d), (b, e), (e, f )}, w(T ) = 16.
(f ) AT = {(a, d), (b, d), (c, e), (d, e), (f, e)}, w(T ) = 12.
Capitolo 6
6.1. (a) B1 e una base, infatti i suoi archi formano un albero di supporto per il
grafo di Figura 6.1(a). Formando i vincoli di conservazione del flusso limitati
alle variabli in base, si ottiene
x12 = 5
x12 + x23 + x26 = 0
x23 = 0
x26 x56 + x67 = 0
x56 x45 = 0
x45 = 6
x78 x67 = 7
x78 = 4
che ammette la soluzione (unica) non negativa
x12 = 5, x23 = 0, x26 = 5, x45 = 6,
x56 = 6, x67 = 11, x78 = 4.
B2 e una base, infatti i suoi archi formano un albero di supporto del grafo di
Figura 6.1(a); tuttavia, formando i vincoli di conservazione del flusso, si ottiene
il sistema
x13 + x14 = 5
x23 = 0
x35 + x36 x13 + x23 = 0
x14 = 6
x58 x35 = 0
x36 = 0
x78 = 7
x58 x78 = 4
77
78 CAPITOLO 6. PROBLEMI DI FLUSSO A COSTO MINIMO
che non ammette soluzioni non negative. Quindi B2 e una base non am-
missibile. B3 non e una base, infatti contiene il ciclo formato dagli archi
{(1, 2), (2, 6), (5, 6), (4, 5), (1, 4)}, quindi i vettori corrispondenti agli archi di B 3
non sono linearmente indipendenti.
(b) B1 e una base in quanto i suoi archi formano un albero di supporto del
grafo di Figura 6.1, ma e una base non ammissibile in quanto i vincoli di con-
servazione del flusso ristretti alle variabili di B1 non ammettono soluzione non
negativa (verificare). B2 e una base in quanto i suoi archi formano un albero di
supporto; dai vincoli di conservazione del flusso si ottiene
B3 e una base in quanto i suoi archi formano un albero di supporto; dai vincoli
di conservazione del flusso si ottiene
(c) B1 e una base in quanto i suoi archi formano un albero di supporto del grafo
di Figura 6.1(c). Il valore delle variabili in base e
B2 e una base non ammissibile, in quanto i suoi archi formano un albero di sup-
porto, ma i vincoli di conservazione del flusso non ammettono soluzione non neg-
ativa. B3 non e una base: contiene il ciclo formato dagli archi {(2, 3), (2, 4), (3, 4)}.
(d) B1 e una base non ammissibile: i suoi archi formano un albero di supporto,
ma i vincoli di conservazione del flusso non ammettono soluzione non negativa
(verificare). Stesso risultato per B2 ; B3 e una base che detrmina
6.2. (a) La base B0 con i valori di xij riportati sugli archi e rappresentata di seguito,
insieme ai valori dei costi ridotti cij relativi agli archi fuori base.
7
2 6 7 c13 = 4,
0
0 7 c26 = 2,
4 c35 = 0,
1 3 5 8
c36 = 3,
5 11
c78 = 10.
4
La variabile entrante, scelta con il criterio del minimo costo ridotto e x13 , che
entra con valore = min{x12 , x23 } = 0. La variabile uscente risulta x12 (anche
x23 e una scelta lecita). Allora (spostando uno zero pesante) si ottiene
B1 = B0 + (1, 3) (1, 2) = {(1, 3), (1, 4), (2, 3), (4, 5), (5, 6), (5, 8), (6, 7)}
7
2 6 7 c12 = 4,
0 7 c26 = 6,
0 4 c35 = 4,
1 3 5 8
c36 = 7
5 11
c78 = 10.
4
Entra quindi in base x36 , con valore = min{x14 , x45 , x56 } = 5, esce x14 . Risulta
allora
B2 = B1 + (3, 6) (1, 4) = {(1, 3), (2, 3), (3, 6), (4, 5), (5, 6), (5, 8), (6, 7)}
7
2 6 7 c12 = 4,
5
0 2 c14 = 7,
5 4 c26 = 1,
1 3 5 8
c35 = 3,
6
c78 = 10.
4
B0 = {(1, 3), (1, 6), (3, 5), (4, 1), (5, 7), (6, 2)},
x13 = 8, x16 = 8, x35 = 8,
x41 = 6, x58 = 8, x62 = 8,
e costi ridotti
8. Esce la x16 . Si ha
B1 = {(1, 3), (3, 5), (3, 6), (4, 1), (5, 7), (6, 2)},
x13 = 16, x35 = 8, x36 = 8,
x41 = 6, x58 = 8, x62 = 8,
e costi ridotti
B2 = {(1, 3), (3, 5), (3, 6), (4, 5), (5, 7), (6, 2)},
x13 = 10, x35 = 2, x36 = 8,
x45 = 6, x58 = 8, x62 = 8,
e costi ridotti
La base B2 e ottima.
(c) Risulta
B0 = {(1, 2), (2, 3), (3, 4), (4, 5), (5, 6)} (c24 = 9),
B1 = {(1, 2), (2, 3), (2, 4), (4, 5), (5, 6)}
B0 = {(1, 2), (2, 6), (3, 4), (4, 6), (5, 4)} (c56 = 6),
B1 = {(1, 2), (2, 6), (3, 4), (5, 4), (5, 6)} (c24 = 1),
B2 = {(1, 2), (2, 4), (3, 4), (5, 4), (5, 6)},
B0 = {(1, 2), (1, 3), (1, 6), (2, 4), (3, 5), (4, 8), (8, 7)},
10 10
2 4 8 c32 = 2
10
5 c57 = 11
0 10 c63 = 5,
1 3 5 7
0 c65 = 6,
c76 = 4.
6
81
B1 = {(1, 2), (1, 3), (1, 6), (2, 4), (3, 5), (4, 8), (5, 7)},
5 5
2 4 8 c32 = 2
5
c63 = 5
5 5 5 c65 = 6,
1 3 5 7
0 c76 = 7,
c87 = 11.
6
B2 = {(1, 2), (1, 3), (2, 4), (3, 5), (4, 8), (5, 7), (7, 6)},
5 5
2 4 8 c32 = 2
5
c63 = 2
5 5 5 c65 = 1,
1 3 5 7
c16 = 7,
0
c87 = 11.
6
La variabile x63 e selezionata per entrare in base, ma il ciclo {(6, 3), (3, 5),
(5, 7), (7, 6)} (che e anche un circuito) non permette la selezione di una vari-
abile uscente. Questo indica la presenza di una soluzione illimitata.
(f ) Risulta
B0 = {(1, 2), (2, 5), (3, 6), (4, 2), (5, 3), (5, 7)} (c47 = 9),
B1 = {(1, 2), (2, 5), (3, 6), (4, 2), (4, 7), (5, 3)},
B0 = {(1, q), (q, 2), (q, 3), (q, 4), (q, 5)},
B1 = {(1, q), (1, 2), (q, 3), (q, 4), (q, 5)}, (r23 = 2)
B2 = {(1, q), (1, 2), (1, 3), (q, 4), (q, 5)}, (r24 = 2)
B3 = {(1, q), (1, 2), (1, 3), (2, 4), (q, 5)}, (r35 = 2)
B4 = {(1, q), (1, 2), (1, 3), (2, 4), (3, 5)} (ottimo).
Quindi B = {(1, 2), (1, 3), (2, 4), (3, 5)} e una base ammissibile con x12 = x13 =
10, x24 = x35 = 0. (b) Non esiste una base ammissibile.
6.7. Se il problema ammette soluzioni ammssibili, allora la base finale prodotta dal-
la procedura per la determinazione della soluzione iniziale deve essere degenere.
Infatti il nodo supplementare q deve essere collegato da (esattamente) un ar-
co allalbero di supporto corrispondente alla base finale. Inoltre se esiste una
soluzione ammissibile tale arco deve essere scarico (altrimenti la soluzione della
prima fase non avrebbe costo nullo).
Capitolo 7
7.1. (a) A partire dal flusso iniziale specificato (totale f = 3), si ottiene il primo
grafo di scarto, riportato di seguito.
2 1
1 2 6
1 1 3
3 7 1 6
1
1 2
s 4 3 d
1
7 4 1
2
Si noti che (4, 2), (6, 2), (d, 6) sono archi backward. Un possibile cammino
orientato s d e (s, 5, d), che da = min{7, 1} = 1. Si aumenta quindi di 1 il
flusso lungo gli archi (s, 5) e (5, d) del grafo originale, ottenendo xs5 = x5d = 1
e portando il flusso totale a f = 4. Ridisegnando il grafo di scarto per il nuovo
flusso, si ottiene
2 1
1 2 6
1 1 3
3 7 1 6
1
1 2
s 4 3 d
6 1
4 1
2
1
5
sul quale esiste il cammino sd (1, 4, 2, 6, d). Si noti che questo cammino utilizza
larco backward (4, 2). Risulta = min{1, 1, 1, 3} = 1, ed i nuovi flussi degli
archi interessati sono
xs4 = 1, x24 = 1 1 = 0, x26 = 1 + 1 = 2,
x6d = 1 + 1 = 2,
83
84 CAPITOLO 7. PROBLEMA DEL MASSIMO FLUSSO
2 2
1 2 6
1 2
3
8 6
2
1 1 2
s 4 3 d
6
4 1
2
1
5
7.2. Se i vincoli di capacita xij cij sono specificati per tutti gli archi del grafo, la
regione di ammissibilita non puo essere un troncone. Se invece il grafo contiene
archi a capacita illimitata, e se esiste un circuito formato da archi di tale genere,
la regione di ammissibilita e un poliedro illimitato (valgono le considerazioni
degli esercizi 7.5 e seguenti).
7.3. E sufficiente, dato il grafo G capacitato sui nodi, costruire un grafo G0 capacitato
sugli archi, definito come segue.
soggetto a
ui uj + wij 0 (i, j) A, i, j
/ {s, d},
uj + wsj 1 (s, j) A,
ui + wid 0, (i, d) A,
ui libere, i V {s, d}, wij 0, (i, j) A.
ui uj wij ui uj + wij
i U, j
/U 1 0 1 0
i/ U, j U 0 1 0 1
i U, j U 1 1 0 0
i/ U, j
/U 0 0 0 0
P P
8.1. (a) Poiche risulta i ai = 200 e j bj = 220, occorre bilanciare il problema
aggiungendo un deposito fittizio 4, con a4 = 20. In mancanza di ulteriori
indicazioni, si assume c4j = 0 per ogni j. La matrice del problema bilanciato e
quindi la seguente.
1 2 3 4 ai
1 8 5 8 9 90
2 4 6 10 4 50
3 2 11 4 3 60
4 0 0 0 0 20
bj 80 60 30 50
1 2 3 4 ai 1 2 3 4
1 80 10+ 90 1 0 0 1 1
2 + 50 0 50 2 5 0 0 5
3 30 30 60 3 1 11 0 0
4 20 20 4 0 3 1 0
bj 80 60 30 50
xij cij
Il costo ridotto minimo (5) si ha in corrispondenza della casella (2, 1), che entra
in base (anche (2, 4) e una scelta lecita). Individuando il ciclo {(2, 1)+ , (2, 2) ,
(1, 2)+ , (1, 1) } e ponendo = min{x11 , x22 } = 50 si effettua il cambio di base
B1 = B0 + (2, 1) (2, 2) = {(1, 1), (1, 2), (2, 1), (2, 3), (3, 3), (3, 4), (4, 4)},
87
88 CAPITOLO 8. PROBLEMA DEL TRASPORTO.
1 2 3 4 ai 1 2 3 4
1 30 60 + 90 1 0 0 6 4
2 50+ 0 50 2 0 5 0 5
3 30 30 60 3 4 16 0 0
4 20 20 4 5 8 1 0
bj 80 60 30 50
xij cij
B2 = B1 + (1, 3) (2, 3) = {(1, 1), (1, 2), (1, 3), (2, 1), (3, 3), (3, 4), (4, 4)},
1 2 3 4 ai 1 2 3 4
1 30 60 0+ 90 1 0 0 0 2
2 50 50 2 0 5 6 1
3 + 30 30 60 3 2 10 0 0
4 20 20 4 1 2 1 0
bj 80 60 30 50
xij cij
B3 = B2 + (3, 1) (1, 1) = {(1, 1), (1, 2), (1, 3), (2, 1), (3, 3), (3, 4), (4, 4)},
(con = min{x11 , x33 } = 30, la scelta della casella uscente tra (1, 1) e (3, 3) e
arbitraria)
1 2 3 4 ai 1 2 3 4
1 60 30+ 90 1 2 0 0 2
2 50 + 50 2 0 3 4 1
3 30+ 0 30 60 3 0 10 0 0
4 20 20 4 1 2 1 0
bj 80 60 30 50
xij cij
B4 = B3 + (2, 4) (3, 4) = {(1, 2), (1, 3), (2, 1), (2, 4), (3, 1), (3, 3), (4, 4)},
1 2 3 4 ai 1 2 3 4
1 60 30 90 1 2 0 0 3
2 20 30+ 50 2 0 3 4 0
3 60+ 0 60 3 0 10 0 1
4 + 20 20 4 0 1 2 0
bj 80 60 30 50
xij cij
B5 = B4 + (4, 3) (3, 3) = {(1, 2), (1, 3), (2, 1), (2, 4), (3, 1), (4, 3), (4, 4)},
89
(il ciclo individuato e {(4, 3)+ , (3, 3) , (3, 1)+ , (2, 1) , (2, 4)+ , (4, 4)}, = 0)
1 2 3 4 ai 1 2 3 4
1 60 30 90 1 0 0 0 1
2 20 30 50 2 0 5 6 0
3 60 60 3 0 12 2 1
4 0 20 20 4 0 3 0 0
bj 80 60 30 50
xij cij
B5 risulta quindi
P ottima, P avendo cij 0 per ogni i, j.
(b) Essendo i ai = 80 e j bj = 70, la procedura di bilanciamento richiede di
inserire un negozio fittizio 4, con b4 = 10 e ci4 = 0 per ogni i, non essendo stato
specificato altrimenti. La tabella seguente riassume il problema bilanciato.
1 2 3 4 ai
1 2 8 4 0 20
2 3 4 9 0 20
3 8 7 10 0 40
bj 20 30 20 10
B0 = {(1, 1), (1, 2), (2, 2), (3, 2), (3, 3), (3, 4)}
1 2 3 4 ai 1 2 3 4
1 20 0 + 20 1 0 0 7 1
2 20 20 2 5 0 2 3
3 10+ 20 10 40 3 7 0 0 0
bj 20 30 20 10
xij cij
e successivamente
B1 = {(1, 1), (1, 3), (2, 2), (3, 2), (3, 3), (3, 4)}
1 2 3 4 ai 1 2 3 4
1 20 0+ 20 1 0 7 0 6
2 + 20
20 2 2 0 2 3
3 10+ 20 10 40 3 0 0 0 0
bj 20 30 20 10
xij cij
B2 = {(1, 1), (2, 1), (2, 2), (3, 2), (3, 3), (3, 4)}
1 2 3 4 ai 1 2 3 4
1 20 20 1 2 7 0 6
2 20 0 20 2 0 0 2 3
3 30 0 10 40 3 2 0 0 0
bj 20 30 20 10
xij cij
90 CAPITOLO 8. PROBLEMA DEL TRASPORTO.
(soluzione ottima).
P P
(c) Si ha i ai = 120, j bj = 140, quindi occorre inserire un magazzino
fittizio 4 con a4 = 20 e formare il seguente problema bilanciato.
1 2 3 4 ai
1 4 7 12 8 50
2 9 2 6 11 50
3 7 9 2 1 20
4 0 0 0 0 20
bj 40 60 10 30
B0 = {(1, 1), (1, 2), (2, 2), (2, 3), (3, 3), (3, 4), (4, 4)}
1 2 3 4 ai 1 2 3 4
1 40 10 + 50 1 0 0 1 2
2 50+ 0 50 2 10 0 0 6
3 10+ 10 20 3 12 11 0 0
4 20 20 4 6 3 1 0
bj 40 60 10 30
xij cij
B1 = {(1, 1), (1, 2), (1, 4), (2, 2), (3, 3), (3, 4), (4, 4)}
1 2 3 4 ai 1 2 3 4
1 40 10 0 50 1 0 0 3 0
2 50 50 2 10 0 2 8
3 10 10+ 20 3 10 9 0 0
4 + 20 20 4 4 1 1 0
bj 40 60 10 30
xij cij
B2 = {(1, 1), (1, 2), (1, 4), (2, 2), (3, 4), (4, 3), (4, 4)}
1 2 3 4 ai 1 2 3 4
1 40 10 0 50 1 0 0 4 0
2 50 50 2 10 0 3 8
3 20 20 3 10 9 1 0
4 10 10 20 4 4 1 0 0
bj 40 60 10 30
xij cij
(soluzione ottima). P P
(d) Il problema e bilanciato ( i ai = j bj = 130), quindi si procede diretta-
91
B0 = {(1, 1), (1, 2), (2, 2), (2, 3), (3, 4), (4, 4)}
1 2 3 4 ai 1 2 3 4
1 50 0 50 1 0 0 9 5
2 40 20+ 60 2 6 0 0 2
3 + 10 10 20 3 2 3 0 0
bj 50 40 30 10
xij cij
B1 = {(1, 1), (1, 2), (2, 3), (2, 4), (3, 2), (3, 4)}
1 2 3 4 ai 1 2 3 4
1 50 0 50 1 0 0 9 5
2 30 30 + 60 2 6 0 0 1
3 10+ 10 20 3 5 0 3 0
bj 50 40 30 10
xij cij
B2 = {(1, 1), (1, 2), (2, 2), (2, 3), (2, 4), (3, 2)}
1 2 3 4 ai 1 2 3 4
1 50 0 50 1 0 0 9 6
2 20 30 10 60 2 6 0 0 0
3 20 20 3 5 0 3 1
bj 50 40 30 10
xij cij
(soluzione ottima).
(e) Il problema e bilanciato. Risulta:
B0 = {(1, 1), (2, 1), (2, 2), (3, 2), (3, 3), (4, 3), (4, 4)} (c14 = 15)),
B1 = {(1, 1), (1, 4), (1, 2), (3, 2), (3, 3), (4, 3), (4, 4)} (c31 = 13),
B2 = {(1, 4), (2, 1), (3, 1), (3, 2), (3, 3), (4, 3), (4, 4)} (c34 = 7),
B3 = {(1, 4), (2, 1), (3, 1), (3, 2), (3, 3), (3, 4), (4, 3)},
ottima con x14 = 40, x21 = 20, x31 = 30, x32 = 50, x33 = x34 = 0, x43 = 60.
(f ) Il problema e bilanciato. Quindi si ottiene
B0 = {(1, 1), (1, 2), (2, 2), (2, 3), (3, 3), (3, 4)} (c21 = 7),
B1 = {(1, 1), (1, 2), (2, 1), (2, 3), (3, 3), (3, 4)} (c13 = 13),
B2 = {(1, 1), (1, 2), (1, 3), (2, 1), (3, 3), (3, 4)} (c31 = 10),
B3 = {(1, 1), (1, 2), (1, 3), (2, 1), (3, 1), (3, 4)},
ottima con x11 = 25, x12 = 100, x13 = 25, x21 = 50, x31 = 25, x34 = 25.
8.2. (Il paradosso dei trasporti) La base B3 ottenuta nellesercizio precedente
continua ad essere ammissibile, con x11 = 25 , x12 = 100, x13 = 25 + ,
x21 = 50 + , x31 = 25, x34 = 25. Lanalisi dei costi ridotti (che non dipendono
da ai , bj ) mostra che anche lottimalita di B3 e preservata. Nei due casi, i costi
di trasporto totali risultano pari a 1400 e 1400 4, rispettivamente. Quindi
92 CAPITOLO 8. PROBLEMA DEL TRASPORTO.
Un esercizio di riepilogo
93
95
Soluzione
(a) Il problema ammette il seguente modello. Siano x1 , x2 , x3 le quantita
di farina prodotte in ciascuno dei prossimi tre mesi. Inoltre, introduciamo le
variabili y1 , y2 , y3 che rappresentano le giacenze a fine mese negli stessi periodi.
soggetto a
x1 = 70 + y1
x2 + y1 = 100 + y2
x3 + y2 = 50 + y3
x1 , x2 , x3 , y1 , y2 , y3 0.
soggetto a
x1 y1 = 70
x2 +y1 y2 = 100
x3 +y2 y3 = 50
x1 , . . . , y3 0.
dove non ce giacenza al termine del terzo mese (nota: si puo facilmente di-
mostrare che y3 = 0 in ogni soluzione ottima, quindi la y3 poteva anche essere
cancellata dal modello in base a coniderazioni a priori). (b) Siano 1 , 2 , 3
le variazioni dei costi di magazzino, e 1 , 2 , 3 le variazioni dei costi di pro-
duzione, riferendosi al programma scritto in forma standard. Per la soluzione
ottenuta, risulta Bot = {x1 , x2 .y2 }, e quindi
1 0 0 0 1 0
A1
B =
0 1 1 , AN = 0 1 0 , N = 5 13 19 .
0 0 1 1 0 1
150 y1 x3 + y3 90 y1 x3 + y3 + s = 60,
dove s e una nuova variabile di slack. Inserendo il nuovo vincolo nella riformu-
lazione, si ottiene