• Non ci sono risultati.

Nozioni di geometria

N/A
N/A
Protected

Academic year: 2021

Condividi "Nozioni di geometria"

Copied!
71
0
0

Testo completo

(1)

Parte V:

Rafforzamento di formulazioni e

algoritmo dei piani di taglio

(2)

Nozioni di geometria

Definizione: Un vettore y∈ℜn

è

combinazione conica

dei vettori {x

1

,…,x

k

} se esistono k coefficienti reali λ

1

, …,λ

k

tali che y = Σ λ

i

x

i

, con λ

i

> 0, per ogni i = 1,…,k.

k i = 1

Definizione: Un vettore y∈ℜn

è

combinazione affine

dei vettori {x

1

,…,x

k

} se esistono k coefficienti reali λ

1

, …,λ

k

tali che y = Σ λ

i

x

i

, con Σ λ

i

= 1.

k

i = 1 k

i = 1

Definizione: Un vettore y∈ℜn

è

combinazione convessa

dei vettori {x

1

,…,x

k

} se esistono k coefficienti reali λ

1

, …,λ

k

tali che y = Σ λ

i

x

i

, con Σ λ

i

= 1 e λ

i

> 0, per ogni i = 1,…,k.

k

i = 1 k

i = 1

(3)

Nozioni di geometria

Definizione: Dato un insieme S ⊆ ℜn

, l’involucro convesso di S, conv(S), è l’insieme di tutti i vettori ottenibili come combinazione convessa di sottoinsiemi finiti di vettori di S.

Definizione: Dato un insieme convesso S, un vettore y∈S si dice estremo

se e solo se esso non è ottenibile come combinazione convessa di altri vettori in S.

Definizione: Un poliedro P = {x∈ℜn

: Ax < b} è un insieme convesso

con un numero finito di punti estremi detti vertici di P.

(4)

Nozioni di geometria

Definizione: Una disequazione aTx < α è valida per il poliedro P = {x∈ℜn : Ax < b} se e solo se P ⊆ {x∈ℜn : aTx < α}, ovvero se e solo se la disequazione è soddisfatta da tutte le soluzioni ammissibili del sistema Ax < b (aTx < α è implicata dal sistema Ax < b).

Definizione: Una disequazione valida aTx < α definisce una faccia F = P ∩ {x∈ℜn : aTx = α}. L’insieme {x∈ℜn : aTx = α} è detto iperpiano di supporto di F.

Ogni faccia di un poliedro è essa stessa un poliedro.

Definizione: La dimensione di un poliedro P, dim(P), è data dal massimo numero di vettori affinemente indipendenti appartenenti a P meno uno.

Data una faccia F di P, risulta sempre dim(F) < dim (P).

Se dim(F) = dim(P), F è detta faccia impropria di P.

Se dim(F) = dim(P) – 1, F è detta faccia massimale di P.

Se dim(F) = 0, F coincide con un vertice di P.

(5)

Nozioni di geometria

La rappresentazione Ax < b di un poliedro P non è univocamente determinata. Infatti, è sempre possibile aggiungere alla rappresentazione nuove disuguaglianze valide per P, ottenute come combinazione conica delle disequazioni del sistema Ax < b, senza modificare la regione ammissibile.

Definizione: Una rappresentazione Ax < b è minimale se, rimuovendo una qualsiasi disequazione dal sistema si ottiene un nuovo sistema A’x < b’ tale che P ⊂ {x∈ℜn: A’x < b’}.

Definizione: Se P ⊆ ℜn è tale che dim(P) = n, una rappresentazione Ax < b è minimale se e solo se ogni disequazione del sistema definisce una faccia massimale di P.

(6)

Formulazioni di problemi di PL 0-1

Ricordiamo che, date due diverse formulazioni lineari P

1

e P

2

di un problema di programmazione lineare 0-1 della forma (1), diremo che P

1

è migliore di P

2

se e solo se P

1

P

2

.

La formulazione ottima di un problema di programmazione lineare 0-1 della forma

è costituita dal poliedro contenuto in tutti i poliedri contenenti S, ovvero dall’involucro convesso conv(S). Indichiamo con P

S

la formulazione ottima.

max c

T

x

x∈S (S ⊆ {0,1}

n

)

(7)

Formulazioni di problemi di PL 0-1

Ricordiamo ancora che, dato un problema di programmazione lineare 0-1

max c

T

x (1)

x∈S (S ⊆ {0,1}

n

)

un poliedro P = {x∈ℜ

n

: Ax < b} è una formulazione lineare del problema se e solo se S = P ∩ {0,1}

