Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
Ricerca Operativa 2
Ricerca Operativa 2 – p. 1/65
Introduzione
In questo corso ci occuperemo di problemi diottimizzazione.
Ricerca Operativa 2 – p. 2/65
Introduzione
In questo corso ci occuperemo di problemi diottimizzazione.
Tali problemi sono tipicamente raggruppati in classi ognunadelle quali è formata da più istanze.
Ricerca Operativa 2 – p. 2/65
Classi di problemi
Una classe di problemi di ottimizzazione è formata da uninsieme I di istanze. Ogni istanza I ∈ I è rappresentata dauna coppia (fI , SI) dove
fI : SI → R
è detta funzione obiettivo e SI è detta regione ammissibile.
Ricerca Operativa 2 – p. 3/65
Problemi di massimo
Se il problema è di massimo, allora una sua istanza I sirappresenta nel modo seguente
maxx∈SI
fI(x)
e risolvere l’istanza vuol dire trovare un x∗ ∈ SI tale che
fI(x∗) ≥ fI(x) ∀ x ∈ SI .
Ricerca Operativa 2 – p. 4/65
Problemi di minimo
Se il problema è di minimo, allora una sua istanza I sirappresenta nel modo seguente
minx∈SI
fI(x)
e risolvere l’istanza vuol dire trovare un x∗ ∈ SI tale che
fI(x∗) ≤ fI(x) ∀ x ∈ SI .
Ricerca Operativa 2 – p. 5/65
Ottimo e valore ottimo
In entrambi i casi il punto x∗ viene chiamato ottimo (globale)dell’istanza I del problema, mentre fI(x∗) viene detto valoreottimo dell’istanza.
Ricerca Operativa 2 – p. 6/65
Classi già note
Problemi di Programmazione Lineare (PL):
ogni istanza I è definita dal vettore cI dei coefficienti dellevariabili nell’obiettivo, dal vettore bI dei termini noti e dallamatrice dei vincoli AI :
max cIx
AIx ≤ bIx ≥ 0
Ricerca Operativa 2 – p. 7/65
Classi già note
Problemi di Programmazione Lineare (PL):
ogni istanza I è definita dal vettore cI dei coefficienti dellevariabili nell’obiettivo, dal vettore bI dei termini noti e dallamatrice dei vincoli AI :
max cIx
AIx ≤ bIx ≥ 0
In tal caso:
fI(x) = cIx, SI = {x ∈ Rn : AIx ≤ bI , x ≥ 0}.
Ricerca Operativa 2 – p. 7/65
Esempio
max 2x1 + 3x2 + 4x3
x1 − x2 + x3 ≤ 5
−x1 + 2x2 + 3x3 ≤ 2
x1, x2, x3 ≥ 0
Ricerca Operativa 2 – p. 8/65
Esempio
max 2x1 + 3x2 + 4x3
x1 − x2 + x3 ≤ 5
−x1 + 2x2 + 3x3 ≤ 2
x1, x2, x3 ≥ 0
cI = (2 3 4)
Ricerca Operativa 2 – p. 8/65
Esempio
max 2x1 + 3x2 + 4x3
x1 − x2 + x3 ≤ 5
−x1 + 2x2 + 3x3 ≤ 2
x1, x2, x3 ≥ 0
cI = (2 3 4)
bI = (5 2)
Ricerca Operativa 2 – p. 8/65
Esempio
max 2x1 + 3x2 + 4x3
x1 − x2 + x3 ≤ 5
−x1 + 2x2 + 3x3 ≤ 2
x1, x2, x3 ≥ 0
cI = (2 3 4)
bI = (5 2)
AI =
[
1 −1 1
−1 2 3
]
Ricerca Operativa 2 – p. 8/65
Classi già note: continua
Problemi di Programmazione Lineare Intera (PLI):
max cIx
AIx ≤ bIx ≥ 0 x ∈ Zn
Ricerca Operativa 2 – p. 9/65
Classi già note: continua
Problemi di Programmazione Lineare Intera (PLI):
max cIx
AIx ≤ bIx ≥ 0 x ∈ Zn
In tal caso:
fI(x) = cIx, SI = {x ∈ Zn : AIx ≤ bI , x ≥ 0}.
Ricerca Operativa 2 – p. 9/65
Classificazione
All’interno delle classi dei problemi di ottimizzazionepossiamo riconoscere due grandi categorie.
Ottimizzazione Combinatoria: in ogni istanza I la regioneammissibile SI contiene un numero finito o un’infinitànumerabile di punti.
Ricerca Operativa 2 – p. 10/65
Classificazione
All’interno delle classi dei problemi di ottimizzazionepossiamo riconoscere due grandi categorie.
Ottimizzazione Combinatoria: in ogni istanza I la regioneammissibile SI contiene un numero finito o un’infinitànumerabile di punti.
Ottimizzazione Continua: la regione ammissibile SI puòcontenere un’infinità non numerabile di punti.
Ricerca Operativa 2 – p. 10/65
Esempi
Alla categoria dei problemi di ottimizzazionecombinatoria appartiene la classe dei problemi di PLI;
Ricerca Operativa 2 – p. 11/65
Esempi
Alla categoria dei problemi di ottimizzazionecombinatoria appartiene la classe dei problemi di PLI;
alla categoria dei problemi di ottimizzazione continuaappartiene la classe dei problemi di PL.
Ricerca Operativa 2 – p. 11/65
Esempi
Alla categoria dei problemi di ottimizzazionecombinatoria appartiene la classe dei problemi di PLI;
alla categoria dei problemi di ottimizzazione continuaappartiene la classe dei problemi di PL.
In questo corso ci occuperemo prevalentemente di problemidi ottimizzazione combinatoria (con regione ammissibile disolito costituita da un numero finito di elementi) madedicheremo una parte anche all’ottimizzazione continua.
Ricerca Operativa 2 – p. 11/65
Cenni di complessità
Come primo passo vogliamo associare ad ogni problema diottimizzazione un grado di difficoltà.
Ricerca Operativa 2 – p. 12/65
Cenni di complessità
Come primo passo vogliamo associare ad ogni problema diottimizzazione un grado di difficoltà.
Ci renderemo conto che esistono delle notevoli differenzenella difficoltà di risoluzione dei diversi problemi diottimizzazione.
Ricerca Operativa 2 – p. 12/65
Cenni di complessità
Come primo passo vogliamo associare ad ogni problema diottimizzazione un grado di difficoltà.
Ci renderemo conto che esistono delle notevoli differenzenella difficoltà di risoluzione dei diversi problemi diottimizzazione.
Tali differenze vengono formalizzate nella teoria dellacomplessità.
Ricerca Operativa 2 – p. 12/65
Cenni di complessità
Come primo passo vogliamo associare ad ogni problema diottimizzazione un grado di difficoltà.
Ci renderemo conto che esistono delle notevoli differenzenella difficoltà di risoluzione dei diversi problemi diottimizzazione.
Tali differenze vengono formalizzate nella teoria dellacomplessità.
Per cominciare introdurremo come esempi di diversi gradidi difficoltà tre problemi di ottimizzazione.
Ricerca Operativa 2 – p. 12/65
Alberi
Definizione Sia dato un grafo G = (V,A) con | V |= n dove| V | denota la cardinalità (il numero di elementi)dell’insieme V . Si dice che G è un albero se soddisfa leseguenti condizioni (equivalenti tra loro)
1. G è privo di cicli e connesso (ovvero esiste un camminotra ogni coppia di nodi);
2. G è privo di cicli e | A |= n − 1;
3. G è connesso e | A |= n − 1;
4. esiste un unico cammino che congiunge ogni coppia dinodi.
Ricerca Operativa 2 – p. 13/65
Alberi di supporto
Definizione Sia dato un grafo generico G = (V,A). Sidefinisce albero di supporto di G un sottografo T = (V,AT )di G (quindi con AT ⊆ A) che è un albero.
Si noti che un albero di supporto di G deve contenere tutti inodi di G e che in virtù del punto 2. (o del punto 3.) delladefinizione di albero, si dovrà avere | AT |=| V | −1.
Ricerca Operativa 2 – p. 14/65
Alberi di supporto
Definizione Sia dato un grafo generico G = (V,A). Sidefinisce albero di supporto di G un sottografo T = (V,AT )di G (quindi con AT ⊆ A) che è un albero.
Si noti che un albero di supporto di G deve contenere tutti inodi di G e che in virtù del punto 2. (o del punto 3.) delladefinizione di albero, si dovrà avere | AT |=| V | −1.
Ad ogni arco e ∈ A del grafo associamo un peso w(e):
w : A → R
Ricerca Operativa 2 – p. 14/65
Esempio
G = (V,A) V = {a, b, c, d}
A = {(a, b); (a, c); (a, d); (b, c); (b, d); (c, d)}
e w(e)
(a, b) 3
(a, c) 6
(a, d) 2
(b, c) 5
(b, d) 4
(c, d) 8
Ricerca Operativa 2 – p. 15/65
Albero di supporto a peso minimo
Regione ammissibile S: è composta da tutti i possibili alberidi supporto del grafo G, che sono in numero finito.
Ricerca Operativa 2 – p. 16/65
Albero di supporto a peso minimo
Regione ammissibile S: è composta da tutti i possibili alberidi supporto del grafo G, che sono in numero finito.
Funzione obiettivo f : per ogni albero di supportoT = (V,AT ) ∈ S è definita come somma dei pesi degli archidell’albero, cioè
f(T ) =∑
e∈AT
w(e).
Ricerca Operativa 2 – p. 16/65
Albero di supporto a peso minimo
Regione ammissibile S: è composta da tutti i possibili alberidi supporto del grafo G, che sono in numero finito.
Funzione obiettivo f : per ogni albero di supportoT = (V,AT ) ∈ S è definita come somma dei pesi degli archidell’albero, cioè
f(T ) =∑
e∈AT
w(e).
Il problema dell’albero di supporto a peso minimo oMinimum Spanning Tree (abbreviato nel seguito con MST )consiste nel determinare un albero di supportoT ∗ = (V,AT ∗) tale che
f(T ∗) ≤ f(T ) ∀ T ∈ S
Ricerca Operativa 2 – p. 16/65
Esempio
T1 = (V,AT1) AT1 = {(a, b); (a, d); (c, d)}
f(T1) = 3 + 2 + 8 = 13
Ricerca Operativa 2 – p. 17/65
Esempio
T1 = (V,AT1) AT1 = {(a, b); (a, d); (c, d)}
f(T1) = 3 + 2 + 8 = 13
T2 = (V,AT2) AT2 = {(a, c); (b, d); (c, d)}
f(T2) = 6 + 4 + 8 = 18
Ricerca Operativa 2 – p. 17/65
Il problema dello zaino
Sia dato un insieme {1, . . . , n} di oggetti. Ad ogni oggetto iè associato:
un peso pi > 0;
un valore vi > 0.
Si ha inoltre a disposizione uno zaino con capacità (pesomassimo trasportabile) pari a b > 0.
Ricerca Operativa 2 – p. 18/65
Regione ammissibile
È formata da tutti i sottinsiemi di oggetti il cui pesocomplessivo non supera la capacità dello zaino e quindi
S = {N ⊆ {1, . . . , n} :∑
i∈N
pi ≤ b}.
Ricerca Operativa 2 – p. 19/65
Regione ammissibile
È formata da tutti i sottinsiemi di oggetti il cui pesocomplessivo non supera la capacità dello zaino e quindi
S = {N ⊆ {1, . . . , n} :∑
i∈N
pi ≤ b}.
Si noti che S è un insieme finito.
Ricerca Operativa 2 – p. 19/65
Regione ammissibile
È formata da tutti i sottinsiemi di oggetti il cui pesocomplessivo non supera la capacità dello zaino e quindi
S = {N ⊆ {1, . . . , n} :∑
i∈N
pi ≤ b}.
Si noti che S è un insieme finito. Infatti
| S |≤ 2n.
Ricerca Operativa 2 – p. 19/65
Funzione obiettivof
La funzione obiettivo è definita dalla somma dei valori deglioggetti nel sottinsieme, ovvero
f(N) =∑
i∈N
vi.
Ricerca Operativa 2 – p. 20/65
Funzione obiettivof
La funzione obiettivo è definita dalla somma dei valori deglioggetti nel sottinsieme, ovvero
f(N) =∑
i∈N
vi.
Il problema dello zaino, indicato nel seguito come problemaKNAPSACK, è un problema di massimo e consiste neldeterminare un sottinsieme N∗ ∈ S tale che
f(N∗) ≥ f(N) ∀ N ∈ S.
Ricerca Operativa 2 – p. 20/65
Esempio
Si consideri l’insieme {1, 2, 3, 4} di oggetti con i seguentivalori e pesi
v1 = 8 v2 = 6 v3 = 10 v4 = 1
p1 = 7 p2 = 7 p3 = 13 p4 = 4
Si supponga inoltre che la capacità dello zaino sia b = 16.
Ricerca Operativa 2 – p. 21/65
Esempio
Si consideri l’insieme {1, 2, 3, 4} di oggetti con i seguentivalori e pesi
v1 = 8 v2 = 6 v3 = 10 v4 = 1
p1 = 7 p2 = 7 p3 = 13 p4 = 4
Si supponga inoltre che la capacità dello zaino sia b = 16.Si ha che N1 = {1, 4} ∈ S
Ricerca Operativa 2 – p. 21/65
Esempio
Si consideri l’insieme {1, 2, 3, 4} di oggetti con i seguentivalori e pesi
v1 = 8 v2 = 6 v3 = 10 v4 = 1
p1 = 7 p2 = 7 p3 = 13 p4 = 4
Si supponga inoltre che la capacità dello zaino sia b = 16.Si ha che N1 = {1, 4} ∈ S con f(N1) = 9,
Ricerca Operativa 2 – p. 21/65
Esempio
Si consideri l’insieme {1, 2, 3, 4} di oggetti con i seguentivalori e pesi
v1 = 8 v2 = 6 v3 = 10 v4 = 1
p1 = 7 p2 = 7 p3 = 13 p4 = 4
Si supponga inoltre che la capacità dello zaino sia b = 16.Si ha che N1 = {1, 4} ∈ S con f(N1) = 9, N2 = {2, 4} ∈ S
Ricerca Operativa 2 – p. 21/65
Esempio
Si consideri l’insieme {1, 2, 3, 4} di oggetti con i seguentivalori e pesi
v1 = 8 v2 = 6 v3 = 10 v4 = 1
p1 = 7 p2 = 7 p3 = 13 p4 = 4
Si supponga inoltre che la capacità dello zaino sia b = 16.Si ha che N1 = {1, 4} ∈ S con f(N1) = 9, N2 = {2, 4} ∈ Scon f(N2) = 7,
Ricerca Operativa 2 – p. 21/65
Esempio
Si consideri l’insieme {1, 2, 3, 4} di oggetti con i seguentivalori e pesi
v1 = 8 v2 = 6 v3 = 10 v4 = 1
p1 = 7 p2 = 7 p3 = 13 p4 = 4
Si supponga inoltre che la capacità dello zaino sia b = 16.Si ha che N1 = {1, 4} ∈ S con f(N1) = 9, N2 = {2, 4} ∈ Scon f(N2) = 7, N3 = {1, 3} 6∈ S.
Ricerca Operativa 2 – p. 21/65
Nota bene
La classe di problemi KNAPSACK prende il nome da unasua particolare applicazione (mettere oggetti nello zaino)ma naturalmente questa non è l’unica applicazione in cui cisi trova a risolvere problemi in tale classe.
Ricerca Operativa 2 – p. 22/65
Circuito hamiltoniano
Definizione Dato un grafo orientato G = (V,A), un circuitohamiltoniano è un sottografo C = (V,AC) i cui archi formanoun cammino orientato all’interno del grafo che partendo daun nodo dello stesso tocca tutti gli altri nodi una ed una solavolta e ritorna infine al nodo di partenza.
NB: | AC |=| V |.
Ricerca Operativa 2 – p. 23/65
Regione ammissibileS
È costituita da tutti i possibili circuiti hamiltoniani del grafo.Se il grafo è completo (cioè esiste un arco orientato tra ognicoppia ordinata di nodi) il numero di tali circuiti è pari a
(n − 1)!
dove n =| V | è il numero di nodi.
Ricerca Operativa 2 – p. 24/65
Funzione obiettivof
Ad ogni arco (i, j) ∈ A è associato un valore dij cherappresenta la "distanza" da percorrere lungo tale arco.
Ricerca Operativa 2 – p. 25/65
Funzione obiettivof
Ad ogni arco (i, j) ∈ A è associato un valore dij cherappresenta la "distanza" da percorrere lungo tale arco.
Dato il circuito hamiltoniano C = (V,AC), f associa a C lasomma delle "distanze" degli n archi attraversati dalcircuito, cioè
f(C) =∑
(i,j)∈AC
dij
e rappresenta quindi la "distanza" complessiva percorsalungo il circuito.
Ricerca Operativa 2 – p. 25/65
Esempio
Grafo completo con insieme di nodi V = {a, b, c, d}.
Distanze dij:
a b c d
a − 4 6 2
b 5 − 7 9
c 3 8 − 2
d 5 6 9 −
Ricerca Operativa 2 – p. 26/65
Esempio - continua
C1 = (V,AC1) AC1 = {(a, b); (b, c); (c, d); (d, a)}
Ricerca Operativa 2 – p. 27/65
Esempio - continua
C1 = (V,AC1) AC1 = {(a, b); (b, c); (c, d); (d, a)}
Circuito hamiltoniano a → b → c → d → a.
Ricerca Operativa 2 – p. 27/65
Esempio - continua
C1 = (V,AC1) AC1 = {(a, b); (b, c); (c, d); (d, a)}
Circuito hamiltoniano a → b → c → d → a.
f(C1) = 4 + 7 + 2 + 5 = 18
Ricerca Operativa 2 – p. 27/65
Esempio - continua
C1 = (V,AC1) AC1 = {(a, b); (b, c); (c, d); (d, a)}
Circuito hamiltoniano a → b → c → d → a.
f(C1) = 4 + 7 + 2 + 5 = 18
C2 = (V,AC2) AC2 = {(a, c); (c, d); (d, b); (b, a)}
Ricerca Operativa 2 – p. 27/65
Esempio - continua
C1 = (V,AC1) AC1 = {(a, b); (b, c); (c, d); (d, a)}
Circuito hamiltoniano a → b → c → d → a.
f(C1) = 4 + 7 + 2 + 5 = 18
C2 = (V,AC2) AC2 = {(a, c); (c, d); (d, b); (b, a)}
Circuito hamiltoniano a → c → d → b → a.
Ricerca Operativa 2 – p. 27/65
Esempio - continua
C1 = (V,AC1) AC1 = {(a, b); (b, c); (c, d); (d, a)}
Circuito hamiltoniano a → b → c → d → a.
f(C1) = 4 + 7 + 2 + 5 = 18
C2 = (V,AC2) AC2 = {(a, c); (c, d); (d, b); (b, a)}
Circuito hamiltoniano a → c → d → b → a.
f(C2) = 6 + 2 + 6 + 5 = 19
Ricerca Operativa 2 – p. 27/65
Il problema del commesso viaggiatore ...
... o Travelling Salesman Problem (abbreviato con TSP nelseguito) è un problema di minimo in cui si cerca un circuitohamiltoniano C∗ = (V,AC∗) con "distanza" complessivaminima, cioè
f(C∗) ≤ f(C) ∀ C ∈ S.
Ricerca Operativa 2 – p. 28/65
Il problema TSP simmetrico
Problema TSP in cui:
∀ (i, j) e (j, i) ∈ A : dij = dji.
Si può rappresentare con un grafo non orientato con unsolo arco non orientato tra ogni coppia di nodi e il numerototale di circuiti hamiltoniani è dimezzato rispetto al casoasimmettrico.
Ricerca Operativa 2 – p. 29/65
Nota bene
Come per la classe di problemi KNAPSACK, anche laclasse TSP prende il nome da una sua particolareapplicazione ma anche in questo caso questa non è l’unicaapplicazione in cui ci si trova a risolvere problemi in taleclasse.
Ricerca Operativa 2 – p. 30/65
Enumerazione completa
Valuta la funzione f per ogni elemento in S e restituiscil’elemento con valore di f minimo (o massimo se ilproblema è di massimo).
Ricerca Operativa 2 – p. 31/65
Enumerazione completa
Valuta la funzione f per ogni elemento in S e restituiscil’elemento con valore di f minimo (o massimo se ilproblema è di massimo).
Tutte le istanze dei tre problemi descritti in precedenzasono risolvibili in modo esatto con questa procedura, dettadi enumerazione completa, poiché le regioni ammissibilisono sempre costituite da un numero finito di elementi.
Ricerca Operativa 2 – p. 31/65
Ma ...
... una semplice osservazione metterà in luce i limiti diquesto approccio.
Ricerca Operativa 2 – p. 32/65
Ma ...
... una semplice osservazione metterà in luce i limiti diquesto approccio.
Problema TSP su un grafo completo con numero di nodin = 22 → numero di circuiti hamiltoniani pari a(n − 1)! = 21! > 1019.
Ricerca Operativa 2 – p. 32/65
Ma ...
... una semplice osservazione metterà in luce i limiti diquesto approccio.
Problema TSP su un grafo completo con numero di nodin = 22 → numero di circuiti hamiltoniani pari a(n − 1)! = 21! > 1019.
Ipotesi: la valutazione della funzione obiettivo per unsingolo circuito hamiltoniano richieda un nanosecondo(10−9 secondi). Quindi
Ricerca Operativa 2 – p. 32/65
Ma ...
... una semplice osservazione metterà in luce i limiti diquesto approccio.
Problema TSP su un grafo completo con numero di nodin = 22 → numero di circuiti hamiltoniani pari a(n − 1)! = 21! > 1019.
Ipotesi: la valutazione della funzione obiettivo per unsingolo circuito hamiltoniano richieda un nanosecondo(10−9 secondi). Quindi la valutazione di tutti i circuitihamiltoniani richiede più di 1010 secondi
Ricerca Operativa 2 – p. 32/65
Ma ...
... una semplice osservazione metterà in luce i limiti diquesto approccio.
Problema TSP su un grafo completo con numero di nodin = 22 → numero di circuiti hamiltoniani pari a(n − 1)! = 21! > 1019.
Ipotesi: la valutazione della funzione obiettivo per unsingolo circuito hamiltoniano richieda un nanosecondo(10−9 secondi). Quindi la valutazione di tutti i circuitihamiltoniani richiede più di 1010 secondi > 200 anni!
Ricerca Operativa 2 – p. 32/65
Da un punto di vista pratico ...
... si parlerà di problema risolvibile con una data procedurasolo nel caso in cui la procedura restituisca una soluzionein tempi ragionevoli. Ciò rende la procedura dienumerazione completa accettabile solo per istanze diproblemi di dimensioni limitate (quindi per grafi con pochinodi per i problemi MST e TSP e per istanze con pochioggetti per il problema KNAPSACK).
Ricerca Operativa 2 – p. 33/65
Domanda
Esistono altre procedure che consentono di risolvere intempi ragionevoli istanze dei tre problemi visti condimensioni molto più elevate?
Ricerca Operativa 2 – p. 34/65
Domanda
Esistono altre procedure che consentono di risolvere intempi ragionevoli istanze dei tre problemi visti condimensioni molto più elevate?
Risposta: dipende dal problema.
Ricerca Operativa 2 – p. 34/65
Domanda
Esistono altre procedure che consentono di risolvere intempi ragionevoli istanze dei tre problemi visti condimensioni molto più elevate?
Risposta: dipende dal problema.
È facile trovare procedure più efficienti dell’enumerazionecompleta ma mentre per uno dei problemi (il problemaMST ) si possono risolvere in tempi ragionevoli istanze digrandi dimensioni, per il problema KNAPSACK e, ancorpiù, per il problema TSP può essere difficile risolvere ancheistanze di dimensioni non troppo elevate. Tutto ciò ha unaformulazione ben precisa nella teoria della complessità,della quale si daranno brevi cenni di seguito.
Ricerca Operativa 2 – p. 34/65
Complessità
Dimensione dim(I) = quantità di memoria necessaria permemorizzare (in codifica binaria) l’istanza I.
Ricerca Operativa 2 – p. 35/65
Complessità
Dimensione dim(I) = quantità di memoria necessaria permemorizzare (in codifica binaria) l’istanza I.
Procedura di risoluzione o algoritmo A per il problema.
Ricerca Operativa 2 – p. 35/65
Complessità
Dimensione dim(I) = quantità di memoria necessaria permemorizzare (in codifica binaria) l’istanza I.
Procedura di risoluzione o algoritmo A per il problema.
numopA(I)= numero di operazioni elementari eseguite da Aper risolvere I.
Ricerca Operativa 2 – p. 35/65
Analisi worst case
L’analisi worst case definisce il tempo tA(k) necessarioall’algoritmo A per risolvere istanze di dimensione k come ilmassimo tra tutti i tempi di esecuzione di istanze didimensione k, cioè
tA(k) = maxI: dim(I)=k
numopA(I).
Ricerca Operativa 2 – p. 36/65
Continua
Tipicamente non si conosce l’espressione analitica dellafunzione tA(k) ma se ne conosce l’ordine di grandezza. Sidice che la funzione tA(k) = O(g(k)), ovvero che tA(k) èdell’ordine di grandezza della funzione g(k), se esiste unacostante u > 0 tale che
tA(k) ≤ ug(k).
Ricerca Operativa 2 – p. 37/65
Diverse possibili funzionig
g(k) k = 10 k = 20 k = 30 k = 40 k = 50
log2(k) 3.32 4.32 4.90 5.32 5.64k 10 20 30 40 50k2 100 400 900 1600 2500k3 1000 8000 27000 64000 1250002k 1024 > 106 > 109 > 1012 > 1015
k! 3628800 > 1018 > 1032 > 1047 > 1064
Ricerca Operativa 2 – p. 38/65
Complessità degli algoritmi
Un algoritmo per il quale tA(k) fosse dell’ordine digrandezza di 2k oppure k! si dice che ha complessitàesponenziale.
Ricerca Operativa 2 – p. 39/65
Complessità degli algoritmi
Un algoritmo per il quale tA(k) fosse dell’ordine digrandezza di 2k oppure k! si dice che ha complessitàesponenziale. È evidente che un tale algoritmo consente dirisolvere in tempi ragionevoli solo istanze di dimensionilimitate.
Ricerca Operativa 2 – p. 39/65
Complessità degli algoritmi
Un algoritmo per il quale tA(k) fosse dell’ordine digrandezza di 2k oppure k! si dice che ha complessitàesponenziale. È evidente che un tale algoritmo consente dirisolvere in tempi ragionevoli solo istanze di dimensionilimitate.
Per questa ragione si cercano per i problemi algoritmi dirisoluzione con complessità polinomiale, in cui cioè lafunzione tA è dell’ordine di grandezza di un polinomio kp
per un qualche esponente p.
Ricerca Operativa 2 – p. 39/65
Continua
Tanto maggiore è l’esponente p del polinomio, quanto piùrapidamente cresce il numero di operazioni dell’algoritmo alcrescere di k e quindi quanto più piccole sono le dimensionidei problemi che l’algoritmo è in grado di risolvere in tempiragionevoli (già per p = 4 la crescita è piuttosto rapida).Tuttavia la crescita polinomiale è sempre preferibile ad unaesponenziale.
Ricerca Operativa 2 – p. 40/65
Domanda
Data una classe di problemi di ottimizzazione combinatoria,possiamo sempre trovare un algoritmo con complessitàpolinomiale che ne risolva le istanze?
Ricerca Operativa 2 – p. 41/65
Domanda
Data una classe di problemi di ottimizzazione combinatoria,possiamo sempre trovare un algoritmo con complessitàpolinomiale che ne risolva le istanze?
Risposta: forse, ma è molto improbabile.
Ricerca Operativa 2 – p. 41/65
La classeP
Definizione Un problema di ottimizzazione appartiene allaclasse P se esiste almeno un algoritmo di complessitàpolinomiale che lo risolve.
Ricerca Operativa 2 – p. 42/65
La classeP
Definizione Un problema di ottimizzazione appartiene allaclasse P se esiste almeno un algoritmo di complessitàpolinomiale che lo risolve.
I problemi di PL appartengono alla classe P ma l’algoritmodel simplesso non ha complessità polinomiale! Esistonoaltri algoritmi che risolvono i problemi di PL e che hannocomplessità polinomiale.
Ricerca Operativa 2 – p. 42/65
La classeP
Definizione Un problema di ottimizzazione appartiene allaclasse P se esiste almeno un algoritmo di complessitàpolinomiale che lo risolve.
I problemi di PL appartengono alla classe P ma l’algoritmodel simplesso non ha complessità polinomiale! Esistonoaltri algoritmi che risolvono i problemi di PL e che hannocomplessità polinomiale.
Non è invece noto, ma è ritenuto improbabile, se i problemidi PLI appartengano alla classe P .
Ricerca Operativa 2 – p. 42/65
Algoritmo greedy per il problema MST
Passo 1 Dato il grafo G = (V,A), si ordinino tutti glim =| A | archi del grafo in ordine non decrescenterispetto al peso, cioè
w(e1) ≤ w(e2) ≤ · · · ≤ w(em−1) ≤ w(em).
Si parta con un insieme AT di archi vuoto, cioè AT = ∅.Sia k = 1
Ricerca Operativa 2 – p. 43/65
Algoritmo greedy per il problema MST
Passo 1 Dato il grafo G = (V,A), si ordinino tutti glim =| A | archi del grafo in ordine non decrescenterispetto al peso, cioè
w(e1) ≤ w(e2) ≤ · · · ≤ w(em−1) ≤ w(em).
Si parta con un insieme AT di archi vuoto, cioè AT = ∅.Sia k = 1
Passo 2 Se | AT |=| V | −1 ci si arresta e si restituiscel’albero T = (V,AT ) come soluzione. Altrimenti si vadaal Passo 3.
Ricerca Operativa 2 – p. 43/65
Algoritmo greedy per il problema MST
Passo 1 Dato il grafo G = (V,A), si ordinino tutti glim =| A | archi del grafo in ordine non decrescenterispetto al peso, cioè
w(e1) ≤ w(e2) ≤ · · · ≤ w(em−1) ≤ w(em).
Si parta con un insieme AT di archi vuoto, cioè AT = ∅.Sia k = 1
Passo 2 Se | AT |=| V | −1 ci si arresta e si restituiscel’albero T = (V,AT ) come soluzione. Altrimenti si vadaal Passo 3.
Passo 3 Se ek non forma cicli con gli archi in AT , lo siaggiunga ad AT , cioè si ponga AT = AT ∪ {ek}.Altrimenti si lasci AT invariato.
Ricerca Operativa 2 – p. 43/65
Algoritmo greedy per il problema MST
Passo 1 Dato il grafo G = (V,A), si ordinino tutti glim =| A | archi del grafo in ordine non decrescenterispetto al peso, cioè
w(e1) ≤ w(e2) ≤ · · · ≤ w(em−1) ≤ w(em).
Si parta con un insieme AT di archi vuoto, cioè AT = ∅.Sia k = 1
Passo 2 Se | AT |=| V | −1 ci si arresta e si restituiscel’albero T = (V,AT ) come soluzione. Altrimenti si vadaal Passo 3.
Passo 3 Se ek non forma cicli con gli archi in AT , lo siaggiunga ad AT , cioè si ponga AT = AT ∪ {ek}.Altrimenti si lasci AT invariato.
Passo 4 Si ponga k = k + 1 e si ritorni al Passo 2.Ricerca Operativa 2 – p. 43/65
Esempio
e w(e)
(a, b) 3
(a, c) 6
(a, d) 2
(b, c) 5
(b, d) 4
(c, d) 8
Ricerca Operativa 2 – p. 44/65
Esempio
e w(e)
(a, b) 3
(a, c) 6
(a, d) 2
(b, c) 5
(b, d) 4
(c, d) 8
L’algoritmo greedy, dopo l’ordinamento degli archi, prendegli archi (a, d) e (a, b), scarta l’arco (b, d) (forma un ciclo coni primi due) e infine prende l’arco (b, c) arrestandosi aquesto punto.
Ricerca Operativa 2 – p. 44/65
Complessità dell’algoritmo
Il numero di operazioni dell’algoritmo è O(| A | log(| A |)),con | A | cardinalità dell’insieme degli archi. Quindi:
l’algoritmo ha complessità polinomiale e ciò ci permette didire che MST ∈ P .
Ricerca Operativa 2 – p. 45/65
Nota bene
Nel risolvere un problema vorremmo sempre eseguire ilminor numero possibile di operazioni. Quindi, dato unproblema e un algoritmo che lo risolve, ci si può semprechiedere se esista un algoritmo di complessità migliore cherisolva il problema.
Ricerca Operativa 2 – p. 46/65
Nota bene
Nel risolvere un problema vorremmo sempre eseguire ilminor numero possibile di operazioni. Quindi, dato unproblema e un algoritmo che lo risolve, ci si può semprechiedere se esista un algoritmo di complessità migliore cherisolva il problema.
Nel caso del MST tale algoritmo esiste e ha complessitàpari a O(| V |2) che, almeno per grafi densi, è migliore diO(| A | log(| A |)).
Ricerca Operativa 2 – p. 46/65
Nota bene
Nel risolvere un problema vorremmo sempre eseguire ilminor numero possibile di operazioni. Quindi, dato unproblema e un algoritmo che lo risolve, ci si può semprechiedere se esista un algoritmo di complessità migliore cherisolva il problema.
Nel caso del MST tale algoritmo esiste e ha complessitàpari a O(| V |2) che, almeno per grafi densi, è migliore diO(| A | log(| A |)).
Si può anche dimostrare che, in un senso che nonspecificheremo, questo algoritmo ha complessità ottima,ovvero non esiste un algoritmo che risolva il problema MSTcon complessità migliore di questa.
Ricerca Operativa 2 – p. 46/65
La classeNP
Definizione Una classe di problemi con insieme di istanze Isi dice che appartiene alla classe NP se, per ogni istanza Idel problema, essendo nota la soluzione ottima x∗
dell’istanza, il calcolo del valore ottimo fI(x∗) dell’istanzapuò essere effettuato in un tempo polinomiale rispetto alladimensione dell’istanza.
Ricerca Operativa 2 – p. 47/65
P ⊆ NP
Infatti, per tutti i problemi nella classe P il calcolo del valoreottimo di ogni istanza del problema può essere effettuato intempo polinomiale persino a prescindere dalla conoscenzadella soluzione ottima x∗. Abbiamo quindi, in particolare,che
MST ∈ P ⇒ MST ∈ NP.
Ricerca Operativa 2 – p. 48/65
KNAPSACK ∈ NP
Data una soluzione ottima N∗ di un’istanza I del problemadi KNAPSACK, si ha
fI(N∗) =
∑
i∈N∗
vi
e quindi il calcolo richiede | N∗ |≤ n somme e quindi unnumero polinomiale di operazioni rispetto alla dimensionedell’istanza.
Ricerca Operativa 2 – p. 49/65
TSP ∈ NP
Data una soluzione ottima C∗ = (VI , AC∗), dove| AC∗ |=| VI |, di un’istanza I, relativa al grafo GI = (VI , AI),del problema di TSP , si ha
fI(C∗) =
∑
(i,j)∈AC∗
dij
e quindi il calcolo richiede | VI | somme, ovvero un numeropolinomiale (in tal caso lineare) di operazioni rispetto alladimensione dell’istanza.
Ricerca Operativa 2 – p. 50/65
Ma...
...stabilito che P ⊆ NP , ci si può chiedere se tutti i problemiin NP sono risolvibili in tempo polinomiale, cioè P = NP ,oppure se esistono problemi in NP che non sono risolvibiliin tempo polinomiale, cioè P 6= NP .
La risposta è ...
Ricerca Operativa 2 – p. 51/65
Ma...
...stabilito che P ⊆ NP , ci si può chiedere se tutti i problemiin NP sono risolvibili in tempo polinomiale, cioè P = NP ,oppure se esistono problemi in NP che non sono risolvibiliin tempo polinomiale, cioè P 6= NP .
La risposta è ... beh, se l’avete siete pronti ad entrarenell’olimpo dei grandi della matematica!
Ricerca Operativa 2 – p. 51/65
Ma...
...stabilito che P ⊆ NP , ci si può chiedere se tutti i problemiin NP sono risolvibili in tempo polinomiale, cioè P = NP ,oppure se esistono problemi in NP che non sono risolvibiliin tempo polinomiale, cioè P 6= NP .
La risposta è ... beh, se l’avete siete pronti ad entrarenell’olimpo dei grandi della matematica!
Tra le due possibili risposte quella che, di gran lunga, siritiene la più probabile è che P 6= NP .
Ricerca Operativa 2 – p. 51/65
Problemi NP − completi
Definizione Un problema si dice NP − completo se soddisfale seguenti due proprietà:
appartiene alla classe NP ;
Ricerca Operativa 2 – p. 52/65
Problemi NP − completi
Definizione Un problema si dice NP − completo se soddisfale seguenti due proprietà:
appartiene alla classe NP ;
se esistesse un algoritmo di complessità polinomialeche lo risolve, allora P = NP .
Ricerca Operativa 2 – p. 52/65
Continua
In base alla definizione e al fatto che non sia chiaro seP = NP o P 6= NP , possiamo dire che non sono almomento noti algoritmi di complessità polinomiale in gradodi risolvere problemi NP − completi.
Ricerca Operativa 2 – p. 53/65
Continua
In base alla definizione e al fatto che non sia chiaro seP = NP o P 6= NP , possiamo dire che non sono almomento noti algoritmi di complessità polinomiale in gradodi risolvere problemi NP − completi.Inoltre, se, come si ritiene, P 6= NP , allora nonesisterebbero algoritmi di complessità polinomiale per taliproblemi.
Ricerca Operativa 2 – p. 53/65
Continua
In base alla definizione e al fatto che non sia chiaro seP = NP o P 6= NP , possiamo dire che non sono almomento noti algoritmi di complessità polinomiale in gradodi risolvere problemi NP − completi.Inoltre, se, come si ritiene, P 6= NP , allora nonesisterebbero algoritmi di complessità polinomiale per taliproblemi.Ne risulta quindi che la classe dei problemi NP − completi èuna classe di problemi "difficili" nel senso che, a meno chenon sia P = NP , non possiamo risolverli in tempopolinomiale.
Ricerca Operativa 2 – p. 53/65
Continua
In base alla definizione e al fatto che non sia chiaro seP = NP o P 6= NP , possiamo dire che non sono almomento noti algoritmi di complessità polinomiale in gradodi risolvere problemi NP − completi.Inoltre, se, come si ritiene, P 6= NP , allora nonesisterebbero algoritmi di complessità polinomiale per taliproblemi.Ne risulta quindi che la classe dei problemi NP − completi èuna classe di problemi "difficili" nel senso che, a meno chenon sia P = NP , non possiamo risolverli in tempopolinomiale.
Per i problemi visti abbiamo cheKNAPSACK,TSP ∈ NP − completi.
Ricerca Operativa 2 – p. 53/65
Problemi di approssimazione
Sia data una classe di problemi di ottimizzazione coninsieme I di istanze e tale che
∀ I ∈ I ∀ x ∈ SI : fI(x) ≥ 0.
Per ogni istanza I ∈ I sia x∗ la soluzione ottima dell’istanzae sia
opt(I) = fI(x∗)
il valore ottimo dell’istanza.
Ricerca Operativa 2 – p. 54/65
Continua
Definizione Per i problemi di massimo il problema diε-approssimazione, ε ≥ 0, consiste nel determinare unpunto x ∈ SI tale che
opt(I)
fI(x)≤ 1 + ε.
Ricerca Operativa 2 – p. 55/65
Continua
Definizione Per i problemi di massimo il problema diε-approssimazione, ε ≥ 0, consiste nel determinare unpunto x ∈ SI tale che
opt(I)
fI(x)≤ 1 + ε.
Per i problemi di minimo il problema di ε-approssimazioneconsiste nel determinare un punto x ∈ SI tale che
fI(x)
opt(I)≤ 1 + ε.
Ricerca Operativa 2 – p. 55/65
Continua
Definizione Per i problemi di massimo il problema diε-approssimazione, ε ≥ 0, consiste nel determinare unpunto x ∈ SI tale che
opt(I)
fI(x)≤ 1 + ε.
Per i problemi di minimo il problema di ε-approssimazioneconsiste nel determinare un punto x ∈ SI tale che
fI(x)
opt(I)≤ 1 + ε.
In entrambi i casi il punto x viene definito soluzioneε-approssimata del problema.
Ricerca Operativa 2 – p. 55/65
Continua
Per ε = 0 il problema coincide con quello di ottimizzazione.
Ricerca Operativa 2 – p. 56/65
Continua
Per ε = 0 il problema coincide con quello di ottimizzazione.
Ma per ε > 0 si richiede qualcosa di meno rispetto alproblema di ottimizzazione: non si cerca la soluzione ottimama una soluzione che non si discosti troppo da quellaottima.
Ricerca Operativa 2 – p. 56/65
Continua
Per ε = 0 il problema coincide con quello di ottimizzazione.
Ma per ε > 0 si richiede qualcosa di meno rispetto alproblema di ottimizzazione: non si cerca la soluzione ottimama una soluzione che non si discosti troppo da quellaottima.
In particolare, si ricava che in una soluzione ε-approssimatail valore fI in corrispondenza di tale soluzione differisce, siaper i problemi di massimo che per quelli di minimo, per alpiù εopt(I) dal valore ottimo opt(I) dell’istanza.
Ricerca Operativa 2 – p. 56/65
Continua
Per ε = 0 il problema coincide con quello di ottimizzazione.
Ma per ε > 0 si richiede qualcosa di meno rispetto alproblema di ottimizzazione: non si cerca la soluzione ottimama una soluzione che non si discosti troppo da quellaottima.
In particolare, si ricava che in una soluzione ε-approssimatail valore fI in corrispondenza di tale soluzione differisce, siaper i problemi di massimo che per quelli di minimo, per alpiù εopt(I) dal valore ottimo opt(I) dell’istanza.
Chiaramente, tanto maggiore è il valore di ε, quanto minoreè la precisione garantita da una soluzione ε-approssimata.
Ricerca Operativa 2 – p. 56/65
Algoritmi di approssimazione
Un algoritmo A si definisce algoritmo di ε-approssimazioneper una classe di problemi di ottimizzazione, se risolve ilproblema di ε-approssimazione associato ad ogni istanzaI ∈ I del problema di ottimizzazione.
Ricerca Operativa 2 – p. 57/65
Ma allora ...
... dato un problema NP − completo, qual è la complessitàdei corrispondenti problemi di ε-approssimazione perdiversi possibili valori di ε?
Ricerca Operativa 2 – p. 58/65
Ma allora ...
... dato un problema NP − completo, qual è la complessitàdei corrispondenti problemi di ε-approssimazione perdiversi possibili valori di ε?
Possiamo riconoscere quattro diversi possibili casi in ordinecrescente di difficoltà.
Ricerca Operativa 2 – p. 58/65
I quattro gradi di difficoltà
Caso 1 Per ogni ε > 0 esiste un algoritmo diε-approssimazione che richiede tempi polinomiali siarispetto alla dimensione delle istanze, sia rispettoall’inverso 1ε della precisione richiesta. In tal caso sidice che il problema ammette uno schema diapprossimazione completamente polinomiale.
Ricerca Operativa 2 – p. 59/65
I quattro gradi di difficoltà
Caso 1 Per ogni ε > 0 esiste un algoritmo diε-approssimazione che richiede tempi polinomiali siarispetto alla dimensione delle istanze, sia rispettoall’inverso 1ε della precisione richiesta. In tal caso sidice che il problema ammette uno schema diapprossimazione completamente polinomiale.
Caso 2 Per ogni ε > 0 esiste un algoritmo diε-approssimazione che richiede tempo polinomialerispetto alla dimensione delle istanze ma esponenzialerispetto all’inverso 1ε della precisione richiesta. In talcaso si dice che il problema ammette uno schema diapprossimazione polinomiale.
Ricerca Operativa 2 – p. 59/65
Caso 3 Per valori piccoli di ε, anche il problema diε-approssimazione è NP − completo, mentre per valoridi ε più elevati è risolvibile in tempo polinomiale.
Ricerca Operativa 2 – p. 60/65
Caso 3 Per valori piccoli di ε, anche il problema diε-approssimazione è NP − completo, mentre per valoridi ε più elevati è risolvibile in tempo polinomiale.
Caso 4 Per ogni valore di ε il problema diε-approssimazione è NP − completo.
Ricerca Operativa 2 – p. 60/65
Tra i problemi visti
KNAPSACK rientra nel Caso 1: esiste un algoritmo diapprossimazione per tale problema, denominato algoritmoscaling-rounding, di complessità O
(
nε2
)
.
Ricerca Operativa 2 – p. 61/65
Tra i problemi visti
KNAPSACK rientra nel Caso 1: esiste un algoritmo diapprossimazione per tale problema, denominato algoritmoscaling-rounding, di complessità O
(
nε2
)
.
TSP rientra nel Caso 4 (anche nel sottocaso simmetrico):per esso non è possibile risolvere in tempi polinomiali, ameno che non sia P = NP , neppure il problema diε-approssimazione per ogni valore di ε.
Ricerca Operativa 2 – p. 61/65
Tra i problemi visti
KNAPSACK rientra nel Caso 1: esiste un algoritmo diapprossimazione per tale problema, denominato algoritmoscaling-rounding, di complessità O
(
nε2
)
.
TSP rientra nel Caso 4 (anche nel sottocaso simmetrico):per esso non è possibile risolvere in tempi polinomiali, ameno che non sia P = NP , neppure il problema diε-approssimazione per ogni valore di ε.
Più avanti introdurremo un caso particolare di problemaTSP , chiamato problema TSP metrico, che, comevedremo, rientra nel Caso 3.
Ricerca Operativa 2 – p. 61/65
Tecniche euristiche
Quando affrontiamo un problema vorremmo avere rispostein "tempi ragionevoli".
Ricerca Operativa 2 – p. 62/65
Tecniche euristiche
Quando affrontiamo un problema vorremmo avere rispostein "tempi ragionevoli".
Questo è tanto più difficile, quanto più difficile è il problemache cerchiamo di risolvere in base alla teoria dellacomplessità.
Ricerca Operativa 2 – p. 62/65
Tecniche euristiche
Quando affrontiamo un problema vorremmo avere rispostein "tempi ragionevoli".
Questo è tanto più difficile, quanto più difficile è il problemache cerchiamo di risolvere in base alla teoria dellacomplessità.
Quindi possiamo aspettarci che per problemi nella classe Psi possano risolvere in modo esatto in "tempi ragionevoli"anche istanze molto grandi, mentre per problemiNP − completi questo è più complicato, in taluni casipersino se ci si accontenta di una soluzione approssimata.
Ricerca Operativa 2 – p. 62/65
Tuttavia...
... questa non è una regola sempre valida. Il tutto, infatti, èstrettamente legato all’applicazione a cui siamo interessatie a cosa si intende per "tempi ragionevoli" per essa.
Ricerca Operativa 2 – p. 63/65
Tuttavia...
... questa non è una regola sempre valida. Il tutto, infatti, èstrettamente legato all’applicazione a cui siamo interessatie a cosa si intende per "tempi ragionevoli" per essa.
In alcune applicazioni si devono risolvere problemiappartenenti alla classe P ma si desiderano risposte intempo reale (frazioni di secondo), che neppure un algoritmodi complessità polinomiale è in grado di fornire.
Ricerca Operativa 2 – p. 63/65
Tuttavia...
... questa non è una regola sempre valida. Il tutto, infatti, èstrettamente legato all’applicazione a cui siamo interessatie a cosa si intende per "tempi ragionevoli" per essa.
In alcune applicazioni si devono risolvere problemiappartenenti alla classe P ma si desiderano risposte intempo reale (frazioni di secondo), che neppure un algoritmodi complessità polinomiale è in grado di fornire.
In altre applicazioni si devono risolvere problemi difficili ma itempi richiesti per la risposta sono molto larghi (giorni opersino mesi) ed in tal caso si può anche sperare dirisolvere tali problemi in modo esatto nei limiti di temporichiesti.
Ricerca Operativa 2 – p. 63/65
In ogni caso...
... ci si pone la seguente domanda: cosa possiamo fare se i"tempi ragionevoli" entro cui si desidera una risposta sonotroppo brevi per poter sperare di ottenere una soluzioneesatta o approssimata del problema che stiamoaffrontando?
Ricerca Operativa 2 – p. 64/65
In ogni caso...
... ci si pone la seguente domanda: cosa possiamo fare se i"tempi ragionevoli" entro cui si desidera una risposta sonotroppo brevi per poter sperare di ottenere una soluzioneesatta o approssimata del problema che stiamoaffrontando?
Possiamo utilizzare tecniche euristiche.
Ricerca Operativa 2 – p. 64/65
Tecniche euristiche
Un’euristica si può definire come un compromesso tratempi di esecuzione e qualità della soluzione trovata e devequindi soddisfare i seguenti due requisiti in conflitto tra loro:
1. essere eseguibile in tempi ragionevoli (in particolaredeve avere complessità polinomiale);
2. deve restituire su molte istanze del problema unasoluzione ottima o vicina a quella ottima.
Ricerca Operativa 2 – p. 65/65
IntroduzioneIntroduzione
Classi di problemiProblemi di massimoProblemi di minimoOttimo e valore ottimoClassi gi`a noteClassi gi`a note
EsempioEsempioEsempioEsempio
Classi gi`a note: continuaClassi gi`a note: continua
Classi$mbox {f}$icazioneClassi$mbox {f}$icazione
EsempiEsempiEsempi
Cenni di complessit`aCenni di complessit`aCenni di complessit`aCenni di complessit`a
AlberiAlberi di supportoAlberi di supporto
EsempioAlbero di supporto a peso minimoAlbero di supporto a peso minimoAlbero di supporto a peso minimo
EsempioEsempio
Il problema dello zainoRegione ammissibileRegione ammissibileRegione ammissibile
Funzione obiettivo $f$Funzione obiettivo $f$
EsempioEsempioEsempioEsempioEsempioEsempio
Nota beneCircuito hamiltonianoRegione ammissibile $S$Funzione obiettivo $f$Funzione obiettivo $f$
EsempioEsempio - continuaEsempio - continuaEsempio - continuaEsempio - continuaEsempio - continuaEsempio - continua
Il problema del commesso viaggiatore ...Il problema TSP simmetricoNota beneEnumerazione completaEnumerazione completa
Ma ...Ma ...Ma ...Ma ...Ma ...
Da un punto di vista pratico ...DomandaDomandaDomanda
Complessit`aComplessit`aComplessit`a
Analisi worst caseContinuaDiverse possibili funzioni $g$Complessit`a degli algoritmiComplessit`a degli algoritmiComplessit`a degli algoritmi
ContinuaDomandaDomanda
La classe $P$La classe $P$La classe $P$
Algoritmo greedy per il problema $MST$Algoritmo greedy per il problema $MST$Algoritmo greedy per il problema $MST$Algoritmo greedy per il problema $MST$
EsempioEsempio
Complessit`a dell'algoritmoNota beneNota beneNota bene
La classe $NP$$Psubseteq NP$$KNAPSACK in NP$$TSPin NP$Ma...Ma...Ma...
Problemi $NP-completi$Problemi $NP-completi$
ContinuaContinuaContinuaContinua
Problemi di approssimazioneContinuaContinuaContinua
ContinuaContinuaContinuaContinua
Algoritmi di approssimazioneMa allora ...Ma allora ...
I quattro gradi di dif$mbox {f}$icolt`aI quattro gradi di dif$mbox {f}$icolt`a
Tra i problemi vistiTra i problemi vistiTra i problemi visti
Tecniche euristicheTecniche euristicheTecniche euristiche
Tuttavia...Tuttavia...Tuttavia...
In ogni caso...In ogni caso...
Tecniche euristiche