Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un...
Transcript of Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un...
![Page 1: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/1.jpg)
Parte II:
Ottimalità, rilassamenti e bound
![Page 2: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/2.jpg)
Sommario• Definizioni di bound primali e duali.• Rilassamento di un problema di OC.• Esempi di rilassamenti per il problema del TSP:
– Il rilassamento 1-albero.– Il rilassamento 2-abbinamento.
• Bound primali per il TSP:– Nearest Neighbor e Insertion.– Algoritmi approssimati (Double Tree, Christofides).
• Bound dal rilassamento lineare:– Il rilassamento lineare del knapsack.– Bound primali: algoritmo greedy.
• Bound per dualità.• Formulazioni di PL.• Formulazioni ideali e matrici TU.
![Page 3: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/3.jpg)
Ottimalità, rilassamenti e boundConsideriamo il seguente problema
z* = max {cTx : x ∈ X, X ⊆ {0,1}n }
dove z* è il valore della soluzione ottima x*.
Domanda: In che modo è possibile certificare che la soluzione x*è ottima?
In generale, se disponessimo di un algoritmo che genera le due sequenze di soluzioni:
zUB 1 > zUB 2 > …> zUB h > z*
zLB 1 < zLB 2 < …< zLB k < z*
potremmo fornire come criterio di arresto
zUB h - zLB k < ε (> 0)
![Page 4: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/4.jpg)
Lower (upper) bound
Bound primali
Ogni soluzione x ∈ X ammissibile è un lower (upper) bound
per un problema di massimizzazione (minimizzazione)
z*
zLB 2
zLB 1
z*
zUB 1
zUB 2
![Page 5: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/5.jpg)
Upper (lower) bound
Bound duali
Al contrario dei bound primali, trovare upper (lower) bounddi buona qualità per problemi di massimo (minimo) ètipicamente difficile.
Buoni bound duali si ottengono attraverso lo studio delle proprietà strutturali del problema di OC.
Le proprietà di un problema di OC si caratterizzano tramite:
1. Rilassamenti del problema
2. Definizione e studio di problemi duali.
![Page 6: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/6.jpg)
Rilassamento
Definizione: Il problema
(RP) zR = max {f(x) : x ∈ T, T ⊆ Rn } (zR = min {f(x) : x ∈ T, T ⊆ Rn })
si definisce rilassamento del problema
(P) z = max {cTx : x ∈ X, X ⊆ {0,1}n } (z = min {cTx : x ∈ X, X ⊆ {0,1}n })
se e solo se:
i) X ⊆ T,
ii) f(x) > cTx per ogni x ∈ X (f(x) < cTx per ogni x ∈ X)
Proprietà 1: Se RP è un rilassamento di P, allora zR > z* (zR < z*).
Proprietà 2: Se xR sol. ottima di RP è ammissibile per P allora xR = x*.
![Page 7: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/7.jpg)
Esempi di rilassamenti
Problema del commesso viaggiatore (simmetrico).
Dati: grafo G = (V, E); pesi sugli archi ce per ogni arco e ∈E.Domanda: trovare il ciclo hamiltoniano di peso minimo.
Definizione: 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
2
3
5
4
Esempio
![Page 8: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/8.jpg)
Rilassamenti per il TSPOsservazione: Un ciclo hamiltoniano è un particolare 1-albero.
1
2
3
5
4
Pertanto, il problema
Dati: grafo G = (V,E), pesi sugli archi ce per ogni arco e ∈E.
Domanda: trovare l’1-albero di peso minimo.
è un rilassamento del problema del TSP, perché l’insieme X di tutti i cicli hamiltoniani è contenuto nell’insieme T di tutti gli 1-alberi.
![Page 9: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/9.jpg)
Definizione: Dato un grafo G = (V, E), un 2-abbinamento su G è un insieme di archi M tale che ogni nodo in V è estremo di esattamente due archi in M.
Rilassamenti per il TSP
1
2
3
6
4
5
Un 2-abbinamento forma un insieme di cicli disgiunti.
![Page 10: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/10.jpg)
Rilassamenti per il TSPOsservazione: Un ciclo hamiltoniano è un particolare 2-abbinamento, difatti è un 2-abbinamento privo di sottocicli (subtour).
5
1
2
3
6
4
Pertanto, il problema
Dati: grafo G = (V,E), pesi sugli archi ce per ogni arco e ∈E
Domanda: trovare il 2-abbinamento di peso minimo
è un rilassamento del problema del TSP, perché l’insieme X di tutti i cicli hamiltoniani è contenuto nell’insieme T di tutti i 2-abbinamenti.
![Page 11: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/11.jpg)
Un esempio
-9999116
10-1199995
991-199994
9911-10993
1999910-12
19999991-1
654321
Consideriamo la seguente istanza del problema del Commesso Viaggiatore:
![Page 12: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/12.jpg)
Un esempio1
2
3
6
4
5
-9999116
10-1199995
991-199994
9911-10993
1999910-12
19999991-1
654321
![Page 13: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/13.jpg)
Un esempio1
2
3
6
4
5
-109999116
10-1199995
991-199994
9911-10993
1999910-12
19999991-1
654321
Il 2 abbinamento di peso minimo
ha valore 6
![Page 14: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/14.jpg)
Un esempio1
2
3
6
4
5
-109999116
10-1199995
991-199994
9911-10993
1999910-12
19999991-1
654321
L’1-albero di peso minimo ha
valore 15
![Page 15: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/15.jpg)
Un esempio1
2
3
6
4
5
-109999116
10-1199995
991-199994
9911-10993
1999910-12
19999991-1
654321
Il ciclo hamiltoniano di peso
minimo ha valore 24
![Page 16: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/16.jpg)
Un esempio (2)1
2
3
6
4
5
-59999116
5-10199995
9910-1099994
99110-5993
199995-12
19999991-1
654321
Il 2 abbinamento di peso minimo
ha valore 24
![Page 17: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/17.jpg)
Un esempio (2)1
2
3
6
4
5
-59999116
5-10199995
9910-1099994
99110-5993
199995-12
19999991-1
654321
L’1-albero di peso minimo
ha valore 19
![Page 18: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/18.jpg)
Un esempio (2)1
2
3
6
4
5
-59999116
5-10199995
9910-1099994
99110-5993
199995-12
19999991-1
654321
Il ciclo hamiltoniano di peso
minimo ha valore 32
![Page 19: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/19.jpg)
Ricapitolando…
Abbiamo definito per il TSP due lower bound con le seguenti proprietà:
1. Sono lower bound “combinatori”, ovvero si ottengono tramite la soluzione di un problema di OC.
2. Tutti e due i problemi la cui soluzione genera i lower bound sono “facili”, ovvero hanno complessità polinomiale.
La proprietà 2. è una proprietà chiave per ogni bound duale. Infatti, se il calcolo del bound fosse un problema NP-completosappiamo che calcolare il bound diventa almeno tanto difficile quanto risolvere il problema stesso.
Domanda: Come si possono calcolare bound primali (ovvero soluzioni ammissibili di buona qualità) per il problema del TSP?
![Page 20: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/20.jpg)
Algoritmi euristici
Definizione: Un algoritmo A si dice euristico per un problema P se restituisce una soluzione ammissibile zA che non è garantito essere la soluzione ottima.
Definizione: Sia P un problema di minimizzazione. Un algoritmo euristico si dice δ-approssimato se
1. ha complessità polinomiale, e2. per ogni istanza I di P con soluzione ottima z*(I), si ha
zA(I) / z*(I) < δ (1)
Osservazione: Se P è un problema di massimo, allora δ < 1 e la condizione (1) vale con il segno di >.
![Page 21: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/21.jpg)
Euristiche per il TSP
Sia G = (V, E) un grafo completo e sia cuv il costo di ciascun arco uv ∈ E.
Euristiche costruttive: tentano di costruire un “buon” ciclo hamiltoniano a partire da un sottociclo eventualmente vuoto.
Euristiche migliorative: a partire da una soluzione ammissibile, si tenta di migliorarla attraverso miglioramenti “locali”.
![Page 22: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/22.jpg)
Euristica Nearest NeighborInput: G = (V,E).Output: ciclo hamiltoniano T.
procedure nearest_neighbor ()
Scegli un vertice u ∈∈∈∈ V qualsiasi;
W = V \ {u}, aggiungi u alla lista T
while |W| > 0 {
scegli v ∈∈∈∈ W tale che cuv = min {cuj : j ∈∈∈∈ W}
Aggiungi {v} alla lista T
W = W \ {v}
u = v
}
![Page 23: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/23.jpg)
Esempio Nearest Neighbor
1000
2
1
2
5 4
La soluzione di valore 1005 è ottima?
![Page 24: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/24.jpg)
Esempio Nearest Neighbor
1000
2
1
2
5 4
La soluzione ottima vale 12.
Osservazione: il rapporto zA(I)/z*(I) può essere reso grande a piacere.
![Page 25: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/25.jpg)
Euristiche di inserimento
![Page 26: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/26.jpg)
Euristiche di inserimento
![Page 27: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/27.jpg)
Euristiche di inserimento
![Page 28: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/28.jpg)
Euristiche di inserimentoInput: G=(V,E).
Output: ciclo hamiltoniano T.
procedure insertion_heuristic ()
Inizializza T con un sottociclo
W = V /T;
while (|W| > 0) {
scegli un vertice u ∈∈∈∈ W;
scegli la posizione in cui inserire u in T;
inserisci u in T;
elimina u da W;
}
![Page 29: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/29.jpg)
Selezione del vertice da inserire
Definizione: Si definisce distanza di un vertice u da un ciclo T il peso del più piccolo arco che collega il vertice ad un altro qualsiasi vertice del ciclo.
T = (1, 2, .., k) ⇒ dist (u, T) = min { cuv: v ∈∈∈∈ T}.
Nearest Insertion:Inserisci il vertice u che minimizza dist (u, T), u ∉T.
Farthest Insertion:Inserisci il vertice u che massimizza dist (u, T), u ∉T.
![Page 30: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/30.jpg)
Selezione della posizione di inserimento
Osservazione: Scegliere la posizione equivale a scegliere l’arco da eliminare nel ciclo T. Un vertice può essere inserito in ogni posizione di T.
Siano T = (v1, v2, …, vn) il ciclo corrente e c(T) il costo di T e sia u il nodo da aggiungere al ciclo.
Se c(T(i)) è il costo del ciclo ottenuto da T inserendo il nodo unella posizione i-esima, il costo di inserimento è pari a
c(T(i)) - c(T).
Si seleziona la posizione che minimizza c(T(i)) - c(T).
![Page 31: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/31.jpg)
Esempio7
9
6
14
29
5
3
12
1
d = 7
d = 1
![Page 32: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/32.jpg)
7
9
6
14
29
5
3
12
1
d = 7
d = 1
2
3 1
T = {1, 2, 3}
Esempio
![Page 33: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/33.jpg)
7
9
6
14
29
5
3
12
1
2
3 1
C = 21
Esempio
![Page 34: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/34.jpg)
7
9
6
14
29
5
3
12
1
2
3 1
C = 16
Esempio
![Page 35: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/35.jpg)
7
9
6
14
29
5
3
12
1
2
4 1
C = 7
3
Esempio
![Page 36: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/36.jpg)
Altre regole di selezione del vertice
Random Insertion:Si sceglie un vertice a caso fra quelli non ancora inseriti nel ciclo.
Cheapest Insertion:Si sceglie il vertice che può essere aggiunto al ciclo con il minimo aumento di costo.
![Page 37: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/37.jpg)
Una proprietà strutturale
Si dice che la matrice delle distanze di un grafo G soddisfa la disuguaglianza triangolare se comunque prendo un triangolo e1, e2, e3 in G si ha cei + cej > cek per i ≠ j ≠ k, i, j, k∈ {1, 2, 3}
5
4
7
6
5 4
![Page 38: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/38.jpg)
Richiamo
Definizione: G = (V, E) è un grafo euleriano se e solo se il grado di ogni nodo è pari.
Se G = (V, E) è un grafo euleriano e v è un vertice di G allora èpossibile costruire un percorso che inizia e finisce in v e che attraversa ogni arco esattamente una volta.
Teorema: Sia H = (V, F) un grafo completo con la matrice dei costi che soddisfa la disuguaglianza triangolare. Sia G = (V, E) un sottografo euleriano connesso di H. H contiene un ciclo
hamiltoniano di lunghezza al più Σe∈E ce.
![Page 39: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/39.jpg)
Dimostrazione (idea)
1
2
3
4
5
Sottografo euleriano
Come posso ricavare un ciclo hamiltoniano?
Poiché vale la disuguaglianza triangolare, c25 < c23 + c35.
![Page 40: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/40.jpg)
Euristica Double Tree
1. Calcola un minimo albero ricoprente K.
2. Raddoppia gli archi di K, formando un percorso euleriano.
3. Ricava un ciclo hamiltoniano dal percorso euleriano.
Indichiamo con zHDT il valore della soluzione che si ottiene
applicando l’euristica Double Tree.
![Page 41: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/41.jpg)
Da un percorso euleriano ad un ciclo hamiltoniano
Consideriamo un percorso euleriano (v1, …, vk).
procedure obtain_hamiltonian ()
T = {v1}, i=2, v = v1while |T| < n {
if vi ∉∉∉∉ T
T = T ∪ {vi}
collega v a viv = vii ++
}
collega v a v1
T è un ciclo hamiltoniano.
![Page 42: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/42.jpg)
Esempio
1
2
3
4
5
6 711
10
9
8
Tour euleriano (5,4,5,3,2,3,1,3,5,6,5,8,9,8,10,8,7,11,7,8,5)
Tour hamiltoniano (5,4,5,3,2,3,1,3,5,6,5,8,9,8,10,8,7,11,7,8,5)
![Page 43: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/43.jpg)
Proprietà
Double tree è un algoritmo 2-approssimato per il TSP.
Dimostrazione:
1. z* > zTREE (1-albero è un rilassamento per TSP).2. Per costruzione, la lunghezza del “doppio albero” è 2 * zTREE.3. zH
DT < 2 * zTREE.
Pertanto:zH
DT / z* < 2 * zTREE / zTREE = 2.
![Page 44: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/44.jpg)
Euristica di Christofides
1. Calcola un minimo albero ricoprente K.
2. Sia V ’⊆ V l’insieme dei vertici che hanno grado dispari in K.
3. Trova il matching perfetto M di peso minimo sui nodi V’’.
4. M ∪ K è un percorso euleriano.
5. Ricava un ciclo hamiltoniano dal percorso euleriano.
Indichiamo con zHCH il valore della soluzione che si ottiene
applicando l’euristica di Christofides.
![Page 45: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/45.jpg)
Esempio
1
2
3
4
5
6 711
10
9
8
Tour euleriano (1,2,3,6,5,4,9,8,10,11,7,8,5,3,1)
Nodi di grado dispari
Tour hamiltoniano (1,2,3,6,5,4,9,8,10,11,7,8,5,3,1)
Matching perfetto
![Page 46: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/46.jpg)
L’algoritmo di Christofides per il TSP è 3/2-approssimato.
Dimostrazione:
1. z* > zTREE (1-albero è un rilassamento per TSP)
Siano {t1, t2, ..., t2k} i vertici di grado dispari del minimo albero ricoprente etichettati nell’ordine in cui si incontrano nel ciclo hamiltoniano ottimo.
Esempio:
T* = {1, 2, 3, 4, 5, 6}
Min albero ricoprente in rosso
{t1, t2, ..., t2k} = {1, 3, 5, 6}
Proprietà
1
2 3
4
56
![Page 47: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/47.jpg)
DimostrazioneSia C il ciclo formato dai vertici {t1, t2, ..., t2k} e z(C) il suo costo.Si ha che:
1. C è l’unione di 2 matching perfetti{t1t2, t3t4, ... t2k-1t2k} ∪ {t2t3, t4t5, ... t2kt1}
e quindi z(C) > 2zM, con zM valore del matching perfetto di costo minimo.
2. z(C) < z* per la disuguaglianza triangolare. Difatti ognuno degli archi di C ha un costo minore o uguale al corrispondente sottocammino in T.
Pertanto, z* > z(C) > 2 zM, ovvero zM < z*/2.Quindi:
zHCH < zTREE + zM < z* + z*/2 < 3/2 z*
![Page 48: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/48.jpg)
Il problema della bisaccia
Avete a disposizione un budget b per gli investimenti dell’anno 2008.
Ad ogni progetto è associato - un costo aj (> 0)- un guadagno atteso cj (>0).
Problema: Scegliere l’insieme di progetti in modo che sia massimizzato il guadagno atteso senza eccedere il budget b.
Se ogni progetto può essere attivato non solo per intero ma anche in parte si parla di knapsack continuo.
![Page 49: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/49.jpg)
Il knapsack continuo
Consideriamo il seguente problema
1per 10
(KRL)
st
max
1
1
, ..., njx
bxa
xc
j
n
j jj
n
j jj
=≤≤
≤∑
∑
=
=
KRL è un rilassamento del problema di knapsack 0-1.
Infatti, la collezione degli insiemi ammissibili del problema di knapsack 0-1 è contenuta nella regione ammissibile del problema di knapsack continuo.
![Page 50: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/50.jpg)
Il knapsack continuo
Come si risolve il problema di knapsack continuo?
Essendo formulato come problema di Programmazione Lineare, si può risolvere utilizzando il metodo del simplesso.
In alternativa: Supponiamo di riordinare gli elementi della bisaccia in modo che:
n
n
a
c
a
c
a
c≥≥≥ ...
2
2
1
1 ∑=
>h
j
j ba1
e sia h l’indice minimo per cui
La soluzione
è ottima per (KLR).
0,...,0,,1,...,1,1 1121 ====== +− nhhh xxfxxxx
h
h
j
j
a
ab
f
−
=
∑−
=
1
1
con
![Page 51: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/51.jpg)
DimostrazioneSupponiamo, senza perdita di generalità, che gli elementi del problema soddisfino
e sia xLP = (x1, …, xn) la soluzione ottenuta con la formula precedente. Consideriamo una soluzione x’ ottima, diversa da xLP. Ora, x’ differisce da xLP per almeno un elemento x’k con k > h. Infatti, se x’ fosse diversa da xLP soltanto perché x’h= 0, allora x’non sarebbe ottima. Ciò significa che esiste un indice i < h tale che x’i < 1 e un indice k > h tale che x’k > 0. Sia
Per costruzione, d > 0. Consideriamo la soluzione:
n
n
a
c
a
c
a
c>>> ...
2
2
1
1
{ })1(,'min iikk xaxad −=
> > >
![Page 52: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/52.jpg)
Dimostrazione
che si ottiene da x’ sostituendo x’i e x’k con:
è ammissibile. Infatti:
Inoltre, . Infatti:
Ma, allora, la soluzione x’ non è ottima (contraddizione).
)',...,,..,,...,','( 21 nki xxxxxx =
k
kka
dxx −= '
i
iia
dxx += '
x
ba
da
a
daxaxa
k
kn
ji
ijj
n
j jj =−+=∑∑ == 11'
'cxxc >
∑∑∑ ===>
−+=
n
j jj
n
jk
k
i
ijj
n
j jj xca
c
a
cdxcxc
111''
<
![Page 53: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/53.jpg)
Bound primale per il knapsackIl seguente algoritmo, applicato agli elementi della bisaccia riordinati secondo il criterio
restituisce, invece una soluzione ammissibile per il problema diknapsack:
Algorithm Greedy_knapsack ()
d = 0; z = 0;
for (j = 1; j < n; j ++) {
if (d + aj < b) then
xj = 1;
d = d + aj;
z = z + cj;
else xj = 0;
}
return z;
n
n
a
c
a
c
a
c≥≥≥ ...
2
2
1
1
![Page 54: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/54.jpg)
RicapitolandoAbbiamo definito per il knapsack 0-1 un upper bound con le seguenti proprietà:
1. L’upper bound è “continuo”, nel senso che si ottiene dalla soluzione di un problema di Programmazione Lineare e non da un problema di OC.
2. L’upper bound può essere calcolato con un algoritmo piùefficiente rispetto al metodo del simplesso e polinomiale.
Domanda: Può essere generalizzata questa tecnica di rilassamento?
Sostituendo la “stipula” x ∈ {0, 1} con il vincolo 0 < x < 1 di una formulazione di un problema di PL-{0,1}, si ottiene sempre un rilassamento denominato Rilassamento Lineare.
![Page 55: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/55.jpg)
DualitàDefinizione: Due problemi di ottimizzazione
z = max {f(x) : x ∈X}
w = min {g(y) : y ∈Y }
formano una coppia duale “debole” se f(x) < g(y) per ogni x ∈X e y ∈Y.
Se z = w si dice che formano una coppia duale “forte”.
Vantaggio fondamentale rispetto al rilassamento:Per ottenere un bound attraverso il rilassamento, il problema rilassato va risolto all’ottimo. Invece, per una coppia duale ognisoluzione ammissibile y ∈Y (x ∈X) è un upper (lower) bound per z (w).
![Page 56: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/56.jpg)
Esempi
1. Il problema di trovare un matching di massima cardinalitàe quello di trovare un node cover di minima cardinalitàformano una coppia duale debole per ogni grafo G.
2. Il problema di trovare un insieme stabile di massima cardinalità e quello di trovare un edge cover di minima cardinalità formano una coppia duale debole per ogni grafo G.
Entrambe queste coppie di problemi godono della dualitàforte se G è bipartito (Teorema di Konig e Teorema di Gallai).
![Page 57: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/57.jpg)
Formulazioni
Consideriamo il seguente problema di Knapsack 0-1
max (5x1 + 2x2)st3x1 + 4x2 < 6 x ∈ {0,1}2
Insiemi ammissibiliF = {(0, 0), (0, 1), (1, 0)}
Rappresentiamo sul piano gli insiemi ammissibili.
![Page 58: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/58.jpg)
Insiemi ammissibili
x1
x2
(0, 0)
(0, 1)
(1, 0)
(1, 1)
![Page 59: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/59.jpg)
Formulazione
Un poliedro P è una formulazione di un problema di OC se e solo se P ∩ {0,1}n = F
x1
x2
![Page 60: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/60.jpg)
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 > 0x2 > 0x1 < 1x2 < 1
![Page 61: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/61.jpg)
x1 < 1
x2 < 1
x1 > 0
x2 > 0
… è un poliedro …
3x1 + 4x2 < 6
x1
x2
![Page 62: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/62.jpg)
… ovvero, è una formulazione
x1
x2
![Page 63: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/63.jpg)
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”?
![Page 64: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/64.jpg)
Formulazione ideale“Geometricamente” la formulazione ideale coincide con il più piccolo poliedro contenente F.
Come si ottiene la formulazione ideale?
x1
x2
![Page 65: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/65.jpg)
Proprietà
Osservazione: Ogni vertice del poliedro associato alla “formulazione ideale” è in corrispondenza biunivoca con un insieme ammissibile.
Definizione: Dati due vettori x1 e x2 di Rn si definisce combinazione convessa il vettore
y = λx1 + (1 – λ) x2 con λ ∈ [0, 1]
Esempio:
x1 x2y
![Page 66: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/66.jpg)
Involucro convesso
Definizione: L’insieme di tutte le possibili combinazioni convesse di un insieme di vettori X di Rn prende il nome di involucro convesso e si indica con conv(X).
Osservazione: conv(X) è un poliedro.
Pertanto, la formulazione ideale di F è conv (F).
![Page 67: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/67.jpg)
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
0,,
1
0
1
1
0
0
0
321
321
321
2
1
≥
=++
+
+
=
λλλ
λλλ
λλλy
y
![Page 68: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/68.jpg)
… a questo punto
Attenzione: questo sistema è nello spazio Rn+m, se m sono gli insiemi ammissibili.
Quindi per ottenere la formulazione ideale è necessario “proiettare” il sistema nello spazio Rn.
A questo scopo è possibile utilizzare l’algoritmo di Fourier-Motzkin che consente di “eliminare” le variabili λ.
![Page 69: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/69.jpg)
Punto della situazioneDato 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?
![Page 70: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/70.jpg)
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 equindi
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.
![Page 71: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/71.jpg)
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 …
![Page 72: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/72.jpg)
EsempioConsideriamo 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.
n
jk
ik
x
xx
xx
bax
xc
}1,0{
st
maxT
∈
≤
≤
≤
n
jik
x
xxx
bax
xc
}1,0{
2
st
max T
∈
+≤
≤
![Page 73: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/73.jpg)
Esempio (II)Il rilassamento lineare della Formulazione 1 è migliore di quello della Formulazione 2.Infatti, il vincolo
è implicato dai vincoli
jk
ik
xx
xx
≤
≤
jik xxx +≤2
Quindi, P1 ⊆ P2.
![Page 74: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/74.jpg)
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?
![Page 75: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/75.jpg)
Il caso “fortunato”Consideriamo il seguente problema di PL in forma standard, in cui A è una matrice intera e b è un vettore intero:
min cTx
Ax = bx > 0
con rg (A) = m < n.
Se il problema ammette soluzione ottima finita, allora il metododel simplesso restituisce la soluzione ottima in corrispondenza di una SBA del tipo:
=
=
0
-1
* bB
x
xx
N
B
![Page 76: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/76.jpg)
Il caso “fortunato” (II)
Osservazione: Se la base ottima B ha determinante det(B )= + 1, allora RL ha una soluzione intera.
Infatti:B–1 = Ba/det(B), dove Ba è la matrice aggiunta. Gli elementi di Ba sono tutti prodotti di termini di B. Pertanto Ba è una matrice intera e, poiché det(B)=+1, B–1 è ancora intera.
Pertanto la soluzione di base xB = B–1b è intera per ogni intero b.
![Page 77: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/77.jpg)
Matrici unimodulari
Definizione: Una matrice A intera m × n (m < n) si dice unimodulare se ogni sua sottomatrice B di dimensioni m × mha 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} è intero.
![Page 78: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/78.jpg)
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:
![Page 79: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/79.jpg)
Matrici totalmente unimodulari
Definizione: Una matrice A si dice TOTALMENTE UNIMODULARE (TU) se ogni sottomatrice quadrata di A ha determinante {0, +1, -1}.
Proprietà delle matrici TU
Una matrice A è TU se e solo se
i) la matrice trasposta AT è TU.
ii) la matrice (A, I) è TU.
![Page 80: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/80.jpg)
Teorema
Teorema (Hoffman-Kruskal [1956]):
Sia A una matrice intera. Il poliedro P definito da Ax ≥ b, x ≥0 è intero per ogni vettore intero b se e solo se A è TU.
Attenzione: Il teorema non vale se P = {x ∈ Rn; Ax = b}. Infatti, in questo caso P può essere intero ma A può non essere TU.
![Page 81: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/81.jpg)
Condizioni per la TU
Osservazione: Se A è TU, allora aij ∈{-1, 0, 1}.
Teorema: A è TU 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
∑∑ ∈∈=
21 Mi ijMi ij aa
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 ∈ M1 oppure i,k ∈ M2.
![Page 82: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/82.jpg)
Dimostrazione
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 n×n.
• Se B contiene una colonna nulla, det(B) = 0.
![Page 83: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/83.jpg)
• Se ogni colonna di B contiene due elementi ≠ 0, dall’ipotesi si ottiene
Questo implica che det(B) = 0.
∑∑ ∈∈=
21 Mi ijMi ij aa
• 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
![Page 84: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/84.jpg)
Esempi di matrici TUG (N, A) grafo diretto
a
b
c
ei
g
d
f
h
l
1
2 3
4 5
6
-1-1000000006
10-1-100-10005
00011001-104
0110-1-100003
0000011-10-12
00000000111
lihgfedcba
A Matrice di incidenza
nodi-archi
M1= M, M2 = ∅
![Page 85: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/85.jpg)
Formulazione del problema di cammino minimo
Dati: G (N, A) grafo diretto, due nodi (s, t), vettore c ∈R+|A|
||
)()(
)()(
)()(
),(
}1,0{
per 1
},{\ ogniper 0
per 1
st
min
A
ik kiik ik
ik kiik ik
ik kiik ik
Aji ijij
x
tixx
tsVixx
sixx
xcz
∈
=−=−
∈=−
==−
=
∑∑
∑∑
∑∑
∑
−+
−+
−+
∂∈∂∈
∂∈∂∈
∂∈∂∈
∈
![Page 86: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/86.jpg)
Cammino minimo
||
),(
}1,0{
1
0
1
0
1
st
min
A
Aji ijij
x
x
x
Ax
xcz
∈
≤
≥
−
=
= ∑ ∈
La stipula di interezza può essere
rimossa in quanto A è TU
![Page 87: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/87.jpg)
Matrice di incidenza di grafi bipartiti
101005
010114
110003
001102
000011
edcba1
2
3
4
5
M2
M1
a
b
c
d e
Esercizio: Quali problemi di OC noti ammettono una formulazione avente come matrice dei coefficienti la matrice di incidenza di un grafo bipartito?
![Page 88: Parte II: Ottimalità, rilassamenti e bound · Osservazione : Un ciclo hamiltoniano è un particolare 1-albero. 1 2 3 5 4 Pertanto, il problema Dati : grafo G = ( V,E), pesi sugli](https://reader034.fdocuments.net/reader034/viewer/2022042321/5f0b49ce7e708231d42fc6af/html5/thumbnails/88.jpg)
Matrici di incidenza
Domanda:Tutte le matrici di incidenza sono TU?
NO!!!
1
2
3
1013
1102
0111
cbaa
b c