• Non ci sono risultati.

Problema del Flusso a costo Minimo FORMULAZIONE

N/A
N/A
Protected

Academic year: 2021

Condividi "Problema del Flusso a costo Minimo FORMULAZIONE"

Copied!
28
0
0

Testo completo

(1)

- Problema del trasporto

Lezioni di Ricerca Operativa

Corso di Laurea in Informatica Università di Salerno

Prof. Cerulli – Dott.ssa Gentili – Dott. Carrabs

(2)

2

Problema del Flusso a costo Minimo FORMULAZIONE

A i

0

1

: i con vincol min

)

( ( )

) , (

=

=

∑ − ∑

ij i FS

j k BS i

i ki

ij A j i

ij ij

x

,...n i

b x

x

x c

j) (i, arco sull'

flusso di

unità un'

di trasporto di

costo

j) (i, arco sull'

flusso di

quantità

=

=

ij ij

c x

passaggio di

nodo :

0 se

domanda nodo

: 0 se

offerta nodo

: 0 se

: i nodo al

associato valore

=

<

>

=

i i i i

b b b b

(3)

Problema del Flusso a costo Minimo FORMULAZIONE

0 min

= x

b Ax

x c

T

In forma matriciale:

NOTA:

1. La matrice A(m,n) è la matrice di incidenza nodo-arco, ogni colonna a

ij

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

a

ij

= e

i

e

j

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

(e

i

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

(4)

Un particolare problema di flusso a costo minimo:

Il Problema del Trasporto

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

NOTA:

Il grafo sottostante è un grafo bipartito dove i nodi origine

(fornitori) hanno solo archi uscenti ed i nodi destinazione

(clienti) hanno solo archi entranti

(5)

Il problema: determinare le quantità di prodotto da trasportare su ogni arco (i,j) (fornitore-cliente) in modo da minimizzare il costo complessivo del trasporto.

M M

M M

c ij

-d

1

-d

j

-d

n

o

1

o

j

o

m

(6)

Formulazione del problema.

Le variabili:

la quantità di prodotto trasportata su ciascun arco

n j

m i

x

ij

≥ 0 = 1 ,..., ; = 1 ,...,

sono variabili continue e non negative

La funzione obiettivo:

il costo del trasporto complessivo

i m

ij ij j

n

= = c x

∑ ∑

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

(8)

Il problema del trasporto: FORMULAZIONE

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

=

=

=

=

=

=

=

=

∑ ∑

=

=

= =

(9)

Ipotesi di ammissibilità (condizione di bilanciamento):

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.

0 d

o

n

1 j

j m

1 i

i

− ∑ =

= =

(10)

Esistenza di una soluzione ammissibile

x

ij

= o

i

d

j

∆ i = 1...m , j = 1...n e ∆ = o

i

i=1 m

∑ = d

j

j=1 n

x

ij

j=1 n

∑ = o

i

d

j

j=1

n

∑ = o

i

d

j

=

j=1 n

o

i

∆ ∆ = o

i

x

ij

i=1 m

∑ = − o

i

d

j

i=1

m

∑ = − d

j

o

i

= −

j=1 n

d

j

∆ ∆ = − d

j

Sia

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

Per farlo bisogna dimostrare che i vincoli (1) e (2) del sistema

siano soddisfatti.

(11)

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 55 5 222 2 3 3 3 3

2

4

5

- - - -4444 - - - -6666 666

6 2 22 2 11 11 44 44

2 2 2 2 6 66 6

(12)

1

3

5 5 5 5 22 22 3 3 3 3

2

4

5

-- --4444 -- --6666 6

66 6 222 2 11 11 44 44

2 2 2 2 66 66

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

Il problema del trasporto

-I -I -I

(13)

Struttura della matrice dei vincoli

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

1 2

m 1

n

… …

…… …… ……

-I -I -I

1

m

1 n

(14)

Rango della matrice dei vincoli

n 2n 3n mn 1

1 2

m 1

n- 1

…. .… ……

…… 2 …… n-1

3

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

1

m

n

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

(15)

Problema del Trasporto: RISOLUZIONE

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

(16)

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

REGOLA DEL CICLO

Problema del trasporto: RISOLUZIONE

per risolvere il problema dobbiamo:

1. Trovare una soluzione ammissibile iniziale:

METODO DELL ’ ANGOLO DI NORD-OVEST

(17)

Metodo dell ’ angolo di Nord-Ovest

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

(18)

Metodo dell ’ angolo di Nord-Ovest: ESEMPIO

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

(19)

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

(20)

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

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.

(21)

Condizioni di ottimalità

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 ∀ jN

Soluzione duale di base associata alla soluzione di

base primale

Colonna della matrice corrispondente alla variabile xj

Coefficiente di costo della variabile xj

(22)

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

)

Duale del problema del trasporto

(23)

Condizioni di ottimalità

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 origine e v

j

è 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:

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

(24)

Condizioni di ottimalità

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:

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

(25)

Condizioni di ottimalità

Fissiamo u1=0 ed otteniamo:

v

1

= -10 v

2

= - 5 v

3

= -10 v

4

= -14 u

2

= -3 u

3

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

(26)

Selezioniamo la variabile uscente con la regola del ciclo.

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 che formano un ciclo con la variabile entrante 2. Incrementiamo la variabile entrante da 0 ad un nuovo valore >0

3. Le variabili di base coinvolte nel ciclo verranno incrementate di , se hanno segno positivo, mentre verranno decrementate di , se hanno segno negativo.

4. La variabile uscente sara quella che si azzera 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 }

(27)

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 x

14.

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 x

12

(28)

Metodo del simplesso per il problema del trasporto

Passo 4: Ricalcola la nuova soluzione di base ammissibile e vai 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 (dove 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

massimo z

ij

-c

ij

Passo 3: Determina la variabile uscente applicando la regola

del ciclo

Riferimenti

Documenti correlati

Ci sono tante grammatiche quanti sono i grammatici, e anche di più Erasmo da Rotterdam (Elogio della Follia, 39). A tutti grazie

Figura 1: Esecuzione dell’algoritmo di cycle canceling: la colonna a sinistra rappresenta il grafo originale con il flusso ad ogni iterazione, quella a destra rappresenta il

[r]

Se la soluzione non è ottima, devo selezionare come arco da far entrare nella soluzione albero un arco con costo ridotto

Naturalmente anche qui si può pensare ad altri contesti applicativi per tale problema, quali reti di computer e reti idrauliche come nel problema di flusso a costo minimo... Problema

consegue che per variabili fuori base al proprio limite superiore quelle la cui variazione (ovvero diminuzione) consente un decremento del valore dell’obiettivo sono quelle

cambia solamente lo stato della variabile fuori base che abbiamo tentato di far entrare in base, la quale passa da fuori base a valore nullo a fuori base a valore pari al proprio

 Progetto reti di telecomunicazione: scegliere quali collegamenti effettuare in modo da minimizzare costi o massimizzare flussi. In molti casi reali occorre risolvere problemi in