n

.

Teorema: Un problema di programmazione lineare 0-1 della forma

(1) ammette sempre una formulazione lineare conv(S) con la

proprietà che x∈S se e solo se x è un vertice di conv(S).

(8)

Formulazioni di problemi di PL 0-1

Dal teorema precedente, possiamo riscrivere il problema (1) nella forma

max c

T

x (2)

x∈P

S

Infatti, poiché i vertici di P

S

coincidono con i vettori in S, risolvere il problema (1) è equivalente ad individuare un vertice di P

S

che minimizzi c

T

x, ovvero ad individuare un vertice ottimo per il problema (2).

Pertanto, ogni problema di programmazione lineare 0-1 può essere

espresso come problema di programmazione lineare.

(9)

Il fatto che si possa passare da un problema di programmazione lineare 0-1 a un problema di programmazione lineare suggerisce importanti conseguenze riguardanti la complessità computazionale:

infatti, è noto che un problema di programmazione lineare può essere risolto in tempo e spazio polinomiali ricorrendo a opportuni algoritmi.

Tuttavia…è errato pensare che algoritmi polinomiali per problemi di programmazione lineare possano essere utilizzati per risolvere qualsiasi problema di programmazione lineare 0-1.

Formulazioni di problemi di PL 0-1

(10)

Alcuni metodi per la programmazione lineare richiedono una rappresentazione esplicita della formulazione PS. Tale rappresentazione è teoricamente ottenibile per qualsiasi problema di programmazione lineare 0-1 ma è spesso algoritmicamente impraticabile.

Invece altri metodi,come il Metodo dell’Ellissoide, si accontentano di una rappresentazione implicita della formulazione PS fornita dal cosiddetto Oracolo di Separazione.

Tale oracolo è realizzato da un algoritmo che, dato un vettore x∈ℜn, o genera un iperpiano che separa x da PS oppure conclude che xPS.

L’oracolo di separazione descrive PS in modo algoritmico e rende i metodi che lo utilizzano indipendenti dal numero di disequazioni della rappresentazione esplicita.

Formulazioni di problemi di PL 0-1

(11)

Rafforzamento di formulazioni

Il problema di knapsack max 5x

1

+ 2x

2

3x

1

+ 4x

2

< 6

x ∈ {0,1}

2

ha come rilassamento lineare max 5x

1

+ 2x

2

3x

1

+ 4x

2

< 6 x

1

> 0

x

2

> 0 x

1

< 1 x

2

< 1

Sia x

*LP

la soluzione ottima del rilassamento.

(12)

Oracolo di Separazione

Dato il vettore x

*LP

, l’oracolo di separazione consente

– di individuare una disequazione soddisfatta da tutti i vettori in

PS

(valida per P

S

), e non soddisfatta dal vettore x

*LP,

OPPURE – di concludere che x

*LP

PS

.

Dal punto di vista geometrico, l’oracolo costruisce, se esiste, un iperpiano che separa x

*LP

da P

S

. Se tale iperpiano non esiste allora il punto x

*LP

appartiene a P

S

.

L’iperpiano individuato è detto iperpiano di separazione o

piano di taglio.

(13)

Oracolo di Separazione

x1

x2

x*

LP

L’oracolo viene generalmente realizzato tramite un algoritmo

detto Algoritmo di Separazione.

(14)

Disuguaglianze valide per il Knapsack 0-1

Consideriamo l’insieme

X = {x ∈ {0,1}n

: Σ

aj xj

< b}.

Definizione: Un insieme C ⊆ N è un cover

se e solo se Σ

aj > b.

Un cover è

minimale

se, comunque preso j ∈C, l’insieme C \ { j } NON è un cover.

Osservazione: Un insieme C è un cover se e solo se il suo vettore

caratteristico x

C

non è ammissibile per X.

n

j = 1

j ∈ C

(15)

Teorema: Se C ⊆ N è un cover per X, la disequazione

Σ

xj

< |C| – 1 (*) è valida per X.

Dimostrazione: Dimostriamo che se un generico vettore xR

non soddisfa il vincolo (*) allora x

R

X.

Se x

R

è tale che Σ

xjR

> |C| – 1, allora |R ∩ C|= |C| e quindi C ⊆

R.

Pertanto:

Σ

ajxjR =

Σ

aj >

Σ

aj > b

ovvero x

R

X.

Disuguaglianze valide per il Knapsack 0-1

j ∈C

j ∈C

j =1 n

j ∈R j ∈C

(16)

Consideriamo il problema di knapsack

max 15 x

1

