136
Ricerca Operativa 2 Ricerca Operativa 2 – p. 1/6

Ricerca Operativa 2 - Dipartimento di Informaticalocatell/didattica/ro2/slide-no-compatte...Ricerca Operativa 2 – p. 11/65 Cenni di complessità Come primo passo vogliamo associare

  • 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