• Non ci sono risultati.

Definizione: Un vettore y∈ℜ

N/A
N/A
Protected

Academic year: 2021

Condividi "Definizione: Un vettore y∈ℜ"

Copied!
34
0
0

Testo completo

(1)

Parte IV:

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 a

T

x < α è valida per il poliedro P = {x∈ℜ

n

: Ax < b} se e solo se P ⊆ {x∈ℜ

n

: a

T

x < α}, ovvero se e solo se la disequazione è soddisfatta da tutte le soluzioni ammissibili del sistema Ax < b (diremo che a

T

x < α è implicata dal sistema Ax < b).

Definizione: Una disequazione valida a

T

x < α definisce una faccia F = P ∩ {x∈ℜ

n

: a

T

x = α}. L’insieme {x∈ℜ

n

: a

T

x = α} è 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 1P 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.

(1) 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 massimizzi 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.

ATTENZIONE! E’ sbagliato 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 P

S

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

S

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 P

S

oppure conclude che x’∈P

S

.

L’oracolo di separazione descrive P

S

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 P

S

(valida per P

S

), e non soddisfatta dal vettore x

*LP,

OPPURE – di concludere che x

*LP

P

S

.

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

x

1

x

2

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

: Σ a

j

x

j

< b}.

Definizione: Un insieme C ⊆ N è un cover se e solo se Σ a

j

> 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

Σ x

j

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

Dimostrazione: Dimostriamo che se un generico vettore x

R

non soddisfa il vincolo (*) allora x

R

X.

Se x

R

è tale che Σ x

jR

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

Pertanto:

Σ a

j

x

jR

= Σ a

j

> Σ a

j

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

j

< |C| – 1 nella forma 1 + Σ x

j

- |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) : Σ a

j

> 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 y

j

= 0 altrimenti.

Funzione Obiettivo max Σ ((x

*j

)

LP

– 1)y

j

Vincoli Σ a

j

y

j

> 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 possiamo non tenerne conto nella funzione obiettivo.

Funzione Obiettivo max Σ ((x

*j

)

LP

– 1) – Σ ((x

*j

)

LP

– 1)w

j

Vincoli – Σ a

j

w

j

> – Σ a

j

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

Separazione

1. Il valore di 1 + z

*SEP

è > 0, ovvero esiste una disequazione cover violata.

2. Il cover associato alla violazione è formato dagli indici che hanno valore 1 in y

*

, ovvero

y* = (1, 1, 1, 0, 0, 0, 0) corrisponde al cover C = {1, 2, 3}.

3. La disequazione è scritta in corrispondenza degli indici in C, ossia

C = {1, 2, 3} corrisponde a x

1

+ x

2

+ x

3

< |C| – 1 = 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à c

i

– Ogni investimento i genera un flusso di cassa a

i

= (a

i1

, a

i2

, …, a

it

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

– Per ogni periodo j∈T esiste un budget b

j

che limita gli esborsi (flussi di cassa negativi).

Problema

Determinare un 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 b

1

= –4

Periodo 2 b

2

= –5

Periodo 3 b

3

= –1 a

11

=2

a

21

=3

a

31

=–6

a

12

=–10

a

22

=–3

a

32

=2

a

13

=–2

a

23

=5

a

33

=–3

(28)

Esempio

Formulazione

Variabili decisionali

x

i

= 1 se il progetto i è attivato x

i

= 0 altrimenti

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

max Σ c

i

x

i

Σ a

ij

x

i

> b

j

j∈T x∈{0,1}

n

i∈I i∈I

max c

T

x

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* PL = [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 x

1

+ 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–x

h

prima di aggiungere la disequazione alla formulazione

La nuova soluzione ottima del RL (peraltro intera) è

x* PL = [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.

Riferimenti

Documenti correlati

se esise o meno la soluzione di questo problema di Cauchy,

[r]

[r]

Per determinare una soluzione particolare dell’e- quazione non omogenea, utilizzando il metodo della somiglianza, cerchiamo tale soluzione della forma y p (x) = e x (A cos x+B sin

d) la corrente i che scorre nel resistore posto nel ramo centrale del circuito (vedi figura) qualora tra A e C sia presente

Intuitivamente, un insieme del genere non potr´ a n´ e essere limitato (perch´ e dovrebbe, in caso contrario, essere tutto contenuto in un disco di R 2 ), e quindi neppure compatto

Corso di Laurea: Anno di

[r]