+ 9 x

2

+ 8 x

3

+ 6 x

4

+ 5 x

5

+ 4 x

6

+ x

7

11 x

1

+ 6 x

2

+ 6 x

3

+ 5 x

4

+ 5 x

5

+ 4 x

6

+ x

7

< 19 x ∈ {0,1}

7

La soluzione associata al suo rilassamento lineare è (x

*

)

LP

= (1, 1, 1/3, 0, 0, 0, 0).

Una disequazione cover violata da (x

*

)

LP

è la disequazione x

1

+ x

2

+ x

3

< 2.

Qual è il problema di separazione che consente di individuare una disequazione di tipo cover violata da (x

*

)

LP

?

Esempio

(17)

Oracolo di separazione

Riscriviamo la disequazione Σ

xj

< |C| – 1 nella forma 1 + Σ

xj

- |C| < 0 ⇔ 1 + Σ (x

j

– 1) < 0

La disequazione è violata da (x

*

)

LP

se e solo se:

1 + Σ ((x

*j

)

LP

– 1) > 0

Quindi, possiamo massimizzare la violazione definendo SEP = max { Σ ((x

*j

)

LP

– 1) : Σ

aj

> b}

Un algoritmo per SEP è un oracolo di separazione.

j ∈C

j ∈C j ∈C

j ∈C

j ∈C j ∈C

C ⊆ N

(18)

Siano

– y

*SEP

la soluzione ottima del problema SEP, e

– z

*SEP

il corrispondente valore della funzione obiettivo.

Se 1 + z

*SEP

> 0, allora esiste una disuguaglianza cover violata da y

*SEP

.

Se 1 + z

*SEP

< 0, allora non esiste una disuguaglianza cover violata da y

*SEP

.

A questo punto non resta che formulare come programmazione lineare 0-1 il problema di separazione.

Oracolo di separazione

(19)

Formulazione del problema di separazione

Il problema di separazione può essere formulato come un problema di programmazione lineare 0-1 in cui la variabile y

j

= 1 se j∈C e

yj

= 0 altrimenti.

Funzione Obiettivo

max Σ ((x

*j

)

LP

– 1)y

j Vincoli

Σ

ajyj

> b + 1

y ∈ {0,1}n

Osservazione: I coefficienti in funzione obiettivo sono < 0 e quindi il

problema non ammette una soluzione banale.

j ∈N

j ∈N

(20)

Trasformazione

Ponendo w

j

= 1 – y

j

, il problema di separazione diventa

Poiché Σ ((x

*j

)

LP

– 1) è una costante nella nuova funzione obiettivo, si ottiene…

Funzione Obiettivo

max Σ ((x

*j

)

LP

– 1) – Σ ((x

*j

)

LP

– 1)w

j Vincoli

– Σ

ajwj

> – Σ

aj

+ b + 1

w ∈ {0,1}n

j ∈N

j ∈N j ∈N

j ∈N

j ∈N

(21)

…un problema di knapsack

Funzione Obiettivo max Σ (1 – (x

*j

)

LP

)w

j

Vincoli Σ a

j

w

j

< Σ a

j

– b – 1 w ∈ {0,1}

n

j ∈N j ∈N

j ∈N

(22)

Esempio

max 15 x

1

+ 9 x

2

+ 8 x

3

+ 6 x

4

+ 5 x

5

+ 4 x

6

+ x

7

11 x

1

+ 6 x

2

+ 6 x

3

+ 5 x

4

+ 5 x

5

+ 4 x

6

+ x

7

< 19

x ∈ {0,1}7

x*LP

= (1, 1, 1/3, 0, 0, 0, 0)

Problema di separazione

max (1 – 1) w

1

+ (1 – 1) w

2

+ (1 - 1/3) w

3

+ w

4

+ w

5

+ w

6

+ w

7

11 w

1

+ 6 w

2

+ 6 w

3

+ 5 w

4

+ 5 w

5

+ 4 w

6

+ w

7

< 38 – 19 – 1 = 18

w ∈ {0,1}7

(23)

Separazione

Problema di separazione

max 2/3 w

3

+ w

4

+ w

5

+ w

6

+ w

7

11 w

1

+ 6 w

2

+ 6 w

3

+ 5 w

4

+ 5 w

5

+ 4 w

6

+ w

7

< 18 w ∈ {0,1}

7

Soluzione ottima

w* = (0, 0, 0, 1, 1, 1, 1) di valore 4

Riportiamola nello spazio delle y:

y* = (1, 1, 1, 0, 0, 0, 0) di valore z

*SEP

