Professional Documents
Culture Documents
COGNOME:
NOME:
MATRICOLA N.:
DOMANDE:
1. Una ditta gestisce la raccolta dierenziata ed il riciclaggio di riuti
(carta, vetro e alluminio) in quattro siti S1 , S2 , S3 , S4 . Ognuno dei siti
produce le seguenti quantita di riuti, 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 eettuata 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 protti e viene raccolta da una ditta subappaltatrice, che si fa pagare 15 euro/quintale indipendentemente dal tipo di
riuti. Formulare il programma lineare per pianicare la raccolta di
riuti settimanale massimizzando i protti.
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
P0(31,53)
|
___________|___________
|
|
P1(32,47)
|
____|____
|
|
|
|
P11(37,41) P12(39,42)
|
|
P2(33,57)
|
______|_____
|
|
P21
|
|
P22
Xi j k
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
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
1
2
-1 0
0 1
1
0
BASE [X5 , Y]
B
B= 0
1
1
0
= B-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
-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
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]
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
B=
1
3
DET = 2 3 = 1 B-1 =
1
2
-2
3
PB
1
-1
-2
3
1
-1
= [0,0]
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
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
PB
1/3
2/3
1 -1
3 0
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
-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]
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
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
PB
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
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
90 -
10 +
150 -
0 +
50 -
20
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
40 -
= 20
60 +
100 -
50
50 +
+
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
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'innito
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
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
max v
s.t.
origine
destinazione
x32 M y32
x35 M y35
x64 M y64
nodi intermedi
vincoli logici
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:
B=
3
1
B-1=
DET = 9-1 = 8
1
3
3/8
-1/8
-1/8
3/8
3/8
-1/8
-1/8
3/8
2
1
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
2
1
B=
1
3
DET = 5
3/5
-1/5
-1/5
2/5
B-1 =
P
3/5
-1/5
= [-17/5, 4/5]
-1/5
2/5
3
1
1
2
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
B=
2
1
DET = 3
1
2
P
2/3
-1/3
-1/3
2/3
B-1
P
-1/3
2/3
= [-7/3, -4/3]
2/3
-1/3
3
1
1
3
xB = B-1b =
P
2/3
-1/3
-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:
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
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
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
P4
x3 = 0
x2 = 0
x4 = 1
x1 = 1
x5 = 1
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
x3 = 1
x4 = 0
x3 = 1
x1 = 1
x2 = 1
x5 = 1/2
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
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.
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 pianicazione 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 oerti 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. Giusticare la seguente aermazione: "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
Xi j
i = [1,2,3,4]
j = [A,B,C]
Yij
Modello:
U
f.o
min 3X1A + 2X2A + 1X3A + 3X4A + 4X1B + 2X2B + 3X3B + 2X4B + 3X1C + 2X2C + 3X3C +
4X4C
s.t.
1000
2000
1800
2800
vincoli disponibilit
vincoli logici
Y2B + Y4B 1
X2B MY2B
X4B M Y4B
Y1A, Y2A , Y3A , Y4A , Y2B , Y4B [0,1] intere
Xij 0
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:
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
COGNOME:
NOME:
MATRICOLA N.:
1. Una societa che eettua la manutenzione di distributori automatici di
bevande deve pianicare 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 giusticare 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
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.
x1 50
x2 50 + x1
x3 50 + x1 + x2
x4 50 + x1 + x2 + x3
xi 0
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
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
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
-1
1
9
=
6
-1
2
1
-1
[-3,7]
-1
2
3
3
ESCE X2
B=
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]
0
-1
1
1
2
2
=[8,3,4] 0 OTTIMO
6 x4 = 6 ; x5 = 3
3
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
LB = 7+10+6=23 Z* = 23
UB = 7+10+4/7*12 = 23.86 23
LBx3 = 1
x2 = 1
x6 = 1
LB = 23
UB = 9+7+10*2/3 = 22.66 22
UB Z* chiudo
LB = 11 + 7 =18
UB = LB = 7+10+6 = 23
sol. amm. intera
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
P0(32,17)
___________|___________
|
P1(26,21)
____|____
|
|
P11(24,22) P12(25,23)
|
P2(28,20)
______|_____
|
P21
|
P22
xi j
yj
j = A,B
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
antiruggine in B
antiossidante in B
vincoli di miscela
vincoli di
fornitura
yA 1400
yB 900
vincoli di domanda
xi j , yj 0
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=
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
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
B=
2
2
1
2
1
1
1
-1
y6 = B-1a6=
P
-1/2
1
0
1
1
-1
-1/2
1
[-5,6]
-1/2
1
1
-1
B-1=
DET = 2
2
1
-1
0
-1/2
1
0
1
=[7,9,-5,-6] ENTRA X6
ESCE X3
B=
2
2
0
1
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