Sei sulla pagina 1di 13

Lezioni di Ricerca Operativa

Corso di Laurea in Informatica ed Informatica Applicata


Universit di Salerno

Lezione n 19: 18-19 Maggio 2009


- Problema del Trasporto: algoritmo risolutivo

Anno accademico 2008/2009


Prof. Cerulli Dott.ssa Gentili

Problema del Trasporto: RISOLUZIONE


Possiamo rappresentare il problema tramite due
tabelle, una relativa alle variabili laltra relativa ai costi:
1
2
...
...

... x1n
... x2 n
... ...
... ...

O1
O2
...
...

1
2

1
c11
c21

...
...

...
...

xm 2 ... ... xmn


d 2 ... ... d n

Om

m cm1 cm 2 ... ... cmn

... ...

x11
x21
...
...

x12
x22
...
...

...
...
...
...

m xm1
d1

2
c12
c22

... ... n
... ... c1n
... ... c2 n

...
...

... ...
... ...

...
...

Utilizziamo queste due tabelle per risolvere il problema

Problema del trasporto: RISOLUZIONE

per risolvere il problema dobbiamo:

1. Trovare una soluzione ammissibile iniziale:


METODO DELLANGOLO DI NORD-OVEST
2. Migliorare la soluzione ammissibile trovata fino a
soddisfare le condizioni di ottimalit:
REGOLA DEL CICLO

Metodo dellangolo di Nord-Ovest


Passo 0: Poni xij=0 per ogni i e per ogni j
Passo 1: i=1, j=1
Passo 2: xij=minimo { Oi, dj}
Se il minimo uguale a Oi allora vai al passo 3
Se il minimo uguale a dj allora vai al passo 4
Passo 3: Poni i=i+1; dj=dj-Oi e vai al passo 2
Passo 4: Poni j=j+1; Oi=Oi-dj e vai al passo 2

Metodo dellangolo di Nord-Ovest: ESEMPIO


Consideriamo la seguente tabella dei costi:
1

1 10
2 8

5
2

6
7

7
6

25
25

9 3 4 8 50
15 20 30 35

NOTA:
m=3, n=4 quindi il rango della matrice A r(A)=3+4-1=6.
Quindi dobbiamo selezionare 6 variabili per ottenere una
soluzione di base
Le iterazioni dellalgoritmo danno luogo alle seguenti tabelle di
variabili:

Metodo dellangolo di Nord-Ovest: ESEMPIO


1
2
3

1
0
0
0

2
0
0
0

3
0
0
0

4
0
0
0

25
25
50

15 20 30 35
1 2
1 15 10
2 0 10
3

0
0

0
0
0

4
0
0

3
0

4
0

1 15
2 0
3 0

0
0
0

0
0
0

0
0
0

25
25
50

15 20 30 35

0
25

0 0 0 50
10 30 35

1 2
1 15 10
2
3

3
0
0

1 2
1 15 10
2 0 0
3 0 0
0
1

10 0 0 15
0 0 0 50
0 30 35

3
0
0
0

4
0
0
0

2
0
0

0 0 0 50
20 30 35

0
0
1

0
25
50

10 30 35
2

1
1 15
2 0

1 15 10 0 0 0
2 0 10 15 0 15
3 0 0 0 0 50
0 0 30 35

3
0
0

4
0
0

1 15 10
2 0 0
3 0 0

0
0
0

0
0
0

0
1

10
25

10
25
50

20 30 35
2

1 15 10 0 0 0
2 0 10 15 0 0
3 0 0 0 0 50
0 0 15 35

Metodo dellangolo di Nord-Ovest: ESEMPIO


1 2
1 15 10
2
3

3
0

4
0

25

0 10 15 0 25
0 0 15 35 50
15 20 30 35

Le variabili di base della soluzione ammissibile iniziale sono:

x11 , x12 , x22 , x23 , x33 , x34


Ora dobbiamo verificare se questa soluzione ottima, se non
ottima cerchiamo unaltra soluzione con la regola del ciclo.