= –2/3.

Pertanto, 1 + z

*SEP

= 1/3 > 0

(24)

Pertanto…

1. Il valore di 1 + z

*SEP

è > 0, ovvero esiste una disequazione cover violata.

2. La disequazione è scritta in corrispondenza degli indici che hanno valore 1 in y

*

, ovvero

y* = (1, 1, 1, 0, 0, 0, 0) corrisponde a x

1

+ x

2

+ x

3

< 2

(25)

Algoritmo dei piani di taglio

Dato il rilassamento lineare di un problema di knapsack 1. Calcola la soluzione ottima x

*LP

.

2. Se x

*LP

∈ {0, 1}

n

STOP, altrimenti vai al passo 3.

3. Definisci il problema di separazione.

4. Risolvi il problema di separazione.

5. Se esiste una disequazione cover violata aggiungila

alla formulazione corrente e torna al punto 1, altrimenti

STOP.

(26)

Pianificazione degli investimenti

Dati

– I = {1, 2, …, n} = insieme di investimenti attivabili su un orizzonte temporale T = {1, 2, …, t} di t periodi

– Ad ogni investimento i è associato un indice di redditività ci

– Ogni investimento i genera un flusso di cassa ai = (ai1, ai2, …, ait) (>

0 introiti, < 0 esborsi) per ogni periodo j ∈T

– Per ogni periodo j∈T esiste un budget bjche limita gli esborsi (flussi di cassa negativi).

Problema

Determinare l’insieme di investimenti

I*

I

che massimizza la

redditività e che rispetta il vincolo per cui la somma dei flussi di

cassa degli investimenti attivati in ogni periodo

j∈T

non superi il

budget b

j

.

(27)

Esempio

Investimento 1

Investimento 2

Investimento 3

Periodo 1 b1 = –4

Periodo 2 b2 = –5

Periodo 3 b3 = –1 a11=2

a21=3

a31=–6

a12=–10

a22=–3

a32=2

a13=–2

a23=5

a33=–3

(28)

Esempio

Formulazione

Variabili decisionali

xi

= 1 se il progetto i è attivato

xi

= 0 altrimenti

Nell’esempio precedente, se vengono attivati tutti e tre gli investimenti il vincolo di budget nel periodo 2 NON è rispettato.

max Σ

cixi

Σ

aijxi

> b

j j∈T

x∈{0,1}

n

i∈I i∈I

max c

Tx Ax > b

x∈{0,1}

n

(29)

Per migliorare la formulazione precedente, consideriamo un singolo vincolo di budget del sistema Ax > b e il problema di Knapsack continuo ad esso associato:

Rilassamento lineare

(KP

j

) max c

T

x

a

Tj

x > b

j

0 < x < 1

max c

T

x

– a

Tj

x < –b

j

0 < x < 1

cambiamo segno nel vincolo

(30)

Rafforzamento

L’insieme delle soluzioni del problema di pianificazione originario è costituito dall’intersezione degli insiemi delle soluzioni dei singoli problemi di knapsack (KP

j

).

Pertanto, è possibile rafforzare ciascun problema KP

j

, ad

esempio con disequazioni cover, per ottenere un

rafforzamento della formulazione di pianificazione.

(31)

Esempio

Consideriamo la seguente istanza di un problema di pianificazione:

– I = {1, 2, 3, 4, 5}

– T = {1, 2, 3}

– c = (3, 7, 3, 5, 7) = Redditività – b = (-2, 0, -5) = Budget

– a

1

= (-4, 1, -2) = Flusso di Cassa I

1

– a

2

= (2, -4, 1) = Flusso di Cassa I

2

– a

3

= (1, 3, -5) = Flusso di Cassa I

3

– a

4

= (1, -3, -2) = Flusso di Cassa I

4

– a

5

= (-3, 4, 1) = Flusso di Cassa I

5

(32)

Esempio

1 0

5 2

5 2

0 4

3 3

4

2 3

2 4

7 5

3 7

3 max

5 4

3 2

1

5 4

3 2

1

5 4

3 2

1

5 4

3 2

1

− +

+

− +

− +

≤ +

+ +

+ +

x

x x

x x

x

x x

x x

x

x x

x x

x

x x

x x

x

La soluzione ottima di (PL) è:

x

*

= [0.67; 1; 0.74; 0.96; 1] di valore z = 23.09

(PL)

Il rilassamento lineare si scrive (considerando il

cambiamento di segno sul vincolo di budget)

(33)

Esempio

Consideriamo a questo punto il primo vincolo di budget e il problema di knapsack continuo ad esso associato:

