• Non ci sono risultati.

Lezione n°19-20

N/A
N/A
Protected

Academic year: 2021

Condividi "Lezione n°19-20"

Copied!
31
0
0

Testo completo

(1)

Lezione n°19-20

- Problema del trasporto

R. Cerulli – F. Carrabs

Lezioni di Ricerca Operativa

Università degli Studi di Salerno

(2)

Problema del flusso a costo minimo: Formulazione

= quantità di flusso che transita sull’arco (i,j)

= costo di trasporto di una unità di flusso sull’arco (i,j)

= valore intero associato al nodo i (ne definisce il ruolo nel problema):

: nodo di offerta

: nodo di domanda

: nodo di passaggio

(3)

In forma matriciale:

Osservazioni:

1. La matrice A è la matrice di incidenza nodo-arco con dimensione n

x

m. Ogni colonna è associata all’arco (i,j), ed in particolare abbiamo che:

2. Il rango di questa matrice è: r(A) = n - 1

(e

i

vettore colonna con tutti 0 eccetto un 1 nella posizione i-ma)

Problema del Flusso a Costo Minimo: Formulazione

(4)

m fornitori producono o

1

,...,o

m

quantità di un certo prodotto

n clienti richiedono d

1

,...,d

n

quantità di prodotto

il prodotto può essere trasportato da ogni fornitore ad ogni cliente

Il grafo sottostante è un grafo bipartito dove i nodi origine (fornitori) hanno solo archi uscenti ed i nodi destinazione (clienti) hanno solo archi entranti.

Ad ogni arco (i,j) è associato un costo c

ij

positivo.

Un particolare problema di flusso a costo minimo:

Il Problema del Trasporto

(5)

Determinare la quantità di merce da trasportare su ogni arco (i,j) (fornitore- cliente) affinchè ogni fornitore i invii la merce o

i

prodotta, ogni cliente j riceva la quantità d

j

richiesta ed il costo complessivo di trasporto sia minimizzato.

-d

1

-d

j

-d

n

o

1

o

i

o

m

Problema del Trasporto: Obiettivo

c

ij

(6)

Le variabili:

la quantità di prodotto trasportata sull’arco (i,j). Sono variabili continue e non negative.

La funzione obiettivo:

il costo del trasporto complessivo

Il problema del trasporto: Formulazione

��

≥ 0 �=1 , …, � ; �=1 , … , �

min

�=1

�=1

�� ��

(7)

I vincoli:

la quantità totale di prodotto fornita da ciascun fornitore deve essere uguale alla disponibilità del fornitore stesso

la quantità totale di prodotto ricevuta da ciascun cliente deve essere uguale a quella richiesta

Il problema del trasporto: Formulazione

�=1

�� − 0= �=1 , …, �(1)

0 −

�=1

��

=

�=1 , …,�(2)

(8)

Il problema del trasporto: Formulazione

(9)

Affinchè il problema possa ammettere una soluzione deve essere verificata la seguente condizione sui dati:

ossia, la quantità totale di prodotto disponibile deve essere uguale alla richiesta totale del prodotto stesso.

Ipotesi di ammissibilità (condizioni di bilanciamento)

�=1

�=1

= 0

(10)

Vogliamo dimostrare che la precedente soluzione è ammissibile per il problema del trasporto.

Per farlo bisogna dimostrare che i vincoli del problema siano soddisfatti.

Esistenza di una soluzione ammissibile

Sia e

=

∆ =¿

� =1

��=

� =1

=

� =1

¿

=−

∆=¿

� =1

��=

� =1

=

�=1

¿

(11)

1

2

1

2 5

10

Problema del Trasporto: Esempio

-7

-8

50

60

300 320

Soluzione ottima: x

11

=5, x

12

=0, x

21

=2, x

22

=8 con z*=1370

A partire dal valore ottimo appena calcolato, è possible che, aumentando la domanda e l’offerta (di una stessa quantità), il nuovo valore ottimo sia minore di ?

In alcuni casi è possibile!!!

(12)

1

2

1

2 5

10

Il Paradosso del Trasporto

-7

-8

50

60

300 320

Soluzione ottima: x

11

=6, x

12

=0, x

21

=1, x

22

=9 con z*=1160

1

2

1

2 6

10

-7

-9

50

60

300 320

Soluzione ottima: x

11

=5, x

12

=0, x

21

=2, x

