Sei sulla pagina 1di 3

Esercitazione di Ricerca Operativa del 20/12/2016

1) Un'azienda vorrebbe completare 5 moduli software durante la prossima settimana con solo due Ingegneri
Informatici a disposizione. Ogni Ingegnere può lavorare soltanto su due moduli nell'arco della settimana. Considerate
le diverse competenze e attitudini dei due Ingegneri, il profitto derivante dal completamento di un modulo software
dipende dall'Ingegnere cui è affidato il compito di terminare il modulo come mostrato nella seguente tabella (profitto
in centinaia di migliaia di €):
Moduli Software
1 2 3 4 5
Ingegnere 1 3 9 7 3 10
Ingegnere 2 5 6 10 5 15
Il problema è selezionare i moduli e assegnarli agli Ingegneri a disposizione in modo da massimizzare il profitto

a
dell'azienda e considerando che il modulo 4 deve necessariamente essere completato.

Formulare un modello di programmazione lineare per il problema sopra esposto. Commentare opportunamente il

eri
modello ricavato.

2) Risolvere con la tecnica che si ritiene appropriata il seguente problema:


max z = 44 x1 + 45x 2 + 40x 3 + 49x 4 + 47x 5
68 x1 + 74 x 2 + 62x 3 + 82x 4 + 78x 5 ≤ 224

gn
x i ∈{0,1}∀i = 1..5
3) Dato il seguente problema di programmazione lineare:
min z = 4 x1 + x 2 + 4 x 3
€ 5 x1 + 3x 2 ≤ 4
3x1 + x 2 + 4 x 3 ≥12
ge
3x 2 + 2x 3 ≥ 5
x i ≥ 0∀i = 1..3
 descrivete brevemente il procedimento (che tipo di variabili inserite? che trasformazioni applicate? etc..)
necessario per applicare le seguenti tre tecniche di risoluzione: simplesso primale applicato al problema primale,
simplesso primale applicato al problema duale, simplesso duale;
In
 € reputate più conveniente e calcolate la soluzione ottima (motivate la scelta);
tra le tre tecniche, scegliete quella che
 fornite in modo esplicito le soluzioni ottime per il problema primale dato e per il corrispondente problema duale.

4) Risolvere il problema di flusso massimo con l'algoritmo di Edmonds-Karp nel seguente grafo:
re
ive

5) Date le seguenti attività di un progetto:


Attività J1 J2 J3 J4 J5 J6 J7 J8 J9
Durata 3 2 4 6 9 4 6 3 5
Predecessori J6 J7 J6 J7 J9 J6 J7 J9 J3 J6 J3
Individuare le attività critiche e, per ogni attività, quella critica che la precede e l'Earliest Completion Time.
V

6) Calcolare i percorsi a costo minimo dal nodo v0 a tutti gli altri nodi nota la seguente matrice dei costi:
tail\head v0 v1 v2 v3 v4 v5 v6
v0 0 1 - - 29 16 -
v1 2 0 1 21 - - -
v2 - - 0 - 28 14 6
v3 10 - 3 0 6 - -
v4 6 - - - 0 7 -
v5 - 1 - 6 - 0 3
v6 - - 7 - 20 7 0
Soluzione:
1) Il modello di PL binario associato al problema è:
2 5

max z = ∑ ∑ pij x ij
i=1 j =1
5

∀i = 1..2 ∑x ij ≤2
j =1

∀j = 1..5, j ≠ 4 x1 j + x 2 j ≤ 1
x14 + x 24 = 1

a
x ij ∈{0,1}∀i = 1..2,∀j = 1..5
Questo è un problema di assegnamento in un grafo bipartito.

eri
2) Albero di Esplorazione:

level: 0 node: 0
x = (1, 1, 1, 0, 0.26) UB =141

gn
level: 1 node: 1
x5 = 0
x = (1, 1, 1, 0.24, 0) UB =140

level: 2 node: 2
x4 = 0
x = (1, 1, 1, 0, 0) integer z =129

level: 2 node: 3
x4 = 1
ge
x = (1, 0.16, 1, 1, 0) UB =140
In
level: 3 node: 4
x2 = 0
x = (1, 0, 1, 1, 0) integer z =133

level: 3 node: 5
x2 = 1
x = (1, 1, 0, 1, 0) integer z =138
re

level: 1 node: 6
x5 = 1
x = (1, 0.22, 1, 0, 1) UB =140
ive

level: 2 node: 7
x2 = 0
x = (1, 0, 1, 0.2, 1) UB =140

level: 3 node: 8
x4 = 0
V

x = (1, 0, 1, 0, 1) dominated UB =131

level: 3 node: 9
x4 = 1
x = (0.94, 0, 0, 1, 1) dominated UB =137

level: 2 node: 10
x2 = 1
x = (1, 1, 0.06, 0, 1) dominated UB =138

Optimal node: 5
3) La tecnica più conveniente è il metodo del simplesso duale. Risolvendo, dopo 2 iterazioni, si ottiene: x1=0, x2=4/3,
x3=8/3, s1=0, s2=0, s3=13/3, z=12. Soluzione del duale (del problema dato, prima di moltiplicare per -1 gli ultimi due
vincoli): [0, 1, 0]

4) Flusso massimo: v = 57
Percorsi Aumentanti: sADt (15); sAEt (20); sBDt (25); sBEt (3); sCEt (10); sBFt (4); sCFt (7); sBDAEt (2); sBDAEFt
(6)

5) Earliest completion times (starred operations are critical)


J1 J2 J3* J4 J5* J6* J7 J8 J9*

a
crit. pred.\compl. time J6, 16 J6, 15 4 J9, 15 J6, 22 J9, 13 6 J6, 16 J3, 9

eri
6) Percorsi a costo minimo con il metodo di Dijkstra
v0 v1 v2 v3 v4 v5 v6
pred.\dist. v0, 0 v0, 1 v1, 2 v5, 21 v3, 27 v6, 15 v2, 8

gn
ge
In
re
ive
V