• Non ci sono risultati.

Consideriamo il seguente problema di Knapsack 0-1 max (5x

N/A
N/A
Protected

Academic year: 2021

Condividi "Consideriamo il seguente problema di Knapsack 0-1 max (5x"

Copied!
48
0
0

Testo completo

(1)

Formulazioni

Consideriamo il seguente problema di Knapsack 0-1 max (5x

1

+ 2x

2

)

st

3x

1

+ 4x

2

< 6 x ∈ {0,1}

2

Insiemi ammissibili

F = {(0, 0), (0, 1), (1, 0)}

Rappresentiamo sul piano gli insiemi ammissibili.

(2)

Insiemi ammissibili

x1 x2

(0, 0) (0, 1)

(1, 0)

(1, 1)

(3)

Formulazione

Un poliedro P è una formulazione di un problema di OC se e solo se P ∩ {0,1}

n

= F

x1 x2

(4)

Il rilassamento lineare …

Il problema di knapsack 0-1

max 5x1 + 2x2 3x1 + 4x2 < 6

x {0,1}2

ha come rilassamento lineare

max 5x1 + 2x2 3x1 + 4x2 < 6

x1 > 0 x2 > 0 x1 < 1 x < 1

(5)

x

1

< 1 x

2

< 1

x

1

> 0

x

2

> 0

… è un poliedro …

3x

1

+ 4x

2

< 6

x1 x2

(6)

… ovvero, è una formulazione

x1 x2

(7)

Gerarchia di formulazioni

Quando una formulazione è “migliore” di un’altra?

Definizione: Se un poliedro P1, formulazione di F, è contenuto in P2, formulazione di F, diciamo che P1 è migliore di P2.

In generale

P1 P2 P3

Esiste una formulazione “ideale”?

(8)

Formulazione ideale

“Geometricamente” la formulazione ideale coincide con il più piccolo poliedro contenente F.

Come si ottiene la formulazione ideale?

x1 x2

(9)

Proprietà

Osservazione: Ogni vertice del poliedro associato alla

“formulazione ideale” è in corrispondenza biunivoca con un insieme ammissibile.

Definizione: Dati due vettori x

1

e x

2

di R

n

si definisce combinazione convessa il vettore

y = λ x

1

+ (1 – λ ) x

2

con λ ∈ [0, 1]

Esempio:

x

1

x

2

y

(10)

Involucro convesso

Definizione: Dato un insieme X Rn, l’involucro convesso di X, indicato con conv(X), è definito nel modo seguente:

conv (X) = {x: x =

Σ

λixi,

Σ

λi=1, λi > 0 per i=1,…,t su tutti i sottoinsiemi finiti {x1, …, xt} di X}.

Pertanto, l’involucro convesso è l’insieme di tutte le possibili combinazioni convesse di un insieme di vettori X di Rn.

Osservazione: conv(X) è un poliedro.

La formulazione ideale di F è conv (F).

i =1 t

i =1 t

(11)

Calcolo di conv ( F )

In linea di principio …

Dati gli insiemi ammissibili

F = {(0, 0), (0, 1), (1, 0)}

y conv(F) se e solo se si può esprimere come

y y

12

1

0 0

2

0 1

3

1 0

λ

1

2

3

=1

λ

1

2

3

≥0

(12)

… a questo punto

Attenzione: questo sistema è nello spazio R

n+m

, se m sono gli insiemi ammissibili.

Quindi per ottenere la formulazione ideale è necessario

“proiettare” il sistema nello spazio R

n

.

A questo scopo è possibile utilizzare l’algoritmo di Fourier-

Motzkin che consente di “eliminare” le variabili λ .

(13)

Punto della situazione

Dato un problema di OC

1. Elenco tutti gli insiemi ammissibili.

2. Rappresento gli insiemi ammissibili come vettori a componenti in {0,1}.

3. Scrivo l’involucro convesso applicando la definizione.

4. Con l’algoritmo di Fourier-Motzkin elimino i coefficienti della combinazione convessa e ottengo una formulazione ideale nello spazio Rn.

5. Applico il metodo del simplesso e trovo la soluzione ottima.

È efficiente questo algoritmo?

(14)

Efficienza del calcolo di conv(F)

Problemi del precedente algoritmo

1. Gli insiemi ammissibili sono tipicamente in numero esponenziale.

2. L’algoritmo di Fourier-Motzkin non ha complessità polinomiale.

Però sappiamo che una formulazione ideale esiste sempre e quindi

1. Caso MOLTO fortunato: abbiamo una formulazione che è proprio la formulazione ideale.

2. Tentiamo di approssimare la formulazione ideale costruendo una gerarchia di formulazioni a partire da una formulazione iniziale.

(15)

Gerarchia di formulazioni

Quando una formulazione è “migliore” di un’altra?

Definizione: Se un poliedro P1, formulazione di F, è contenuto in P2, formulazione di F, diciamo che P1 è migliore di P2.

In generale, una gerarchia di formulazioni è costituita da un insieme di poliedri P1 P2 P3

(16)

Esempio

Consideriamo un problema di knapsack con il vincolo che l’oggetto k può essere scelto se e solo se nella bisaccia sono stati scelti gli oggetti i e j.

Formulazione 1. Formulazione 2.

max c

T

x st

ax ≤ b x

k

x

i

x

k

x

j

x ∈ { 0,1 }

n

max c

T

x st

ax ≤ b

2x

k

x

i

+x

j

x ∈ { 0,1 }

n

(17)

Esempio (II)

Il rilassamento lineare della Formulazione 1 è migliore di quello della Formulazione 2.

Infatti, il vincolo

è implicato dai vincoli

x

k

x

i

x

k

x

j

2x

k

x

i

+x

j

Quindi, P

1

P

2.

(18)

Formulazione ideale

La formulazione del problema di knapsack NON è una formulazione ideale.

Domanda: Esistono casi “fortunati” in cui la formulazione coincide con la formulazione ideale?

E’ possibile “caratterizzare” le formulazioni ideali in modo da riconoscerle in tempo polinomiale?

(19)

Il caso “fortunato”

Consideriamo il seguente problema di PL in forma standard, in cui A∈ℜm×n è una matrice intera e b∈ℜn è un vettore intero

min cTx

Ax = b x > 0 con rg (A) = m < n.

Se il problema ammette soluzione ottima finita, allora il metodo del simplesso restituisce la soluzione ottima in corrispondenza di una soluzione di base ammissibile del tipo:

X =

XB XN

B–1b 0 =

(20)

Il caso “fortunato” (II)

Osservazione: Se la base ottima B ha determinante det(B )= + 1, allora il problema lineare ha una soluzione intera.

Infatti:

B

–1

= B

a

/det(B), dove B

a

è la matrice aggiunta. Gli elementi di B

a

sono tutti prodotti di termini di B. Pertanto B

a

è una matrice intera e, poiché det(B)=+1, B

–1

è ancora intera.

Pertanto la soluzione di base x

B

= B

–1

b è intera per ogni

intero b.

(21)

Matrici unimodulari

Definizione: Una matrice A intera m × n (m < n) si dice unimodulare se ogni sua sottomatrice B di dimensioni m × m ha det(B) = {-1, 0, +1}.

Dall’osservazione precedente si ottiene il seguente risultato:

Teorema: Se A è una matrice unimodulare e b è un vettore

intero, il poliedro P = {Ax = b, x > 0} ha tutti i vertici interi.

(22)

Matrici totalmente unimodulari

min cTx

Ax ≥ b (P ) x > 0

Per portare questo problema in forma standard bisogna inserire le variabili di slack y:

min cTx

Ax –Iy = b (P’)

x, y > 0

Consideriamo ora il rilassamento lineare di una formulazione di PL-{0,1}. In generale, sarà del tipo:

(23)

Matrici totalmente unimodulari

Definizione: Una matrice A si dice totalmente unimodulare (TUM) se ogni sottomatrice quadrata di A ha determinante {-1, 0, +1}.

Proprietà delle matrici TUM

Una matrice A è TUM se e solo se

la matrice trasposta AT è TU.

la matrice (A, I ) è TU.

(24)

Teorema

Teorema (Hoffman-Kruskal [1956]):

Sia A una matrice intera. Il poliedro P definito da P = {Ax > b, x > 0}

ha tutti i vertici interi per ogni vettore intero b se e solo se A è TUM.

Attenzione: Il teorema non vale se P = {x ∈ Rn, Ax = b}. Infatti, in questo caso P può avere vertici interi ma A può non essere TUM.

(25)

Condizioni per la TU

Teorema: A è TUM se

i) aij {-1, 0, 1}