22

=8 con z*=1370

(13)

Il problema del trasporto

Sottocaso particolare del flusso a costo minimo

• Non esistono nodi di passaggio.

E’ possibile andare da ogni nodo offerta (insieme O) a ogni nodo richiesta (insieme D).

Il grafo sottostante è un grafo bipartito.

1

3

5 2 3

2

4

5

-4 6 -6

12

4 2

6

(14)

1

3

5 2 3

2

4

5

-4 6 -6

2 1 4 2

6

A (1,4) (1,5) (2,4) (2,5) (3,4) (3,5)

1 1 1 0 0 0 0

2 0 0 1 1 0 0

3 0 0 0 0 1 1

4 -1 0 -1 0 -1 0

5 0 -1 0 -1 0 -1

Consideriamo la matrice di incidenza nodo-arco A per il problema del trasporto

-I -I -I

Il problema del trasporto

(15)

1 n n+1 2n (m-1)n+1 mn 1

2

m 1

n

… …

…… …… ……

-I -I -I

Struttura della matrice dei vincoli

(16)

n 2n 3n mn 1 1

2

m 1

n-1

… … … …

…… 2 …… n-1

Eliminando l’ultima riga della matrice e selezionando le seguenti m+n-1 colonne: n, 2n, 3n,...,mn,1,2,3,...,n-1 (nell’ordine indicato) otteniamo la seguente sottomatrice quadrata (triangolare superiore):

Th: Se A è una matrice diagonale o triangolare superiore o triangolare inferiore allora il determinante di A è dato dal prodotto degli elementi sulla diagonale principale.

Quindi la sottomatrice costruita è invertibile ed il rango di A è pari ad m+n-1

Rango della matrice dei vincoli

(17)

Possiamo rappresentare il problema tramite due tabelle, una relativa alle variabili l’altra relativa ai costi:

Utilizziamo queste due tabelle per risolvere il problema

Problema del trasporto: Risoluzione

n

m mn

m m

n n

d d

d

O x

x x

m

O x

x x

O x

x x

n

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

2

...

...

1

...

...

2 1

2 1

2 1

2 2

22 21

1 1

12 11

mn m

m

n n

c c

c m

c c

c

c c

c

n

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

2

...

...

1

...

...

2 1

2 1

2 22

21

1 12

11

(18)

Problema del trasporto: Risoluzione

Teorema. Condizione necessaria e sufficiente affinchè una soluzione ammissibile per il problema del trasporto sia di base è che essa abbia al più m+n-1 componenti non nulle tali che nessun loro sottoinsieme formi cicli.

Definizione (ciclo). In un problema del trasporto, si dice che una successione di variabili della tabella forma un ciclo se è possibile congiungere tali variabili con una successione di segmenti alternativamente orizzontali e verticali, aventi come estremi due di tali variabili. Inoltre partendo da una qualunque di queste variabili è possible ritornare ad essa, tramite questa successione, senza passare mai due volte per una stessa variabile.

x x x

x

x x

x x

x

n

m mn

m m

n n

d d

d

O x

x x

m

O x

x x

O x

x x

n

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

2

...

...

1

...

...

2 1

2 1

2 1

2 2

22 21

1 1

12 11

(19)

2. Migliorare la soluzione di base ammissibile corrente trovata fino a soddisfare le condizioni di ottimalità:

REGOLA DEL CICLO

Per risolvere il problema dobbiamo:

1. Trovare una soluzione di base ammissibile iniziale:

METODO DELL’ANGOLO DI NORD-OVEST

Problema del trasporto: Risoluzione

(20)

Passo 4: Poni j = j+1; o

i

= o

i

- d

j

e vai al passo 2 Passo 0: Poni x

ij

=0 per ogni i e per ogni j

Passo 1: i=1, j=1

Passo 2: x

ij

=minimo { o

i

, d

j

}

Se il minimo è uguale a o

i

allora vai al passo 3 Se il minimo è uguale a d

j

allora vai al passo 4

Passo 3: Poni i = i+1; d

j

= d

j

- o

i

e vai al passo 2

Metodo dell’Angolo di Nord-Ovest

(21)

Consideriamo la seguente tabella dei costi:

Le iterazioni dell’algoritmo danno luogo alle seguenti tabelle di variabili:

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

Metodo dell’Angolo di Nord-Ovest: Esempio

35 30

20 15