1 0

2 3

2 4

7 5

3 7

3 max

5 4

3 2

1

5 4

3 2

1

≤ +

+ +

+ +

x

x x

x x

x

x x

x x

x

(KP

1

)

Effettuiamo un cambio di variabili per ottenere tutti coefficienti positivi nel vincolo di knapsack:

J(–) = {2, 3, 4} ⇒ y

i

= 1 – x

i

per ogni i ∈ J(–).

Si ottiene:

6 3

2

4 x

1

+ y

2

+ y

3

+ y

4

+ x

5

(34)

Esempio

Dobbiamo vedere se esiste una cover violata rispetto alla soluzione:

Risolvendo il problema di separazione si individua la cover violata

x1

+ x

5

< 1, che si può aggiungere direttamente alla formulazione, essendo già nelle variabili x.

Osservazione: Se la cover contiene variabili y, bisogna effettuare il

cambio di variabile y

h = 1–xh

prima di aggiungere la disequazione alla formulazione

La nuova soluzione ottima del RL (peraltro intera) è

x

*

= [0.67; 1–1 = 0 ; 1–0.74 = 0.26; 1–0.96 = 0.04; 1]

x

*

= [0; 1; 1; 1; 1] di valore z = 22.

(35)

Parte VI:

Formulazioni con un numero di

vincoli non polinomiale

(36)

Metodo del Simplesso Dinamico Primale

Il metodo del simplesso può essere usato per risolvere un problema di ottimizzazione combinatoria qualora sia nota una rappresentazione del tipo Ax < b (rappresentazione esterna) dell’involucro convesso dei suoi insiemi ammissibili conv (S).

Domanda: Abbiamo realmente bisogno di una

rappresentazione esterna di conv (S)?

(37)

Problema del cammino minimo

Sia G = (V, E) un grafo non orientato.

Dati

s, t ∈ V

l

uv

∈ R

+

uv ∈ E = lunghezza dell’arco uv Problema

Determinare un (s, t)-cammino di lunghezza totale minima.

Variabili decisionali

x

ij

= 1 se l’arco ij appartiene all’ (s, t)-cammino

x

ij

= 0 altrimenti

(38)

(s, t)-tagli

Un (s, t)-taglio è una partizione (X, V\X) dei vertici di G tale che s∈X e t∈V\X.

L’insieme K di archi con un estremo in X e l’altro in V\X definisce gli archi del taglio. Si dice peso del taglio la somma dei pesi degli archi in K.

Esempio

s t

1 2 3

4

5

6

X = {s, 1, 4, 5}, V\X = {2, 3, 6, t}

K = {12, 34, 46, 56}

(39)

Formulazione

Ciascun vincolo esprime la condizione che almeno un arco di ogni (s, t)-taglio deve appartenere al cammino da s a t.

E K uv

uv E uv

uv uv

x