ii) Ogni colonna ha al più due coefficienti non nulli

iii) Esiste una partizione (M1, M2) dell’insieme delle righe M tale che ogni colonna j contenente due coefficienti non nulli soddisfa

a ij = ∑ a ij

Osservazione:

- se la colonna j contiene due elementi aij 0 e akj 0 dello stesso segno allora i M1 e k M2.

- se la colonna j contiene due elementi aij 0 e akj 0 di segno opposto allora i, k M oppure i,k M .

i∈Μ1 i∈Μ2

(26)

Dimostrazione

Supponiamo che le condizioni i), ii) e iii) siano soddisfatte.

Dobbiamo dimostrare che ogni sottomatrice quadrata B di A ha det(B)∈{–1, 0, 1}.

Procediamo per induzione:

Se B è una sottomatrice 1×1, banalmente det(B)∈{–1,0,1}.

Supponiamo ora che la tesi valga per ogni sottomatrice di A di dimensioni (n – 1)×(n – 1) e consideriamo una sottomatrice B di dimensioni n×n.

Se B contiene una colonna nulla, det(B) = 0.

(27)

Se ogni colonna di B contiene due elementi ≠ 0, dall’ipotesi si ottiene

Questo implica che det(B) = 0.

a ij =a ij

Se B contiene una colonna con un unico elemento diverso da zero, allora det(B) = +det(B’), dove B’ è di ordine (n – 1)×(n – 1). Pertanto, dall’ipotesi induttiva, det(B)∈{–1,0,1}.