50 8

4 3

9 3

25 6

7 2

8 2

25 7

6 5

10 1

4 3

2

1

(22)

Metodo dell’Angolo di Nord-Ovest: Esempio

35 30

20 15

50 0

0 0

0 3

25 0

0 0

0 2

25 0

0 0

0 1

4 3

2 1

35 30

20 15

50 0

0 0

0 3

25 0

0 0

0 2

25 0

0 0

15 1

4 3

2 1

35 30

20 0

50 0

0 0

0 3

25 0

0 0

0 2

10 0

0 0

15 1

4 3

2 1

35 30

10 0

50 0

0 0

0 3

25 0

0 10 0

2

0 0

0 10 15 1

4 3

2 1

35 30

10 0

50 0

0 0

0 3

25 0

0 0

0 2

0 0

0 10 15 1

4 3

2 1

35 30

20 0

50 0

0 0

0 3

25 0

0 0

0 2

10 0

0 10 15

1

4 3

2 1

35 30

0 0

50 0

0 0

0 3

15 0

0 10 0

2

0 0

0 10 15 1

4 3

2 1

35 30

0 0

50 0

0 0

0 3

15 0

15 10

0 2

0 0

0 10 15 1

4 3

2 1

35 15

0 0

50 0

0 0

0 3

0 0

15 10

0 2

0 0

0 10 15

1

4 3

2 1

(23)

Le variabili di base della soluzione ammissibile iniziale sono:

Ora dobbiamo verificare se questa soluzione è ottima; se non è ottima cerchiamo un’altra soluzione con la regola del ciclo.

Metodo dell’Angolo di Nord-Ovest: Esempio

35 30

20 15

50 35

15 0

0 3

25 0

15 10

0 2

25 0

0 10 15

1

4 3

2 1

34 33

23 22

12

11 , x , x , x , x , x

x

(24)

Condizioni di ottimalità del simplesso:

Moltiplicatori del simplesso Moltiplicatori del simplesso

Colonna della matrice corrispondente alla variabile xj

Colonna della matrice corrispondente alla variabile xj

Coefficiente di costo della variabile xj

Coefficiente di costo della variabile xj

Condizioni di Ottimalità

N j

c

z

j

j

 0  

z

j

 c

j

= c

BT

A

B1

a

j

 c

j

 0 j  N

(25)

(u

i

) (v

j

)

Duale del problema del trasporto

n 1,..., j

m;

1,..., i

R x

(3) n 1,...,

j m;

1,..., i

0 x

(2) n;

1,..., j

d

x

(1) m;

1,..., i

o

x

x c min

ij ij

j m

1 i

ij i n

1 j

ij m

1 i

n 1 j

ij ij

=

=

=

=

=

=

=

=



=

=

= =

n;

1,..., j

m;

1,..., i

d o

max

m

1 i

n 1 j

j i

=

=

  

= =

ij j

i

j i

c -v

u

v

u

(26)

Dobbiamo verificare i valori z

ij

- c

ij

per ogni x

ij

non in base.

Il calcolo di queste differenze si riduce al calcolo delle differenze dei valori delle variabili duali associate ai vincoli:

z

ij

– c

ij

= u

i

- v

j

- c

ij

dove:

• u

i

è la variabile duale associata all’i-simo vincolo di offerta e

• v

j

è la variabile duale associata al j-simo vincolo di domanda.

Consideriamo la matrice dei costi iniziali e la matrice delle variabili corrispondente alla soluzione di base trovata:

Condizioni di Ottimalità

35 30

20 15

50 35

15 0

0 3

25 0

15 10

0 2

25 0

0 10

15 1

4 3

2 1

35 30

20 15

50 8

4 3

9 3

25 6

7 2

8 2

25 7

6 5

10 1

4 3

2

1

(27)

Le variabili duali sono 7 (4 associate ai vincoli di destinazione: v

1

,v

2

,v

3

,v

4

e 3 associate ai vincoli di origine: u

1

,u

2

,u

3

).

Possiamo determinare questi valori sapendo che z

ij

– c

ij

= 0 per ogni variabile x

ij

in base. Per cui otteniamo:

Questo è un sistema di 6 equazioni in 7 incognite, per cui fissando a zero il valore di una variabile otteniamo i valori delle altre

Condizioni di Ottimalità

8 4 7 2 5 10

34 4

3 34

33 3