Condizioni di ottimalit
Dobbiamo verificare i valori zij-cij per ogni xij non in base.
Il calcolo di queste differenze si riduce al calcolo delle differenze
dei valori delle variabili duali associate ai vincoli:

zij-cij=ui-vj-cij
dove ui la variabile duale associata alli-simo vincolo di origine
e vj la variabile duale associata al j-simo vincolo di
destinazione.
Consideriamo la matrice dei costi iniziali e la matrice delle
variabili corrispondente alla soluzione di base trovata:
1 2 3 4
1 2 3 4
1 10
2 8
3

5
2

6
7

7
6

25
25

9 3 4 8 50
15 20 30 35

1 15 10
2
3

0
0

25

10 15 0 25
0 15 35 50

15 20 30 35

Condizioni di ottimalit
Le variabili duali sono 7 (4 associate ai vincoli di destinazione:
v1,v2,v3,v4 e 3 associate ai vincoli di origine: u1,u2,u3).
Possiamo determinare questi valori utilizzando le condizioni agli
scarti complementari e considerandoli cio come componenti
dei coefficienti di costo delle variabili di base.
Per cui otteniamo:
x11 u1 v1 c11 10
x12 u1 v2 c12 5
x22 u2 v2 c22 2
x23 u2 v3 c23 7
x33 u3 v3 c33 4
x34 u3 v4 c34 8
Questo un sistema di 6 equazioni in 7 incognite, per cui fissando
arbitrariamente il valore di una variabile otteniamo i valori delle altre

Condizioni di ottimalit
Fissiamo u1=0 ed otteniamo:

v1= -10 v2= - 5 v3 = -10 v4 = -14


u2= -3 u3= -6
Da cui otteniamo :

z13 c13 u1 v3 c13 10 6 4


z14 c14 u1 v4 c14 14 7 7
z 21 c21 u2 v1 c21 3 5 8 6
z 24 c24 u 2 v4 c24 3 14 6 5
z31 c31 u3 v1 c31 6 10 9 5
z32 c32 u3 v2 c32 6 5 3 4
La soluzione non ottima, quindi dobbiamo scegliere una variabile non in
base da introdurre in base

Facciamo entrare in base la variabile con coefficiente di costo massimo.


Selezioniamo la variabile uscente con la seguente regola.
Supponiamo di avere la seguente tabella in cui le x rapresentano le variabili
di base e la y la nuova variabile entrante:

1 2
1 x x
2
3
4 x

y
x

4
x
x
x

La variabile entrante forma un ciclo con le variabili x23,x34,x33. Tra queste dobbiamo
selezionarne una da far uscire dalla base. La scelta viene effettuata nel seguente
modo:
1. Consideriamo le variabili che formano ciclo con la variabile entrante
2. Incrementiamo la variabile entrante da 0 ad un nuovo valore >0
3. Decrementiamo di ed incrementiamo di le variabili di base coinvolte nel ciclo
bilanciando righe e colnne
4. La variabile uscente sara quella che si azzera per prima.

Nella

matrice

incrementiamo

y,

decrementiamo

x24,

incrementiamo x34 e decrementiamo x41


Quanto vale ?
=minimo{ xij: xij coinvolta nel ciclo con segno meno }
Ritorniamo al nostro esempio:
Scegliamo come variabile entrante x14

1 15 10

2
3

0
0

10 15 0 0
0 15 35 0

Il ciclo introdotto da y
disegnato in figura.
ed il valore delle
nuove variabili :

E uscita la variabile x12

1
1 15

2
0

3
0

2
3

0
0

20 5 0 0
0 25 25 0

4
10 0

Metodo del simplesso per il problema del trasporto


Passo 1: Trova una soluzione di base ammissibile con la
regola dellangolo di Nord-Ovest
Passo 2:Calcola zij-cij per ogni variabile non in base
(dove zij-cij=ui-vj-cij).
Se zij-cij<0 per ogni variabile non in base: STOP
Altrimenti seleziona la variabile entrante con
massimo zij-cij
Passo 3: Determina la variabile uscente applicando la regola
del ciclo
Passo 4: Ricalcola la nuova soluzione di base ammissibile e vai
al passo 2