KNAPSACK TSP - di.unito.itlocatell/didattica/ro2/Esatti-sl.pdf · Algoritmi esatti La teoria ci...

48
Algoritmi esatti La teoria ci dice che per problemi difficili (come il KNAPSACK o, ancora di più, il TSP ) i tempi di risoluzione delle istanze, calcolati tramite analisi worst-case, tendono a crescere in modo esponenziale rispetto alla loro dimensione. Tuttavia questo non vuol dire che si deve sempre rinunciare a risolvere le istanze di tali problemi in modo esatto. Esistono per essi algoritmi esatti in grado di risolvere anche istanze di dimensioni tutt’altro che banali. Ad esempio, con algoritmi particolarmente sofisticati e con una elevata potenza di calcolo si sono risolti anche problemi TSP con 15.000 nodi. – p. 1/4

Transcript of KNAPSACK TSP - di.unito.itlocatell/didattica/ro2/Esatti-sl.pdf · Algoritmi esatti La teoria ci...

Page 1: KNAPSACK TSP - di.unito.itlocatell/didattica/ro2/Esatti-sl.pdf · Algoritmi esatti La teoria ci dice che per problemi difficili (come il KNAPSACK o, ancora di più, il TSP) i tempi

Algoritmi esatti

La teoria ci dice che per problemi difficili (come ilKNAPSACK o, ancora di più, il TSP ) i tempi di risoluzionedelle istanze, calcolati tramite analisi worst-case, tendono acrescere in modo esponenziale rispetto alla lorodimensione.

Tuttavia questo non vuol dire che si deve sempre rinunciarea risolvere le istanze di tali problemi in modo esatto.

Esistono per essi algoritmi esatti in grado di risolvere ancheistanze di dimensioni tutt’altro che banali. Ad esempio, conalgoritmi particolarmente sofisticati e con una elevatapotenza di calcolo si sono risolti anche problemi TSP con15.000 nodi.

– p. 1/48

Page 2: KNAPSACK TSP - di.unito.itlocatell/didattica/ro2/Esatti-sl.pdf · Algoritmi esatti La teoria ci dice che per problemi difficili (come il KNAPSACK o, ancora di più, il TSP) i tempi

Enumerazione implicita

Molti algoritmi esatti si basano sul concetto dienumerazione implicita delle soluzioni.

Questa consiste nello scartare, tramite opportune tecniche,sottinsiemi di elementi della regione ammissibile senzadover valutare esplicitamente per ciascuno di essi lafunzione obiettivo, avendo stabilito che in tali sottinsieminon vi possono essere soluzioni migliori rispetto alla migliorsoluzione nota.

L’enumerazione implicita si contrappone alla già citataenumerazione esplicita dove la funzione obiettivo vienevalutata in ogni elemento della regione ammissibile.

– p. 2/48

Page 3: KNAPSACK TSP - di.unito.itlocatell/didattica/ro2/Esatti-sl.pdf · Algoritmi esatti La teoria ci dice che per problemi difficili (come il KNAPSACK o, ancora di più, il TSP) i tempi

Approcci esatti che vedremo

In questo capitolo vedremo due classi di algoritmi esatti:

algoritmi branch-and-bound;

algoritmi di programmazione dinamica.

Per illustrare tali algoritmi, mostreremo un algoritmobranch-and-bound applicato al problema KNAPSACK euno applicato al problema TSP , mentre per laprogrammazione dinamica mostreremo un esempioapplicato al problema KNAPSACK.

– p. 3/48

Page 4: KNAPSACK TSP - di.unito.itlocatell/didattica/ro2/Esatti-sl.pdf · Algoritmi esatti La teoria ci dice che per problemi difficili (come il KNAPSACK o, ancora di più, il TSP) i tempi

Modello KNAPSACK - variabili

Associamo ad ogni oggetto i una variabile binaria xi taleche

xi =