x x l

} 1 , 0 {

1 min

∑ ≥

K corrispondente a un (s, t)-taglio

(40)

Osservazioni

Il numero dei vincoli è esponenziale rispetto alla cardinalità di E.

Sebbene la matrice dei coefficienti non sia totalmente unimodulare, il rilassamento lineare (PL) di (P) fornisce la soluzione ottima del problema intero.

Tuttavia, nella pratica il numero di vincoli rende impossibile

“scrivere” le matrici del metodo del simplesso.

(41)

Simplesso Dinamico Primale

Il simplesso dinamico primale acquisisce le informazioni sulla struttura del poliedro attraverso un oracolo di separazione.

Oracolo di separazione

Dato x

*

∈ R

n

, l’oracolo di separazione restituisce una disequazione a

Ti

x ≤ b

i

del sistema Ax ≤ b violata da x

*

oppure conclude che tutte le disequazioni del sistema Ax

≤ b sono soddisfatte da x

*

.

(42)

Algoritmo

Supponiamo di voler risolvere il problema (P)

1 0

max

x

b Ax

x c

T

dove A è una matrice (m × n) e b∈ R

m

.

Sia D una sottomatrice di A con q << m righe e n colonne. Definiamo il sottoproblema iniziale:

( )

1 0

max

x

d Dx

x

c

T

P ~

(43)

Algoritmo

(P) è

inammissibile Risolvere il problema ( )P~

È ammissibile? no

si

= soluzione ottima di ( )P~

x

Esiste un vincolo violato?

no soluzione ottima di (P)

x

Si aggiunge il vincolo violato atx ≤ b0 a ( )P~

si

(44)

Esempio

s t

2 3

1 4

3

2

1 1

1 1

1

1

Trovare l’(s, t)-cammino di lunghezza minima sul grafo in figura.

Partiamo dalla formulazione:

E uv

x x x

x x

x x

x x

x x

x x

uv t t

s s

t t

s s

≥ +

≥ +

+ +

+ +

+ +

+

1 0

1

1 2

3 min

4 3

2 1

3 4

34 14

23 12

2 1

( ) P ~

(45)

Esempio

La soluzione ottima è data da

0 1

3 34

14 23

12 1

4 2

=

=

=

=

=

=

=

=

t s

t s

x x

x x

x x

x x

Oracolo di separazione

Associamo il peso ad ogni arco uv∈E e cerchiamo l’

(s, t)-taglio di peso minimo K

*

.

Se il peso di K

*

è < 1 allora il relativo vincolo è violato da . Se il peso di K

*

è ≥ 1 allora non ci sono disequazioni violate.

x

uv

x

(46)

Esempio

s t

2 3

1 4

0

1

0 0

0 0

1

0

X = {s, 2}

K

*

= {s1, 12, 23}

Aggiungiamo al problema ( ) il vincolo e risolviamo di nuovo.

23

1

12

1

+ x + x

x

s

P ~

(47)

Esempio

La nuova soluzione ottima è data da

0 1

3 34

14 23

1

4 12

2

=

=

=

=

=

=

=

=

t s

t s

x x

x x

x

x x

x

s t

2 3

1 4

0

1

0 0

0 1

1

0

X = {s, 1, 2}

K

*

= {14, 23}

(48)

Esempio

Aggiungiamo il vincolo violato:

23

1

14

+ xx

La nuova soluzione ottima è:

0 1

3 34

14 12

1

4 23

2

=

=

=

=

=

=

=

=

t s

t s

x x

x x

x

x x

x

(49)

Esempio

s t

2 3

1 4

0

1

0 0

1 0

1

0

X = {s, 2, 3}

K

*

= {s1, 12, 34, 3t}

Aggiungiamo il vincolo violato:

3

1

34 12

1

+ + +

t

s

x x x

x

(50)

Esempio

La nuova soluzione ottima è data da

0 1

4 34

14 12

1

3 23

2

=

=

=

=

=

=

=

=

t s

t s

x x

x x

x

x x

x

s t

2 3

1 4

0

1

0 0

1 0

0

1

Non esistono (s, t)-tagli di peso < 1 ⇒ STOP.

(51)

Il minimo albero ricoprente

Dati

G (V, E) grafo connesso, c

e

> 0 costo associato ad ogni arco e ∈ E.

Problema

Trovare un albero ricoprente di costo minimo.

Algoritmi combinatori noti: Prim e Kruskal

(52)

Formulazione

x

ij

=

1 se l’arco ij appartiene all’albero ricoprente 0 altrimenti

min Σ c

ij

x

ij

Σ x

ij

= n – 1 (1)

Σ x

ij

< |S| – 1 S ⊆ V : 2 < |S| < n – 1 (2) x > 0

ij ∈ E

ij ∈ E

ij ∈ E(S)

RILASSAMENTO LINEARE

(53)

Osservazioni

1.I bound x < 1 sono implicati dai vincoli (2).

2.La matrice dei vincoli non è totalmente unimodulare.

Infatti, consideriamo un grafo con 5 nodi e i seguenti vincoli di tipo (2):

che ha determinante –2 e, quindi, non è totalmente unimodulare.

Nonostante la matrice dei coefficienti non sia totalmente unimodulare, il rilassamento lineare fornisce una soluzione intera. Tuttavia,il numero dei vincoli cresce esponenzialmente con il numero dei nodi del grafo.

3 3 2

34 45

23

15 45

12

23 12

≤ +

+

≤ +

+

≤ +

x x

x

x x

x

x x

1 1

0

1 0

1

0 1

1

x45 x23

x12

matrice associata

(54)

Esempio

2

1

3

4

8 9

6

5 7

2 2

5 10

4 1

3 8 9

2 5

3

0 1

8 st

5 3

2 5

2 2

9 8

10 1

3 4

min

67 57

56 89

49 48

45 35

34 23

13 12

67 57

56 89

49 48

45 35

34 23

13 12

= +

+ +

+ +

+ +

+ +

+ +

+ +

+ +

+ +

+ +

+ +

+

x x

x x

x x

x x

x x

x x

x x

x x

x x

x x

x x

x x

x x

Consideriamo il sottoproblema

con la sola famiglia di vincoli

(1).

(55)

Soluzione del primo sottoproblema

Valore della soluzione: 22

Gli archi verdi di maggiore spessore corrispondono a variabili poste a 1.

2

1

3

4

8 9

6

5 7

2 2

5 10

4 1

3 8 9

2 5

3

(56)

Domanda: Esiste un vincolo della famiglia

violato dalla soluzione ottima corrente? SI

Ad esempio, x

48

+ x

49

+ x

89

< 2 che viene aggiunto alla formulazione corrente.

Separazione

1

|

| 2 che tale

, ogni per

1

|

)