Dimostrazione

i∈Μ1 i∈Μ2

(28)

Esempi di matrici TUM

G (N, A) grafo diretto

a

b c

e i

g d

f

h

l s

2 3

4 5

t

A

Matrice di incidenza nodi-archi M1= M, M2 =

Teorema: La matrice di incidenza di un grafo diretto è TUM.

a b c d e f g h i l

s

1 1 0 0 0 0 0 0 0 0

2

-1 0 -1 1 1 0 0 0 0 0

3

0 0 0 0 -1 -1 0 1 1 0

4

0 -1 1 0 0 1 1 0 0 0

5

0 0 0 -1 0 0 -1 -1 0 1

t

0 0 0 0 0 0 0 0 -1 -1

(29)

Problema di cammino minimo

Dati: G (N, A) grafo diretto, due nodi (s, t), vettore c R

+|A|

min

Σ

cijxij

Σ

xsk

Σ

xks = 1

Σ

xik

Σ

xki = 0 per i V\{s, t}

Σ

xtk

Σ

xkt = –1

xij > 0, intera per (i,j) A

k δ+(s) k δ-(s) k δ+(s)

k ∈δ+(i) k ∈δ-(i) k ∈δ-(t) k ∈δ+(t)

(30)

z= minc

ij

x

ij

st

Ax = [ 1 0 1 ]

x≥0 x≤1

x ∈ { 0,1 }

A∣

La stipula di interezza può essere

rimossa in quanto A è TU

Problema di cammino minimo

(31)

Matrice di incidenza di grafi bipartiti

1

2

3

4

5

M2

M1 a

b c

d e

Teorema: Un grafo è bipartito se e solo se la sua matrice di incidenza è totalmente unimodulare.

a b c d e

1 1 0 0 0 0

2 0 1 1 0 0

3 0 0 0 1 1

4 1 1 0 1 0

5 0 0 1 0 1

(32)

Matrici di incidenza

Domanda:Tutte le matrici di incidenza sono TU?

NO!!!

1

2 a 3

b c

a b c

1 1 1 0

2 0 1 1

3 1 0 1

(33)

Matrici totalmente unimodulari

min cTx Ax ≥ b x > 0

