• Non ci sono risultati.

Lezionidi RicercaOperativa Lezionen 19-20 °

N/A
N/A
Protected

Academic year: 2021

Condividi "Lezionidi RicercaOperativa Lezionen 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

min $

(",$)∈'

𝑐

"$

𝑥

"$

$

$∈()(")

𝑥

"$

− $

*∈+) "

𝑥

*"

= 𝑏

"

𝑖 = 1, … , 𝑛

𝑥

"$

≥ 0

∀(𝑖, 𝑗) ∈ 𝐴

𝑥!" = 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): 𝑏! > 0: nodo di offerta

𝑏! < 0: nodo di domanda 𝑏! = 0: 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

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

Problema del Flusso a Costo Minimo: Formulazione

min 𝑐

,

𝑥

A𝑥 = 𝑏

(4)

! m fornitori producono o1,...,om quantità di un certo prodotto

! n clienti richiedono d1,...,dn 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 cij 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 oi prodotta, ogni cliente j riceva la quantità dj 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

(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 $

"-. /

$

$-. 0

𝑐

"$

𝑥

"$

(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

$

$-. 0

𝑥

"$

− 0 = 𝑜

"

𝑖 = 1, … , 𝑚

(1)

0 − $

"-. /

𝑥

"$

= −𝑑

$

𝑗 = 1, … , 𝑛

(2)

(8)

Il problema del trasporto: Formulazione

min $

"-. /

$

$-. 0

𝑐

"$

𝑥

"$

$

$-. 0

𝑥

"$

− 0 = 𝑜

"

𝑖 = 1, … , 𝑚

1

0 − $

"-. /

𝑥

"$

= −𝑑

$

𝑗 = 1, … , 𝑛

2

𝑥

"$

≥ 0

𝑖 = 1, … , 𝑚 ; 𝑗 = 1, … , 𝑛 (3)

(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)

!

!"#

$

𝑜

!

− !

%"#

&

𝑑

%

= 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 𝑥

"$

=

1#2$ ∆

𝑐𝑜𝑛 𝑖 = 1, … , 𝑚 ; 𝑗 = 1, . . , 𝑛 e ∆= ∑

"-. /

𝑜

"

= ∑

$-.0

𝑑

$

$

$-. 0

𝑥

"$

= $

$-. 0

𝑜

"

𝑑

$

=

𝑜

"

$

$-. 0

𝑑

$

=

𝑜

"

∆= 𝑜

"

− $

"-. /

𝑥

"$

= − $

"-. /

𝑜

"

𝑑

$

= −

𝑑

$

$

"-. /

𝑜

"

= −

𝑑

$

∆= − 𝑑

$

(11)

1

2

1

2

5

10

Problema del Trasporto: Esempio

-7

-8

50

60

300 320

Soluzione ottima: x11=5, x12=0, x21=2, x22=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 𝑧∗?

(12)

1

2

1

2

5

10

Il Paradosso del Trasporto

-7

-8

50

60

300 320

Soluzione ottima: x11=6, x12=0, x21=1, x22=9 con z*=1160

1

2

1

2

6

10

-7

-9

50 60 300 320

(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 2 1 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

(15)

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

…… …… ……

-I

-I

-I

(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

(17)

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

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

Utilizziamo queste due tabelle per risolvere il problema

(18)

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

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

(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

(20)

Passo 4: Poni j = j+1; oi = oi - dj e vai al passo 2 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

(21)

Consideriamo la seguente tabella dei costi:

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

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

(22)

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)

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

Le variabili di base della soluzione ammissibile iniziale sono:

34

33

23

22

12

11

,

x

,

x

,

x

,

x

,

x

x

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

(24)

Condizioni di ottimalità del simplesso:

N

j

c

z

j

-

j

£

0

"

Î

z

j

− c

j

= c

BT

A

B−1

a

j

− c

j

≤ 0 ∀j ∈ N

Moltiplicatori del simplesso

Colonna della matrice corrispondente alla variabile xj

Coefficiente di costo della variabile xj

(25)

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

(u

i

)

(v

j

)

(26)

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 all’i-simo vincolo di offerta e • vj è 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:

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

Condizioni di Ottimalità

(27)

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 sapendo che zij – cij = 0 per ogni variabile xij in base. Per cui otteniamo:

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

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

(28)

Fissando u1=0 otteniamo: v1= -10 , v2= - 5 , v3 = -10 , v4 = -14 , u2= -3 , u3= -6 Da cui otteniamo :

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

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 x14.

(29)

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

x

x

x

x

x

y

x

x

x

4

3

2

1

5

4

3

2

1

+ -+

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 D ≥ 0;

3. Le variabili di base che si trovano negli angoli del ciclo verranno incrementate di D, se hanno segno positivo, e decrementate di D, 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 D ?

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

(30)

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

Ritorniamo al nostro esempio. Scegliamo come variabile entrante x14. Il ciclo introdotto da y è disegnato in figura e ∆ = 10.

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

Esce la variabile x12

(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 zij - cij per ogni variabile non in base (con zij - cij = ui – vj - cij)

• Se zij - cij ≤ 0 per ogni variabile non in base: STOP;

• Altrimenti seleziona la variabile entrante con il massimo zij – cij ;

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

Riferimenti

Documenti correlati

In particolare si sono esaminati il numero di moduli superati al primo anno ed il voto medio conseguito alla fine dell’anno accademico. I dati sono stati raccolti in una tabella

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

• 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 &#34;perturbano&#34;

These preliminary results for IVa,b are consistent with the conclusion that a hyperbranched oligomeric backbone with relatively low molecular weight and relatively high degree

The fear that the banana ‘splits’ might damage the WTO as well as poison trans-Atlantic trade relations more generally has also motivated another development

[r]

Collocare nel tempo fatti ed esperienze vissute e riconoscere successione, contemporaneità, durata e periodo. Padroneggiare la terminologia relativa a giorno, settimana

In un problema del trasporto, si dice che una successione di variabili della tabella forma un ciclo se è possibile congiungere tali variabili con una