3 33

23 3

2 23

22 2

2 22

12 2

1 12

11 1

1 11

=

=

=

=

=

=

=

=

=

=

=

=

c v

u x

c v

u x

c v

u x

c v

u x

c v

u x

c v

u

x

(28)

Fissando u

1

=0 otteniamo:

v

1

= -10 , v

2

= - 5 , v

3

= -10 , v

4

= -14 , u

2

= -3 , u

3

= -6 Da cui otteniamo :

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 ossia x

14

.

Condizioni di Ottimalità

4 3

5 6

5 9

10 6

5 6

14 3

1 8

10 3

7 7

14

4 6

10

32 2

3 32

32

31 1

3 31

31

24 4

2 24

24

21 1

2 21

21

14 4

1 14

14

13 3

1 13

13

=

=

=

=

=

=

=

=

=

=

=

=

=

=

=

=

=

=

c v

u c

z

c v

u c

z

c v

u c

z

c v

u c

z

c v

u c

z

c v

u c

z

(29)

Supponiamo di avere la seguente tabella in cui le x rapresentano le variabili di base e la y la nuova variabile entrante.

1. Consideriamo le variabili in base che formano un ciclo con la variabile entrante;

2. I segni + e – sono assegnati in modo alternato negli angoli del ciclo partendo dalla variabile fuori base y a cui viene assegnato il + perchè deve essere incrementata di un nuovo valore  ≥ 0;

3. Le variabili di base che si trovano negli angoli del ciclo verranno incrementate di , se hanno segno positivo, e decrementate di , se hanno segno negative;

4. La variabile uscente sarà quella che si azzererà per prima.

La variabile entrante forma un ciclo con le variabili x24, x34, x33. Tra queste dobbiamo selezionarne una da far uscire dalla base. La scelta viene effettuata nel seguente modo:

Nella matrice incrementiamo y, decrementiamo x24, incrementiamo x34 e decrementiamo x41. Quanto vale  ?

 = minimo{ xij: xij è coinvolta nel ciclo con segno meno }

Variabile Uscente: Regola del Ciclo

x x

x x

x y

x x

x

4 3 2 1

5 4

3 2

1

(30)

Ritorniamo al nostro esempio. Scegliamo come variabile entrante x

14.

Il ciclo introdotto da y è disegnato in figura e ∆ = 10.

Esce la variabile x

12

0 0

0 0

0 35

15 0

0 3

0 0

15 10

0 2

0 0

10 15

1

4 3

2 1

y

0 0

0 0

0 25

25 0

0 3

0 0

5 20

0 2

0 10

0 0

15 1

4 3

2

1

(31)

Passo 4: Ricalcola la nuova soluzione di base ammissibile e torna al passo 2;

Passo 1: Trova una soluzione di base ammissibile con la regola dell’angolo di Nord-Ovest

Passo 2: Calcola z

ij

- c

ij

per ogni variabile non in base (con z

ij

- c

ij

= u

i

– v

j

- c

ij

)

• Se z

ij

- c

ij

≤ 0 per ogni variabile non in base: STOP;

• Altrimenti seleziona la variabile entrante con il massimo z

ij

– c

ij

;

Passo 3: Determina la variabile uscente applicando la regola del ciclo;

Metodo del simplesso per il problema del trasporto

Riferimenti

Documenti correlati

[r]

Sia (X i ) i≥1 una successione di variabili aleatorie i.i.d... Si determini la distribuzione, la media e la varianza

Sia (X n ) n≥1 una successione di variabili casuali i.i.d... una successione di variabili casuali

• si ha un fading alla Rice in presenza di un termine dominante (in genere cammino LOS, o cammino LOS + cammino riflesso sul terreno) e numerosi cammini che "perturbano"

I al termine di ogni iterazione viene incrementato (decrementato) il valore della variabile di controllo. Esempio: Stampare i numeri pari da 0

- indipendenza, quando la conoscenza della determinazione di una variabile non fornisce alcuna informazione sulla probabile determinazione dell'altra - dipendenza

Come sappiamo, in una data prova non si può conoscere quale valore assumerà la nostra variabile casuale; ma se conosciamo tutti i possibili valori che la nostra variabile

Pulitura meccanica a secco tramite spazzole di ottone fi no alla completa rimozione dello strato superfi ciale degradato o incoerente (per intonaci o pavimenti) o aggredito (patine