Primale Duale

Supponiamo che A sia TUM (quindi il primale è intero).

Poiché A è TUM se e solo se la matrice trasposta A

T

è TUM, segue che anche il duale è intero.

Teorema: Se A è TUM allora sia il problema primale che il problema duale sono interi.

max yTb

ATy < cT y > 0

(34)

Algoritmo di Held & Karp

per il calcolo dell'1-albero di peso

minimo

(35)

1-albero

Ricordiamo che:

Definizione: Dato un grafo G = (V, E), un 1-albero è un sottografo di G che consiste di due archi adiacenti al nodo 1 più gli archi di un albero ricoprente i nodi {2, …, n}.

1 3

5

4

6

Esempio

2

7

1 3

5

4

6

2

7

G = (V, E) 1-albero

(36)

1-albero

Osservazione: Ogni ciclo hamiltoniano è un 1-albero.

Pertanto, il problema

Dati: grafo G = (V,E), pesi sugli archi ce per ogni arco e E.

Domanda: trovare un 1-albero di peso minimo.

è un rilassamento del problema del TSP.

1-albero = lower bound per il valore ottimo del TSP

Siano

A = min{ce+cf : e,f ∈δ(1), e f} e B = costo del minimo albero ricoprente su G\{1}.

Allora A+B è un lower bound per il valore ottimo del TSP su G.

(37)

Esempio

Consideriamo il seguente grafo:

Il valore del lower bound è z

LB1

= 0. Pertanto, il ciclo hamiltoniano ottimo ha valore z

1

* > 0.

1

3 5

4 2

10

0 0

0

0 0

1

10

10

1

3 5

4

0 2 0

0

0 0

1-albero di peso minimo

(38)

Esempio

Il valore della soluzione ottima è z

1

* = 10.

1

3 5

4 2

10

0 0

0

0 0

1

10

10

1

3 5

4

0 2 0

0

0 10

Ciclo

hamiltoniano ottimo

z*1 = 10

z1LB = 0

(39)

Esempio

Osservazione: La soluzione associata all'1-albero di peso minimo può utilizzare tutti e tre gli archi incidenti sul nodo 4 e aventi peso nullo.

D'altra parte, il ciclo hamiltoniano ottimo deve necessariamente utilizzare un arco avente peso diverso da 0.

Cosa succede se incrementiamo di un valore pari a 10 il peso degli archi incidenti sul nodo 4?

1

3 5

4 2

10

0 0

1

10

10 10

10

Ogni ciclo hamiltoniano utilizza esattamente due archi incidenti sul nodo 4. Pertanto il costo di ogni ciclo hamiltoniano è

incrementato di un valore pari a 20.

(40)

Esempio

Osservazione: Il ciclo hamiltoniano ottimo è rimasto invariato ed il suo costo è ora pari a z2* = z1* + 20 = 30.

1

3 5

4 2

10

0 0

1

10

10

10 10

10

1

3 5

4

0 2 0

10

Ciclo

hamiltoniano ottimo

10

10

(41)

Esempio

Calcoliamo l'1-albero di peso minimo sul grafo con i costi degli archi variati.

1

3 5

4 2

10

0 0

1

10

10

10 10

10

1

3 5

4

0 2 0

1-albero di peso minimo

10 10 10

In questo caso z

LB2 = 30 e pertanto

il ciclo hamiltoniano ottimo

ha valore z

2

* > 30.

(42)

Esempio

Poiché

z1* = z2* – 20 > 30 – 20 = 10

possiamo concludere che il ciclo hamiltoniano sul grafo originario (ossia senza i costi alterati su alcuni archi) deve avere un costo almeno pari a 10.

Tramite una semplice trasformazione abbiamo migliorato il lower bound sul valore ottimo del problema iniziale.

Osservazione: Sebbene la trasformazione non alteri il TSP, essa fondamentalmente altera il calcolo del minimo albero ricoprente e, quindi, dell'1-albero.

(43)

Bound di Held e Karp

Dati

G = (V,E), pesi sugli archi cij per ogni arco (i,j) E.

v1 V.

Numero reale yv associato a ciascun nodo v V.