|

(

≤ − ≤ ≤ −

ijE S

x

ij

S S S n

0 1

2

8 st

5 3

2 5

2 2

9 8

10 1

3 4

min

89 49

48

67 57

56 89

49 48

45 35

34 23

13 12

67 57

56 89

49 48

45 35

34 23

13 12

≤ +

+

= +

+ +

+ +

+ +

+ +

+ +

+ +

+ +

+ +

+ +

+ +

+

x x

x x

x

x x

x x

x x

x x

x x

x x

x x

x x

x x

x x

x x

x x

(57)

Soluzione del secondo sottoproblema

Valore della soluzione: 22

Gli archi verdi di maggiore spessore corrispondono a variabili poste a 1

2

1

3

4

8 9

6

5 7

2 2

5 10

4 1

3 8 9

2 5

3

(58)

Separazione

Domanda: Esiste un vincolo della famiglia

violato dalla soluzione ottima corrente? SI

Ad esempio, x

56

+ x

57

+ x

67

< 2 che viene aggiunto alla formulazione corrente

0 1

2 2

8 st

5 3

2 5

2 2

9 8

10 1

3 4

min

67 57

56

89 49

48

67 57

56 89

49 48

45 35

34 23

13 12

67 57

56 89

49 48

45 35

34 23

13 12

≤ +

+

≤ +

+

= +

+ +

+ +

+ +

+ +

+ +

+ +

+ +

+ +

+ +

+ +

+

x x

x x

x

x x

x

x x

x x

x x

x x

x x

x x

x x

x x

x x

x x

x x

x x

1

|

| 2 che tale

, ogni per

1

|

)

|

(

≤ − ≤ ≤ −

ijE S

x

ij

S S S n

(59)

Soluzione del terzo sottoproblema

Valore della soluzione: 25

Gli archi verdi di maggiore spessore corrispondono a variabili poste a 1.

2

1

3

4

8 9

6

5 7

2 5 10

4 1

3 8 9

2 5

3

(60)

Separazione

Domanda: Esiste un vincolo della famiglia

violato dalla soluzione ottima corrente? SI

Ad esempio, x

12

+ x

13

+ x

23

< 2 che viene aggiunto alla formulazione corrente.

0 1

2 2 2

8 st

5 3

2 5

2 2

9 8

10 1

3 4

min

23 13

12

67 57

56

89 49

48

67 57

56 89

49 48

45 35

34 23

13 12

67 57

56 89

49 48

45 35

34 23

13 12

≤ +

+

≤ +

+

≤ +

+

= +

+ +

+ +

+ +

+ +

+ +

+ +

+ +

+ +

+ +

+ +

+

x x

x x

x

x x

x

x x

x

x x

x x

x x

x x

x x

x x

x x

x x

x x

x x

x x

x x

1

|

| 2 che tale

, ogni per

1

|

)

|

(

≤ − ≤ ≤ −

ijE S

x

ij

S S S n

(61)

Valore della soluzione: 30

Gli archi verdi di maggiore spessore corrispondono a variabili poste a 1.

Soluzione del quarto sottoproblema

2

1

3

4

8 9

6

5 7

2 5 10

4 1

3 8 9

2 5

3

(62)

Separazione

Domanda: Esiste un vincolo della famiglia

violato dalla soluzione ottima corrente? NO

La soluzione trovata è ottima per il rilassamento ed è anche INTERA, ovvero ottima per PL-{0,1}.

1

|

| 2 che tale

, ogni per

1

|

)

|