{

1 se l’oggetto i viene messo nello zaino0 altrimenti

Si avrà dunque xi ∈ {0, 1}.

– p. 4/48

Page 5: KNAPSACK TSP - di.unito.itlocatell/didattica/ro2/Esatti-sl.pdf · Algoritmi esatti La teoria ci dice che per problemi difficili (come il KNAPSACK o, ancora di più, il TSP) i tempi

Modello- il vincolo

L’unico vincolo nel problema KNAPSACK è quello che ilpeso complessivo degli oggetti inseriti nello zaino non devesuperare la capacità dello zaino e quindi:

n∑

i=1

pixi ≤ b.

– p. 5/48

Page 6: KNAPSACK TSP - di.unito.itlocatell/didattica/ro2/Esatti-sl.pdf · Algoritmi esatti La teoria ci dice che per problemi difficili (come il KNAPSACK o, ancora di più, il TSP) i tempi

Modello matematico - l’obiettivo

Il valore contenuto nello zaino è dato da:

n∑

i=1

vixi,

e tale valore è da massimizzare.

– p. 6/48

Page 7: KNAPSACK TSP - di.unito.itlocatell/didattica/ro2/Esatti-sl.pdf · Algoritmi esatti La teoria ci dice che per problemi difficili (come il KNAPSACK o, ancora di più, il TSP) i tempi

Modello matematico per il KNAPSACK

max∑n

i=1vixi

∑ni=1

pixi ≤ b

xi ∈ {0, 1} ∀ i ∈ {1, . . . , n}

Si noti l’estrema semplicità del modello per il problema diKNAPSACK dove appare un solo vincolo, che fa dacontrasto con la difficoltà del problema stesso.

– p. 7/48

Page 8: KNAPSACK TSP - di.unito.itlocatell/didattica/ro2/Esatti-sl.pdf · Algoritmi esatti La teoria ci dice che per problemi difficili (come il KNAPSACK o, ancora di più, il TSP) i tempi

Esempio

Istanza con b = 16 e:

i 1 2 3 4

vi 8 6 10 1

pi 7 7 13 4

Modello:

max 8x1 + 6x2 + 10x3 + x4

7x1 + 7x2 + 13x3 + 4x4 ≤ 16

x1, x2, x3, x4 ∈ {0, 1}

– p. 8/48

Page 9: KNAPSACK TSP - di.unito.itlocatell/didattica/ro2/Esatti-sl.pdf · Algoritmi esatti La teoria ci dice che per problemi difficili (come il KNAPSACK o, ancora di più, il TSP) i tempi

Modello matematicoTSP - variabili

Dato il grafo completo orientato G = (V,A), associamo adogni arco (i, j) ∈ A una variabile

xij =

{

1 se l’arco (i, j) fa parte del circuito hamiltoniano0 altrimenti

Quindi xij ∈ {0, 1}.

– p. 9/48

Page 10: KNAPSACK TSP - di.unito.itlocatell/didattica/ro2/Esatti-sl.pdf · Algoritmi esatti La teoria ci dice che per problemi difficili (come il KNAPSACK o, ancora di più, il TSP) i tempi

Modello matematico - i vincoli

Dal momento che la regione ammissibile del problema TSPè formata da circuiti hamiltoniani, dovremo:

introdurre vincoli che siano soddisfatti da tutti e soli gliassegnamenti di valori alle variabili coincidenti con circuitihamiltoniani.

– p. 10/48

Page 11: KNAPSACK TSP - di.unito.itlocatell/didattica/ro2/Esatti-sl.pdf · Algoritmi esatti La teoria ci dice che per problemi difficili (come il KNAPSACK o, ancora di più, il TSP) i tempi

Vincoli I

Per ogni circuito hamiltoniano si ha che in ogni vertice c’èesattamente un arco entrante nel vertice ed esattamenteuno che esce dal vertice:

Per ogni vertice j ∈ V :∑

i∈V, i 6=j

xij = 1,

(uno ed un solo arco entrante in j).

Per ogni vertice j ∈ V :∑

i∈V, i 6=j

xji = 1,

(uno ed un solo arco uscente da j).– p. 11/48

Page 12: KNAPSACK TSP - di.unito.itlocatell/didattica/ro2/Esatti-sl.pdf · Algoritmi esatti La teoria ci dice che per problemi difficili (come il KNAPSACK o, ancora di più, il TSP) i tempi

Esempio

Grafo orientato completo con 4 nodi e questa tabella didistanze:

1 2 3 4

1 − 1 6 7

2 1 − 3 6

3 2 4 − 5

4 5 3 6 −

– p. 12/48

Page 13: KNAPSACK TSP - di.unito.itlocatell/didattica/ro2/Esatti-sl.pdf · Algoritmi esatti La teoria ci dice che per problemi difficili (come il KNAPSACK o, ancora di più, il TSP) i tempi

Vincoli su archi uscenti

Nodo 1:x12 + x13 + x14 = 1

Nodo 2:x21 + x23 + x24 = 1

Nodo 3:x31 + x32 + x34 = 1

Nodo 4:x41 + x42 + x43 = 1

– p. 13/48

Page 14: KNAPSACK TSP - di.unito.itlocatell/didattica/ro2/Esatti-sl.pdf · Algoritmi esatti La teoria ci dice che per problemi difficili (come il KNAPSACK o, ancora di più, il TSP) i tempi

Vincoli su archi entranti

Nodo 1:x21 + x31 + x41 = 1

Nodo 2:x12 + x32 + x42 = 1

Nodo 3:x13 + x23 + x43 = 1

Nodo 4:x14 + x24 + x34 = 1

– p. 14/48

Page 15: KNAPSACK TSP - di.unito.itlocatell/didattica/ro2/Esatti-sl.pdf · Algoritmi esatti La teoria ci dice che per problemi difficili (come il KNAPSACK o, ancora di più, il TSP) i tempi

Ma...

... questi vincoli non sono sufficienti. Infatti, se è vero chesono soddisfatti da tutti i circuiti hamiltoniani, è anche veroche sono sodisfatti anche da soluzioni contenentisottocircuiti. Quindi ...

... sarà necessario introdurre una nuova classe di vincoliche siano sempre soddisfatti da tutti i circuiti hamiltonianima che non siano soddisfatti da tali soluzioni corrispondentia sottocircuiti.

– p. 15/48

Page 16: KNAPSACK TSP - di.unito.itlocatell/didattica/ro2/Esatti-sl.pdf · Algoritmi esatti La teoria ci dice che per problemi difficili (come il KNAPSACK o, ancora di più, il TSP) i tempi

Nell’esempio

Il seguente assegnamento di valori alle variabili:

x12 = x21 = x34 = x43 = 1

con tutte le altre variabili = 0, soddisfa i vincoli ma nonrappresenta un circuito hamiltoniano (rappresenta i duesottocircuiti 1 → 2 → 1 e 3 → 4 → 3).

– p. 16/48

Page 17: KNAPSACK TSP - di.unito.itlocatell/didattica/ro2/Esatti-sl.pdf · Algoritmi esatti La teoria ci dice che per problemi difficili (come il KNAPSACK o, ancora di più, il TSP) i tempi

Vincoli II

Per eliminare la formazione di sottocircuiti possiamo usarequesti vincoli:

∀ U ⊆ V : 2 ≤| U |≤| V | −2∑

i∈U, j∈V \U

xij ≥ 1,

che richiedono che per ogni possibile partizione di V in duesottinsiemi (ciascuno di cardinalità almeno pari a 2), deveesserci almeno un arco che va da un sottinsieme all’altro.

Questo esclude tutti i possibili sottocircuiti.

– p. 17/48

Page 18: KNAPSACK TSP - di.unito.itlocatell/didattica/ro2/Esatti-sl.pdf · Algoritmi esatti La teoria ci dice che per problemi difficili (come il KNAPSACK o, ancora di più, il TSP) i tempi

Nell’esempio

U = {1, 2} → x13 + x14 + x23 + x24 ≥ 1

(in particolare, questo vincolo esclude l’assegnamento di variabili precedente)

U = {1, 3} → x12 + x14 + x32 + x34 ≥ 1

U = {1, 4} → x12 + x13 + x42 + x43 ≥ 1

U = {2, 3} → x21 + x24 + x31 + x34 ≥ 1

U = {2, 4} → x21 + x23 + x41 + x43 ≥ 1

U = {3, 4} → x31 + x32 + x41 + x42 ≥ 1

– p. 18/48

Page 19: KNAPSACK TSP - di.unito.itlocatell/didattica/ro2/Esatti-sl.pdf · Algoritmi esatti La teoria ci dice che per problemi difficili (come il KNAPSACK o, ancora di più, il TSP) i tempi

In realtà ...

... metà di questi vincoli è ridondante: dati due sottinsiemitra loro complemementari, è sufficiente mettere il vincolorelativo ad uno solo di essi (ad esempio possiamo mettereuno solo dei due vincoli relativi a U = {1, 2} e U = {3, 4}).

– p. 19/48

Page 20: KNAPSACK TSP - di.unito.itlocatell/didattica/ro2/Esatti-sl.pdf · Algoritmi esatti La teoria ci dice che per problemi difficili (come il KNAPSACK o, ancora di più, il TSP) i tempi

Riassumendo ...

... l’insieme di vincoli che definisce tutti e soli i circuitihamiltoniani è il seguente:

i∈V, i 6=j xij = 1 ∀ j ∈ V∑

i∈V, i 6=j xji = 1 ∀ j ∈ V∑

i∈U, j∈V \U xij ≥ 1 ∀ U ⊆ V : 2 ≤| U |≤| V | −2

xij ∈ {0, 1} ∀ i, j ∈ {1, . . . , n}, i 6= j

– p. 20/48

Page 21: KNAPSACK TSP - di.unito.itlocatell/didattica/ro2/Esatti-sl.pdf · Algoritmi esatti La teoria ci dice che per problemi difficili (come il KNAPSACK o, ancora di più, il TSP) i tempi

Obiettivo

Tra tutti i circuiti hamiltoniani noi cerchiamo quello convalore minimo e quindi l’obiettivo del problema sarà ilseguente:

i,j∈V, i 6=j

vijxij .

Nell’esempio:

min x12 + 6x13 + 7x14 + x21 + 3x23 + 6x24 + 2x31 + 4x32 + 5x34 + 5x41 + 3x42 + 6x43

– p. 21/48

Page 22: KNAPSACK TSP - di.unito.itlocatell/didattica/ro2/Esatti-sl.pdf · Algoritmi esatti La teoria ci dice che per problemi difficili (come il KNAPSACK o, ancora di più, il TSP) i tempi

Modello matematico TSP

min∑

i,j∈V, i 6=j vijxij∑

i∈V, i 6=j xij = 1 ∀ j ∈ V∑

i∈V, i 6=j xji = 1 ∀ j ∈ V∑

i∈U, j∈V \U xij ≥ 1 ∀ U ⊆ V : 2 ≤| U |≤| V | −2

xij ∈ {0, 1} ∀ i, j ∈ {1, . . . , n}, i 6= j

– p. 22/48

Page 23: KNAPSACK TSP - di.unito.itlocatell/didattica/ro2/Esatti-sl.pdf · Algoritmi esatti La teoria ci dice che per problemi difficili (come il KNAPSACK o, ancora di più, il TSP) i tempi

Branch-and-bound

Tra le tecniche di risoluzione esatte per problemi difficili unamolto popolare è quella denominata branch-and-bound. Nedaremo una descrizione generale e ne vedremo poi unesempio applicato al problema KNAPSACK e unoapplicato al problema TSP .

Descriveremo l’algoritmo generico di branch-and-bound perproblemi di massimo. Di seguito segnaleremo le piccolevariazioni che vanno introdotte per problemi di minimo.

– p. 23/48

Page 24: KNAPSACK TSP - di.unito.itlocatell/didattica/ro2/Esatti-sl.pdf · Algoritmi esatti La teoria ci dice che per problemi difficili (come il KNAPSACK o, ancora di più, il TSP) i tempi

Componenti algoritmo:upper bound

Sia data la regione ammissibile S e la funzione obiettivo f

dell’istanza di un problema di ottimizzazione. Si consideriun sottinsieme T ⊆ S della regione ammissibile. Unalimitazione superiore o upper bound per T è un valore U(T )con la seguente proprietà

U(T ) ≥ f(x) ∀ x ∈ T.

– p. 24/48

Page 25: KNAPSACK TSP - di.unito.itlocatell/didattica/ro2/Esatti-sl.pdf · Algoritmi esatti La teoria ci dice che per problemi difficili (come il KNAPSACK o, ancora di più, il TSP) i tempi

Il calcolo dell’upper bound

Il valore U(T ) viene calcolato tramite una procedura chedeve cercare di soddisfare queste due proprietà in conflittotra loro:

i tempi di esecuzione della procedura devono esserebrevi (in particolare, il calcolo degli upper bound deverichiedere un tempo molto inferiore rispetto al temponecessario per risolvere l’intero problema);

il valore U(T ) deve essere il più vicino possibile almassimo valore di f su T .

Spesso la scelta di una procedura per il calcolo dell’upperbound è fortemente legata al particolare problema che sista risolvendo. Inoltre, non esiste un’unica procedura perun dato problema.

– p. 25/48

Page 26: KNAPSACK TSP - di.unito.itlocatell/didattica/ro2/Esatti-sl.pdf · Algoritmi esatti La teoria ci dice che per problemi difficili (come il KNAPSACK o, ancora di più, il TSP) i tempi

Upper bound e rilassamento

Un modo comunemente utilizzato per determinare un upperbound U(T ) è quello di determinare la soluzione di un suorilassamento.

Indichiamo con:α(f, T ) = max

x∈Tf(x),

il valore ottimo della funzione f sull’insieme T .Si definisce rilassamento del problema, un problema:

α(f ′, T ′) = maxx∈T ′

f ′(x)

dove:T ⊆ T ′ e f ′(x) ≥ f(x) ∀ x ∈ T.

– p. 26/48

Page 27: KNAPSACK TSP - di.unito.itlocatell/didattica/ro2/Esatti-sl.pdf · Algoritmi esatti La teoria ci dice che per problemi difficili (come il KNAPSACK o, ancora di più, il TSP) i tempi

Osservazione

Si ha che: α(f ′, T ′) ≥ α(f, T ).

Dimostrazione Sia x∗ ∈ T una soluzione ottima del problemasu T , cioè:

f(x∗) = α(f, T ),

e sia x′ ∈ T ′ una soluzione ottima del rilassamento, cioè:

f ′(x′) = α(f ′, T ′).

Si ha che x∗ ∈ T implica x∗ ∈ T ′. Inoltre, si ha:

f ′(x∗) ≥ f(x∗).

Infine, l’ottimalità di x′ implica f ′(x′) ≥ f ′(x∗) e quindi:

α(f ′, T ′) = f ′(x′) ≥ f ′(x∗) ≥ f(x∗) = α(f, T ),– p. 27/48

Page 28: KNAPSACK TSP - di.unito.itlocatell/didattica/ro2/Esatti-sl.pdf · Algoritmi esatti La teoria ci dice che per problemi difficili (come il KNAPSACK o, ancora di più, il TSP) i tempi

Un rilassamento già noto

Esistono molti possibili rilassamenti di un problema. Traquesti, uno che è già stato incontrato è il rilassamentolineare per problemi di PLI.

Sia dato il generico problema di PLI:

max cx

Ax ≤ b

x ≥ 0 x ∈ Zn.

– p. 28/48

Page 29: KNAPSACK TSP - di.unito.itlocatell/didattica/ro2/Esatti-sl.pdf · Algoritmi esatti La teoria ci dice che per problemi difficili (come il KNAPSACK o, ancora di più, il TSP) i tempi

Questo è un particolare problema di ottimizzazionecombinatoria con:

f(x) = cx T = {x ∈ Zn : Ax ≤ b, x ≥ 0}.

Il rilassamento lineare di tale problema è un particolarerilassamento con:

f ′(x) ≡ f(x) T ′ = {x ∈ Rn : Ax ≤ b, x ≥ 0},

– p. 29/48

Page 30: KNAPSACK TSP - di.unito.itlocatell/didattica/ro2/Esatti-sl.pdf · Algoritmi esatti La teoria ci dice che per problemi difficili (come il KNAPSACK o, ancora di più, il TSP) i tempi

Il rilassamento lineare coincide con questo problema di PL:

max cx

Ax ≤ b

x ≥ 0

NB: come richiesto, il rilassamento lineare, essendo unproblema di PL, è risolvibile in tempi molto più rapididell’originario problema di PLI.

– p. 30/48

Page 31: KNAPSACK TSP - di.unito.itlocatell/didattica/ro2/Esatti-sl.pdf · Algoritmi esatti La teoria ci dice che per problemi difficili (come il KNAPSACK o, ancora di più, il TSP) i tempi

Il rilassamento lagrangiano

Supponiamo che il nostro problema sia formulato comeproblema di PLI:

max cx

Ax ≤ b

Cx ≤ d

x ≥ 0 x ∈ Zn.

Quindi con:

f(x) = cx, T = {x ∈ Zn : Ax ≤ b, Cx ≤ d, x ≥ 0}.

– p. 31/48

Page 32: KNAPSACK TSP - di.unito.itlocatell/didattica/ro2/Esatti-sl.pdf · Algoritmi esatti La teoria ci dice che per problemi difficili (come il KNAPSACK o, ancora di più, il TSP) i tempi

Ipotesi

Supponiamo che i vincoli Ax ≤ b siano "facili" (ad esempio,A è TU e b è a coordinate tutte intere).

Qunidi eliminando i vincoli "difficili" Cx ≤ d resta unproblema di PLI facile da risolvere (basta risolverne ilrilassamento lineare).

Per eliminarli li spostiamo nell’obiettivo.

– p. 32/48

Page 33: KNAPSACK TSP - di.unito.itlocatell/didattica/ro2/Esatti-sl.pdf · Algoritmi esatti La teoria ci dice che per problemi difficili (come il KNAPSACK o, ancora di più, il TSP) i tempi

Continua

Dato un vettore λ ≥ 0, detto vettore dei moltiplicatori diLagrange, delle stesse dimensioni di d, il rilassamentolagrangiano è il seguente:

u(λ) = max cx + λ(d − Cx)

Ax ≤ b

x ≥ 0 x ∈ Zn.

conf ′(x) = cx + λ(d − Cx)

eT ′ = {x ∈ Zn : Ax ≤ b, x ≥ 0}.

– p. 33/48

Page 34: KNAPSACK TSP - di.unito.itlocatell/didattica/ro2/Esatti-sl.pdf · Algoritmi esatti La teoria ci dice che per problemi difficili (come il KNAPSACK o, ancora di più, il TSP) i tempi

Continua

Ovviamente, T ⊆ T ′. Inoltre, per ogni x ∈ T si ha che:

Cx ≤ d ⇒ ∀ λ ≥ 0 : λ(d− Cx) ≥ 0 ⇒ f ′(x) ≥ f(x).

Quindi sono soddisfatte le due condizioni che devonoessere soddisfatte da un rilassamento.

– p. 34/48

Page 35: KNAPSACK TSP - di.unito.itlocatell/didattica/ro2/Esatti-sl.pdf · Algoritmi esatti La teoria ci dice che per problemi difficili (come il KNAPSACK o, ancora di più, il TSP) i tempi

Infine ...

... notiamo che nel rilassamento lagrangiano rimangonosolo i vincoli "facili" e quindi esso può essere risolto intempo polinomiale, come viene richiesto per il calcolo di unupper bound.

Notiamo anche che ad ogni λ ≥ 0 distinto corisponde undiverso upper bound u(λ). Per ottenere il miglior upperbound possibile (ovvero il più piccolo), possiamo risolverequesto ulteriore problema:

minλ≥0

u(λ)

detto duale lagrangiano.

– p. 35/48

Page 36: KNAPSACK TSP - di.unito.itlocatell/didattica/ro2/Esatti-sl.pdf · Algoritmi esatti La teoria ci dice che per problemi difficili (come il KNAPSACK o, ancora di più, il TSP) i tempi

Caso particolare

Scegliendo λ = 0 abbiamo un caso particolare dirilassamento lagrangiano in cui i vincoli "difficili" delproblema vengono semplicemente eliminati.

– p. 36/48

Page 37: KNAPSACK TSP - di.unito.itlocatell/didattica/ro2/Esatti-sl.pdf · Algoritmi esatti La teoria ci dice che per problemi difficili (come il KNAPSACK o, ancora di più, il TSP) i tempi

Osservazione

In alcuni casi i vincoli "difficili" del problema sono vincoli diuguaglianza

Cx = d.

In tal caso, il rilassamento lagrangiano si definisce nellostesso modo ma i moltiplicatori di Lagrange relativi ai vincolidi uguaglianza non sono vincolati ad assumere solo valorinon negativi ma possono assumere anche valori negativi.

– p. 37/48

Page 38: KNAPSACK TSP - di.unito.itlocatell/didattica/ro2/Esatti-sl.pdf · Algoritmi esatti La teoria ci dice che per problemi difficili (come il KNAPSACK o, ancora di più, il TSP) i tempi

Lower bound

Un limite inferiore o lower bound per il valore ottimo delnostro problema è un valore LB che soddisfa la seguenteproprietà:

LB ≤ f(x∗) = maxx∈S

f(x).

– p. 38/48

Page 39: KNAPSACK TSP - di.unito.itlocatell/didattica/ro2/Esatti-sl.pdf · Algoritmi esatti La teoria ci dice che per problemi difficili (come il KNAPSACK o, ancora di più, il TSP) i tempi

Come si calcola?

Se prendiamo un qualsiasi elemento x ∈ S e valutiamo inesso la funzione f , il valore f(x) è già un lower bound, dalmomento che f(x) ≤ f(x∗).

Durante l’esecuzione di un algoritmo branch-and-bound lafunzione f viene valutata per molti elementi y1, . . . , yh ∈ S eper ognuno di essi si ha

f(yi) ≤ f(x∗) i = 1, . . . , h.

A noi interessa un valore LB il più possibile vicino alvalore ottimo del problema. Quindi, poniamo

LB = max{f(yi) : i = 1, . . . , h} ≤ f(x∗).

– p. 39/48

Page 40: KNAPSACK TSP - di.unito.itlocatell/didattica/ro2/Esatti-sl.pdf · Algoritmi esatti La teoria ci dice che per problemi difficili (come il KNAPSACK o, ancora di più, il TSP) i tempi

Ma ...

... da dove ricaviamo gli elementi di S in cui valutare lafunzione f durante l’esecuzione dell’algoritmo?

Se si ha a disposizione un’euristica è buona normavalutare f nel risultato di tale euristica;

durante lo stesso calcolo degli upper bound si possonoindividuare uno o più elementi di S e valutare in essi f .Ad esempio, se si calcola l’upper bound U(T ) tramite unrilassamento, nei casi in cui per la soluzione x′ ∈ T ′ ⊇ T

valga anche x′ ∈ T , allora si ha anche x′ ∈ S e si puòvalutare f in x′. In altri casi non si ha x′ ∈ T ma conopportune operazioni (quali arrotondamenti oapprossimazioni per eccesso/difetto di valori di variabili)si può determinare partendo da x′ 6∈ T una soluzionex′ ∈ T (un esempio di ciò lo incontreremo nell’algoritmobranch-and-bound per il problema dello zaino).

– p. 40/48

Page 41: KNAPSACK TSP - di.unito.itlocatell/didattica/ro2/Esatti-sl.pdf · Algoritmi esatti La teoria ci dice che per problemi difficili (come il KNAPSACK o, ancora di più, il TSP) i tempi

Branching

L’operazione di branching consiste nel rimpiazzare uninsieme T ⊆ S con una sua partizione T1, . . . , Tm. Si ricordiche T1, . . . , Tm formano una partizione di T se

T = ∪mi=1Ti Ti ∩ Tj = ∅ ∀ i 6= j.

La partizione può essere rappresentata tramite unastruttura ad albero: l’insieme T è un nodo dell’albero da cuipartono i rami (da qui il nome branching) verso i nodi dellapartizione, che vengono anche detti nodi successori o nodifigli del nodo T .

– p. 41/48

Page 42: KNAPSACK TSP - di.unito.itlocatell/didattica/ro2/Esatti-sl.pdf · Algoritmi esatti La teoria ci dice che per problemi difficili (come il KNAPSACK o, ancora di più, il TSP) i tempi

Cancellazione di sottinsiemi

Il punto chiave degli algoritmi di branch-and-bound è lacancellazione di sottinsiemi.Supponiamo che per un dato sottinsieme, T2 ad esempio, siabbia

U(T2) ≤ LB.

Ma questo vuol dire che

∀ x ∈ T2 f(x) ≤ U(T2) ≤ LB,

e cioè tra tutti gli elementi in T2 non ne possiamo trovarealcuno con valore di f superiore a LB, ovvero al migliorvalore di f osservato fino a questo momento. A questopunto posso cancellare il sottinsieme T2.

– p. 42/48

Page 43: KNAPSACK TSP - di.unito.itlocatell/didattica/ro2/Esatti-sl.pdf · Algoritmi esatti La teoria ci dice che per problemi difficili (come il KNAPSACK o, ancora di più, il TSP) i tempi

Cancellazione ed enumerazione implicita

La cancellazione equivale ad una enumerazione implicita: ilconfronto tra upper bound U(T2) del sottinsieme e lowerbound LB ci consente di scartare tutti gli elementi in T2

senza dover calcolare la funzione f in essi.

La regola di cancellazione appena introdotta ci fa capireperché vogliamo un valore di upper bound U(T2) il più vicinopossibile al valore ottimo di f sul sottinsieme T2 e un valoreLB il più possibile vicino al valore ottimo del problema:

in questo modo è più semplice cancellare il sottinsiemetramite la condizione U(T2) ≤ LB.

– p. 43/48

Page 44: KNAPSACK TSP - di.unito.itlocatell/didattica/ro2/Esatti-sl.pdf · Algoritmi esatti La teoria ci dice che per problemi difficili (come il KNAPSACK o, ancora di più, il TSP) i tempi

L’algoritmo branch-and-bound

Passo 1 Si ponga C = {S} e Q = ∅ (l’insieme C conterràsempre i sottinsiemi ancora da tenere in considerazionee inizialmente contiene l’intero insieme S, mentrel’insieme Q, inizialmente vuoto, conterrà tutti isottinsiemi cancellati). Si ponga k = 1. Si calcoli U(S) esi calcoli un valore per LB (eventualmente utilizzandoanche i risultati di un’euristica, se disponibile). Se nonsi dispone di soluzioni ammissibili, si ponga LB = −∞.

Passo 2 (Selezione di un sottinsieme) Si selezioni unsottinsieme T ∈ C. Tra le varie regole di selezionecitiamo qui quella di selezionare il sottinsieme T in Ccon il valore di upper bound più elevato, cioè

U(T ) = maxQ∈C

U(Q).

– p. 44/48

Page 45: KNAPSACK TSP - di.unito.itlocatell/didattica/ro2/Esatti-sl.pdf · Algoritmi esatti La teoria ci dice che per problemi difficili (come il KNAPSACK o, ancora di più, il TSP) i tempi

Passo 3 (Branching) Si sostituisca l’insieme T in C con lasua partizione in mk sottinsiemi T1, . . . , Tmk

, ovvero

C = C ∪ {T1, . . . , Tmk} \ {T}.

Passo 4 (Upper bounding) Si calcoli un upper bound U(Ti),i = 1, . . . ,mk per ogni sottinsieme della partizione.

Passo 5 (Lower bounding) Si aggiorni, eventualmente, ilvalore LB (si ricordi che il valore LB corrispondesempre al massimo dei valori di f osservati durantel’esecuzione dell’algoritmo).

– p. 45/48

Page 46: KNAPSACK TSP - di.unito.itlocatell/didattica/ro2/Esatti-sl.pdf · Algoritmi esatti La teoria ci dice che per problemi difficili (come il KNAPSACK o, ancora di più, il TSP) i tempi

Passo 6 (Cancellazione sottinsiemi) Si escludano da C tutti isottinsiemi Q per cui U(Q) ≤ LB, ovvero

C = C \ {Q : U(Q) ≤ LB}.

e si trasferiscano tali sottinsiemi in Q, cioè:

Q = Q∪ {Q : U(Q) ≤ LB}.

Passo 7 Se C = ∅: stop, il valore LB coincide con ilvalore ottimo f(x∗). Altrimenti si ponga k = k + 1 e siritorni al Passo 2.

– p. 46/48

Page 47: KNAPSACK TSP - di.unito.itlocatell/didattica/ro2/Esatti-sl.pdf · Algoritmi esatti La teoria ci dice che per problemi difficili (come il KNAPSACK o, ancora di più, il TSP) i tempi

Osservazione

Se C = ∅, LB è il valore ottimo del nostro problema (se èpari a −∞, allora S = ∅).

Questa affermazione è una conseguenza del fatto che, nelmomento in cui C = ∅, tutti i sottinsiemi cancellati fino a quelmomento, cioè la collezione Q di sottinsiemi, formano unapartizione dell’intero insieme S.

Quindi tra di essi ve ne è certamente uno, indicato conT ∗ ∈ Q, che contiene x∗. Ma poiché T ∗ è stato cancellato sidovrà avere

f(x∗) ≤ U(T ∗) ≤ LB ≤ f(x∗),

da cui segue immediatamente che LB = f(x∗).

– p. 47/48

Page 48: KNAPSACK TSP - di.unito.itlocatell/didattica/ro2/Esatti-sl.pdf · Algoritmi esatti La teoria ci dice che per problemi difficili (come il KNAPSACK o, ancora di più, il TSP) i tempi

Modifiche per problemi di minimo

ad un sottinsieme Q ⊆ S dovrà essere associato unvalore di lower bound L(Q);

al posto del valore LB avremo un valore UB con laproprietà

UB ≥ f(x∗) = minx∈S

f(x).

Il valore UB sarà il minimo tra i valori osservati dellafunzione obiettivo in punti della regione ammissibile S.

Il sottinsieme Q viene cancellato se è vero cheL(Q) ≥ UB.

Al Passo 2 della procedura di branch-and-bound siseleziona un nodo con lower bound più piccolo, ovveroun nodo T tale che

L(T ) = minQ∈C

L(Q).– p. 48/48