Pesi alterati sugli archi wij = cij – yi – yj per ogni arco (i,j) E.

sia w(T) il costo dell'1-albero di peso minimo calcolato rispetto ai pesi wij.

Allora

2 Σ

vV

y

v

+ w(T)

è un lower bound per il valore ottimo del TSP sul grafo originario.

(44)

Bound di Held e Karp

La trasformazione effettuata sui costi degli archi del grafo consiste

1. nell'associare al nodo v = 4 il valore k = –10

1. nel sottrarre

ai costi degli archi incidenti sul nodo v = 4 il valore k = –10.

Il bound ottenuto con questa trasformazione è noto come bound

di Held e Karp (1970).

(45)

Bound di Held e Karp

Per determinare i numeri reali da assegnare ai singoli nodi del grafo, procediamo nel modo seguente:

1. Sia T l'1-albero calcolato ad una generica iterazione rispetto ai pesi wij.

2. Per ogni nodo v, sia dT(v) il numero di archi dell'1-albero incidenti su v.

3. Se dT(v) > 2, allora il valore yv deve essere decrementato.

4. Se dT(v) = 1, allora il valore yv deve essere aumentato.

(46)

Bound di Held e Karp

Per aggiornare i valori associati a ciascun nodo alla k-esima iterazione, consideriamo:

– zUB = upper bound sul valore della soluzione ottima del TSP – zHLB = lower bound di Held e Karp corrente

− α(k) = numero reale nell'intervallo (0, 2]

Definiamo la lunghezza del passo:

t(k) = α(k)(zUB – zHLB)/

Σ

vV(2 – dT(v))2 e aggiorniamo i valori yv come segue:

yv = yv + t(k)(2 – dT(v))

Con questa scelta della lunghezza del passo, la procedura di Held e Karp converge al bound ottimo in tempo polinomiale.

(47)

Procedura di Held e Karp

Input

– Grafo G = (V,E) con costi ce per ogni eE e v1V.

– Upper bound zUB.

– Numero reale positivo ITERATIONFACTOR – Intero positivo MAXCHANGES

Inizializzazione

– yv = 0 per ogni vV.

– z*LB=– .

– TSMALL = 0.001.

α=2.

β=0.5.

– NUMITERATIONS=ITERATIONFACTOR × |V|

(48)

Procedura di Held e Karp

Algoritmo

For i = 1 to MAXCHANGES

For k = 1 to NUMITERATIONS

T = 1-albero ottimo rispetto ai costi wij = cij – yi – yj zLB = lower bound corrispondente all'1-albero T If zLB > z*LB, then z*LB = zLB.

If T è un ciclo hamiltoniano, then STOP.

t(k) = α(k)(zUB – zHLB)/

Σ

vV(2 – dT(v))2. If t(k)< TSMALL, then STOP.

Sostituisci yv = yv + t(k)(2 – dT(v)) per ogni vV.

Sostituisci α = βα.

Riferimenti

Documenti correlati

Teorema - Dato un sistema di m equazioni lineari in n incognite, diciamo che questo ammette una o più soluzioni quando la matrice del sistema e la matrice completa hanno lo

Fig. C’ e’ da notare inoltre che: i CLOCK del secondo e del terzo Flip Flop ricevono il segnale dall’ uscita del Flip Flop precedente; il CLOCK di tutti i Flip Flop e’ del

Chi è passato per Urbino nella prima tappa ha fatto il giro della durata complessiva più breve.. Beniamino ha fatto il giro della durata maggiore

Le condizioni di simmetrizzazione/antisimmetrizzazione vanno imposte tenedo conto della eventuale presenza della parte

Per la sua natura deve essere differenziata dall'anoressia nervosa, poiché induce il desiderio di una smisurata quantità di cibo, ma la differenza maggiore è

Calcolare la composizione, espressa in frazioni molari, della fase liquida e della fase gassosa alla temperatura di ebollizione... Calcolare il pH della soluzione finale

[r]

Si dice peso specifico di una sostanza il peso espresso in grammi di un centimetro cubo o il peso in kilogrammi di un decimetro cubo o il peso in tonnellate di un metro cubo..