(

≤ − ≤ ≤ −

ijE S

x

ij

S S S n

(63)

Formulazione “cutset” per il minimo albero ricoprente

x

ij

=

1 se l’arco ij appartiene all’albero ricoprente 0 altrimenti

min Σ c

ij

x

ij

Σ x

ij

= n – 1 (1)

Σ x

ij

> 1 ∀ S ⊆ V : 1 < |S| < n – 1 (2) x > 0

ij ∈ E

i∈S, j∈δ(S)

RILASSAMENTO LINEARE

(64)

La formulazione cutset non è intera.

Infatti, consideriamo il seguente sottoproblema ottenuto tramite la formulazione cutset:

0 1

1 1 1

8 st

5 3

2 5

2 2

9 8

10 1

3 4

min

45 35

45 34

35 34

67 57

56 89

49 48

45 35

34 23

13 12

67 57

56 89

49 48

45 35

34 23

13 12

≥ +

≥ +

≥ +

= +

+ +

+ +

+ +

+ +

+ +

+ +

+ +

+ +

+ +

+ +

+

x x

x x

x x

x x

x x

x x

x x

x x

x x

x x

x x

x x

x x

x x

x x

x x

Formulazione “cutset” per il minimo albero ricoprente

S contiene i nodi {1,2, 3} e non contiene i nodi {4,5}.

S contiene i nodi {4,8,9} e non contiene i nodi {3,5}.

S contiene i nodi {5,6,7} e non contiene i nodi {3,4}.

(65)

Soluzione frazionaria

1 1

0.5 1

1

0.5 0.5

1

1

Il problema così formulato ammette la seguente soluzione ottima

di valore 28.5 e che NON ha tagli violati !!!!

0.5

(66)

Problema di separazione

I vincoli utilizzati nella precedente formulazione del problema del minimo albero ricoprente, ossia

sono denominati subtour elimination constraint.

Vogliamo formulare il problema di separazione per tali vincoli.

Consideriamo le seguenti variabili decisionali:

z

j

= 1 se j ∈ S z

j

= 0 altrimenti

1

|

| 2 che tale

, ogni per

1

|

)

|

(

≤ − ≤ ≤ −

ijE S

x

ij

S S S n

(67)

Un vincolo subtour è violato dalla soluzione x*

LP

se e solo se esiste un S tale che

ovvero se

1

|

)

|

(

*

− > −

ijE S

x

ij

S

{ }

{ }

{ }

1 max

|

| max

* 1

, 0

) (

*

>

=

∑ ∑

E

ij ij i j j V j

z

S E

ij ij

V S

z z

z x

S x

Problema di separazione

(68)

Osservazioni

1. Il problema

ha soluzione ottima di valore 0 con z = 0.

Per ovviare a ciò si deve fissare z

k

=1, per k = 1,…,|V|.

In questo modo si risponde alla domanda se esiste un vincolo di tipo subtour violato che contiene il vertice k.

2. Il problema non è un problema di PL-{0,1}. Si deve effettuare una linearizzazione.

{ }

{ }

1

max

*

1 , 0

>

− ∑

ij E ij i j j V j

z

x z z z

(69)

Linearizzazione

Introduciamo la variabile w

ij

= z

i

z

j

. Il problema diventa

{ } { }

E ij

w z

z

z z

w

z w

z w

z w

x

E V

k

j i

ij

j ij

i ij

E

ij j V

j ij

ij

=

∑ − ∑

ogni per

1 , 0 ,

1 , 0

1

1 0 0 st

max

|

|

|

|

*

(70)

Linearizzazione

I vincoli possono essere eliminati in quanto i coefficienti delle w

ij

nella funzione obiettivo sono > 0 ovvero,

Questo implica che il vincolo è sempre soddisfatto in quanto

Eliminando questi vincoli osserviamo anche che la matrice dei coefficienti è totalmente unimodulare. Pertanto, può essere rimossa anche la stipula di interezza.

Possiamo pertanto concludere che il problema di separazione dei subtour elimination constraint è “facile”.

− 1

i j

ij

z z

w

{ , } min

i j

ij

z z

w =

{ , } 1

min z

i

z

j

z

i

+ z

j

-

Riferimenti

Documenti correlati

PROBLEMA – Un rombo ha la diagonale maggiore di 12 cm , la diagonale minore che è 2/3 della diagonale maggiore e il lato che misura la metà della diagonale minore.. Calcola area

scriva il valore di ogni componente del residuo pesato wr con una cifra prima della virgola, 5 dopo la virgola, in formato esponenziale;?. da tale grafico, quale si pu` o presumere

Determinare tutti i quadrati magici d’ordine 2 (sono solo quelli banali, con tutte le entrate uguali) e 3 (mostrare in particolare che il termine centrale della matrice `

[r]

[r]

Prova scritta di Matematica Applicata 27 ottobre

Fondamenti di Fisica Matematica: Primo parziale 03.05.2011. Cognome

La seconda parte del corso prevede lo studio di diversi problemi classici di ottimizzazione combinatoria (per lo più su grafi) e delle principali tecniche algoritmiche per il