• Non ci sono risultati.

Problemi di massimo

N/A
N/A
Protected

Academic year: 2021

Condividi "Problemi di massimo"

Copied!
136
0
0

Testo completo

(1)

Ricerca Operativa 2

Ricerca Operativa 2 – p. 1/65

(2)

Introduzione

In questo corso ci occuperemo di problemi di ottimizzazione.

Ricerca Operativa 2 – p. 2/65

(3)

Introduzione

In questo corso ci occuperemo di problemi di ottimizzazione.

Tali problemi sono tipicamente raggruppati in classi ognuna delle quali è formata da più istanze.

Ricerca Operativa 2 – p. 2/65

(4)

Classi di problemi

Una classe di problemi di ottimizzazione è formata da un insieme I di istanze. Ogni istanza I ∈ I è rappresentata da una coppia (fI, SI) dove

fI : SI → R

è detta funzione obiettivo e SI è detta regione ammissibile.

Ricerca Operativa 2 – p. 3/65

(5)

Problemi di massimo

Se il problema è di massimo, allora una sua istanza I si rappresenta 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

(6)

Problemi di minimo

Se il problema è di minimo, allora una sua istanza I si rappresenta nel modo seguente

x∈SminI 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

(7)

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 valore ottimo dell’istanza.

Ricerca Operativa 2 – p. 6/65

(8)

Classi già note

Problemi di Programmazione Lineare (PL):

ogni istanza I è definita dal vettore cI dei coefficienti delle variabili nell’obiettivo, dal vettore bI dei termini noti e dalla matrice dei vincoli AI:

max cIx AIx ≤ bI

x ≥ 0

Ricerca Operativa 2 – p. 7/65

(9)

Classi già note

Problemi di Programmazione Lineare (PL):

ogni istanza I è definita dal vettore cI dei coefficienti delle variabili nell’obiettivo, dal vettore bI dei termini noti e dalla matrice dei vincoli AI:

max cIx AIx ≤ bI

x ≥ 0 In tal caso:

fI(x) = cIx, SI = {x ∈ Rn : AIx ≤ bI, x ≥ 0}.

Ricerca Operativa 2 – p. 7/65

(10)

Esempio

max 2x1 + 3x2 + 4x3 x1 − x2 + x3 ≤ 5

−x1 + 2x2 + 3x3 ≤ 2 x1, x2, x3 ≥ 0

Ricerca Operativa 2 – p. 8/65

(11)

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

(12)

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

(13)

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

(14)

Classi già note: continua

Problemi di Programmazione Lineare Intera (PLI):

max cIx AIx ≤ bI

x ≥ 0 x ∈ Zn

Ricerca Operativa 2 – p. 9/65

(15)

Classi già note: continua

Problemi di Programmazione Lineare Intera (PLI):

max cIx AIx ≤ bI

x ≥ 0 x ∈ Zn In tal caso:

fI(x) = cIx, SI = {x ∈ Zn : AIx ≤ bI, x ≥ 0}.

Ricerca Operativa 2 – p. 9/65

(16)

Classificazione

All’interno delle classi dei problemi di ottimizzazione possiamo riconoscere due grandi categorie.

Ottimizzazione Combinatoria: in ogni istanza I la regione ammissibile SI contiene un numero finito o un’infinità numerabile di punti.

Ricerca Operativa 2 – p. 10/65

(17)

Classificazione

All’interno delle classi dei problemi di ottimizzazione possiamo riconoscere due grandi categorie.

Ottimizzazione Combinatoria: in ogni istanza I la regione ammissibile 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

(18)

Esempi

Alla categoria dei problemi di ottimizzazione

combinatoria appartiene la classe dei problemi di PLI;

Ricerca Operativa 2 – p. 11/65

(19)

Esempi

Alla categoria dei problemi di ottimizzazione

combinatoria appartiene la classe dei problemi di PLI;

alla categoria dei problemi di ottimizzazione continua appartiene la classe dei problemi di PL.

Ricerca Operativa 2 – p. 11/65

(20)

Esempi

Alla categoria dei problemi di ottimizzazione

combinatoria appartiene la classe dei problemi di PLI;

alla categoria dei problemi di ottimizzazione continua appartiene la classe dei problemi di PL.

In questo corso ci occuperemo prevalentemente di problemi di ottimizzazione combinatoria (con regione ammissibile di solito costituita da un numero finito di elementi) ma

dedicheremo una parte anche all’ottimizzazione continua.

Ricerca Operativa 2 – p. 11/65

(21)

Cenni di complessità

Come primo passo vogliamo associare ad ogni problema di ottimizzazione un grado di difficoltà.

Ricerca Operativa 2 – p. 12/65

(22)

Cenni di complessità

Come primo passo vogliamo associare ad ogni problema di ottimizzazione un grado di difficoltà.

Ci renderemo conto che esistono delle notevoli differenze nella difficoltà di risoluzione dei diversi problemi di

ottimizzazione.

Ricerca Operativa 2 – p. 12/65

(23)

Cenni di complessità

Come primo passo vogliamo associare ad ogni problema di ottimizzazione un grado di difficoltà.

Ci renderemo conto che esistono delle notevoli differenze nella difficoltà di risoluzione dei diversi problemi di

ottimizzazione.

Tali differenze vengono formalizzate nella teoria della complessità.

Ricerca Operativa 2 – p. 12/65

(24)

Cenni di complessità

Come primo passo vogliamo associare ad ogni problema di ottimizzazione un grado di difficoltà.

Ci renderemo conto che esistono delle notevoli differenze nella difficoltà di risoluzione dei diversi problemi di

ottimizzazione.

Tali differenze vengono formalizzate nella teoria della complessità.

Per cominciare introdurremo come esempi di diversi gradi di difficoltà tre problemi di ottimizzazione.

Ricerca Operativa 2 – p. 12/65

(25)

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 le seguenti condizioni (equivalenti tra loro)

1. G è privo di cicli e connesso (ovvero esiste un cammino tra 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 di nodi.

Ricerca Operativa 2 – p. 13/65

(26)

Alberi di supporto

Definizione Sia dato un grafo generico G = (V, A). Si

definisce 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 i nodi di G e che in virtù del punto 2. (o del punto 3.) della definizione di albero, si dovrà avere | AT |=| V | −1.

Ricerca Operativa 2 – p. 14/65

(27)

Alberi di supporto

Definizione Sia dato un grafo generico G = (V, A). Si

definisce 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 i nodi di G e che in virtù del punto 2. (o del punto 3.) della definizione 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

(28)

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

(29)

Albero di supporto a peso minimo

Regione ammissibile S: è composta da tutti i possibili alberi di supporto del grafo G, che sono in numero finito.

Ricerca Operativa 2 – p. 16/65

(30)

Albero di supporto a peso minimo

Regione ammissibile S: è composta da tutti i possibili alberi di supporto del grafo G, che sono in numero finito.

Funzione obiettivo f: per ogni albero di supporto

T = (V, AT) ∈ S è definita come somma dei pesi degli archi dell’albero, cioè

f(T ) = X

e∈AT

w(e).

Ricerca Operativa 2 – p. 16/65

(31)

Albero di supporto a peso minimo

Regione ammissibile S: è composta da tutti i possibili alberi di supporto del grafo G, che sono in numero finito.

Funzione obiettivo f: per ogni albero di supporto

T = (V, AT) ∈ S è definita come somma dei pesi degli archi dell’albero, cioè

f(T ) = X

e∈AT

w(e).

Il problema dell’albero di supporto a peso minimo o

Minimum Spanning Tree (abbreviato nel seguito con M ST) consiste nel determinare un albero di supporto

T = (V, AT) tale che

f(T) ≤ f (T ) ∀ T ∈ S

Ricerca Operativa 2 – p. 16/65

(32)

Esempio

T1 = (V, AT1) AT1 = {(a, b); (a, d); (c, d)}

f(T1) = 3 + 2 + 8 = 13

Ricerca Operativa 2 – p. 17/65

(33)

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

(34)

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à (peso massimo trasportabile) pari a b > 0.

Ricerca Operativa 2 – p. 18/65

(35)

Regione ammissibile

È formata da tutti i sottinsiemi di oggetti il cui peso

complessivo non supera la capacità dello zaino e quindi S = {N ⊆ {1, . . . , n} : X

i∈N

pi ≤ b}.

Ricerca Operativa 2 – p. 19/65

(36)

Regione ammissibile

È formata da tutti i sottinsiemi di oggetti il cui peso

complessivo non supera la capacità dello zaino e quindi S = {N ⊆ {1, . . . , n} : X

i∈N

pi ≤ b}.

Si noti che S è un insieme finito.

Ricerca Operativa 2 – p. 19/65

(37)

Regione ammissibile

È formata da tutti i sottinsiemi di oggetti il cui peso

complessivo non supera la capacità dello zaino e quindi S = {N ⊆ {1, . . . , n} : X

i∈N

pi ≤ b}.

Si noti che S è un insieme finito. Infatti

| S |≤ 2n.

Ricerca Operativa 2 – p. 19/65

(38)

Funzione obiettivo f

La funzione obiettivo è definita dalla somma dei valori degli oggetti nel sottinsieme, ovvero

f(N ) = X

i∈N

vi.

Ricerca Operativa 2 – p. 20/65

(39)

Funzione obiettivo f

La funzione obiettivo è definita dalla somma dei valori degli oggetti nel sottinsieme, ovvero

f(N ) = X

i∈N

vi.

Il problema dello zaino, indicato nel seguito come problema KNAPSACK, è un problema di massimo e consiste nel

determinare un sottinsieme N ∈ S tale che f(N) ≥ f (N ) ∀ N ∈ S.

Ricerca Operativa 2 – p. 20/65

(40)

Esempio

Si consideri l’insieme {1, 2, 3, 4} di oggetti con i seguenti valori 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

(41)

Esempio

Si consideri l’insieme {1, 2, 3, 4} di oggetti con i seguenti valori 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

(42)

Esempio

Si consideri l’insieme {1, 2, 3, 4} di oggetti con i seguenti valori 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

(43)

Esempio

Si consideri l’insieme {1, 2, 3, 4} di oggetti con i seguenti valori 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

(44)

Esempio

Si consideri l’insieme {1, 2, 3, 4} di oggetti con i seguenti valori 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 con f(N2) = 7,

Ricerca Operativa 2 – p. 21/65

(45)

Esempio

Si consideri l’insieme {1, 2, 3, 4} di oggetti con i seguenti valori 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 con f(N2) = 7, N3 = {1, 3} 6∈ S.

Ricerca Operativa 2 – p. 21/65

(46)

Nota bene

La classe di problemi KN AP SACK prende il nome da una sua particolare applicazione (mettere oggetti nello zaino) ma naturalmente questa non è l’unica applicazione in cui ci si trova a risolvere problemi in tale classe.

Ricerca Operativa 2 – p. 22/65

(47)

Circuito hamiltoniano

Definizione Dato un grafo orientato G = (V, A), un circuito

hamiltoniano è un sottografo C = (V, AC) i cui archi formano un cammino orientato all’interno del grafo che partendo da un nodo dello stesso tocca tutti gli altri nodi una ed una sola volta e ritorna infine al nodo di partenza.

NB: | AC |=| V |.

Ricerca Operativa 2 – p. 23/65

(48)

Regione ammissibile S

È costituita da tutti i possibili circuiti hamiltoniani del grafo.

Se il grafo è completo (cioè esiste un arco orientato tra ogni coppia 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

(49)

Funzione obiettivo f

Ad ogni arco (i, j) ∈ A è associato un valore dij che

rappresenta la "distanza" da percorrere lungo tale arco.

Ricerca Operativa 2 – p. 25/65

(50)

Funzione obiettivo f

Ad ogni arco (i, j) ∈ A è associato un valore dij che

rappresenta la "distanza" da percorrere lungo tale arco.

Dato il circuito hamiltoniano C = (V, AC), f associa a C la somma delle "distanze" degli n archi attraversati dal

circuito, cioè

f(C) = X

(i,j)∈AC

dij

e rappresenta quindi la "distanza" complessiva percorsa lungo il circuito.

Ricerca Operativa 2 – p. 25/65

(51)

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

(52)

Esempio - continua

C1 = (V, AC1) AC1 = {(a, b); (b, c); (c, d); (d, a)}

Ricerca Operativa 2 – p. 27/65

(53)

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

(54)

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

(55)

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

(56)

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

(57)

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

(58)

Il problema del commesso viaggiatore ...

... o Travelling Salesman Problem (abbreviato con TSP nel seguito) è un problema di minimo in cui si cerca un circuito hamiltoniano C = (V, AC) con "distanza" complessiva

minima, cioè

f(C) ≤ f (C) ∀ C ∈ S.

Ricerca Operativa 2 – p. 28/65

(59)

Il problema TSP simmetrico

Problema T SP in cui:

∀ (i, j) e (j, i) ∈ A : dij = dji.

Si può rappresentare con un grafo non orientato con un solo arco non orientato tra ogni coppia di nodi e il numero totale di circuiti hamiltoniani è dimezzato rispetto al caso asimmettrico.

Ricerca Operativa 2 – p. 29/65

(60)

Nota bene

Come per la classe di problemi KN AP SACK, anche la classe T SP prende il nome da una sua particolare

applicazione ma anche in questo caso questa non è l’unica applicazione in cui ci si trova a risolvere problemi in tale

classe.

Ricerca Operativa 2 – p. 30/65

(61)

Enumerazione completa

Valuta la funzione f per ogni elemento in S e restituisci l’elemento con valore di f minimo (o massimo se il

problema è di massimo).

Ricerca Operativa 2 – p. 31/65

(62)

Enumerazione completa

Valuta la funzione f per ogni elemento in S e restituisci l’elemento con valore di f minimo (o massimo se il

problema è di massimo).

Tutte le istanze dei tre problemi descritti in precedenza

sono risolvibili in modo esatto con questa procedura, detta di enumerazione completa, poiché le regioni ammissibili sono sempre costituite da un numero finito di elementi.

Ricerca Operativa 2 – p. 31/65

(63)

Ma ...

... una semplice osservazione metterà in luce i limiti di questo approccio.

Ricerca Operativa 2 – p. 32/65

(64)

Ma ...

... una semplice osservazione metterà in luce i limiti di questo approccio.

Problema T SP su un grafo completo con numero di nodi n = 22 → numero di circuiti hamiltoniani pari a

(n − 1)! = 21! > 1019.

Ricerca Operativa 2 – p. 32/65

(65)

Ma ...

... una semplice osservazione metterà in luce i limiti di questo approccio.

Problema T SP su un grafo completo con numero di nodi n = 22 → numero di circuiti hamiltoniani pari a

(n − 1)! = 21! > 1019.

Ipotesi: la valutazione della funzione obiettivo per un singolo circuito hamiltoniano richieda un nanosecondo (109 secondi). Quindi

Ricerca Operativa 2 – p. 32/65

(66)

Ma ...

... una semplice osservazione metterà in luce i limiti di questo approccio.

Problema T SP su un grafo completo con numero di nodi n = 22 → numero di circuiti hamiltoniani pari a

(n − 1)! = 21! > 1019.

Ipotesi: la valutazione della funzione obiettivo per un singolo circuito hamiltoniano richieda un nanosecondo (109 secondi). Quindi la valutazione di tutti i circuiti hamiltoniani richiede più di 1010 secondi

Ricerca Operativa 2 – p. 32/65

(67)

Ma ...

... una semplice osservazione metterà in luce i limiti di questo approccio.

Problema T SP su un grafo completo con numero di nodi n = 22 → numero di circuiti hamiltoniani pari a

(n − 1)! = 21! > 1019.

Ipotesi: la valutazione della funzione obiettivo per un singolo circuito hamiltoniano richieda un nanosecondo (109 secondi). Quindi la valutazione di tutti i circuiti hamiltoniani richiede più di 1010 secondi > 200 anni!

Ricerca Operativa 2 – p. 32/65

(68)

Da un punto di vista pratico ...

... si parlerà di problema risolvibile con una data procedura solo nel caso in cui la procedura restituisca una soluzione in tempi ragionevoli. Ciò rende la procedura di

enumerazione completa accettabile solo per istanze di problemi di dimensioni limitate (quindi per grafi con pochi nodi per i problemi M ST e T SP e per istanze con pochi oggetti per il problema KN AP SACK).

Ricerca Operativa 2 – p. 33/65

(69)

Domanda

Esistono altre procedure che consentono di risolvere in tempi ragionevoli istanze dei tre problemi visti con

dimensioni molto più elevate?

Ricerca Operativa 2 – p. 34/65

(70)

Domanda

Esistono altre procedure che consentono di risolvere in tempi ragionevoli istanze dei tre problemi visti con

dimensioni molto più elevate?

Risposta: dipende dal problema.

Ricerca Operativa 2 – p. 34/65

(71)

Domanda

Esistono altre procedure che consentono di risolvere in tempi ragionevoli istanze dei tre problemi visti con

dimensioni molto più elevate?

Risposta: dipende dal problema.

È facile trovare procedure più efficienti dell’enumerazione completa ma mentre per uno dei problemi (il problema

M ST ) si possono risolvere in tempi ragionevoli istanze di grandi dimensioni, per il problema KN AP SACK e, ancor più, per il problema T SP può essere difficile risolvere anche istanze di dimensioni non troppo elevate. Tutto ciò ha una formulazione ben precisa nella teoria della complessità, della quale si daranno brevi cenni di seguito.

Ricerca Operativa 2 – p. 34/65

(72)

Complessità

Dimensione dim(I) = quantità di memoria necessaria per memorizzare (in codifica binaria) l’istanza I.

Ricerca Operativa 2 – p. 35/65

(73)

Complessità

Dimensione dim(I) = quantità di memoria necessaria per memorizzare (in codifica binaria) l’istanza I.

Procedura di risoluzione o algoritmo A per il problema.

Ricerca Operativa 2 – p. 35/65

(74)

Complessità

Dimensione dim(I) = quantità di memoria necessaria per memorizzare (in codifica binaria) l’istanza I.

Procedura di risoluzione o algoritmo A per il problema.

numopA(I)= numero di operazioni elementari eseguite da A per risolvere I.

Ricerca Operativa 2 – p. 35/65

(75)

Analisi worst case

L’analisi worst case definisce il tempo tA(k) necessario

all’algoritmo A per risolvere istanze di dimensione k come il massimo tra tutti i tempi di esecuzione di istanze di

dimensione k, cioè

tA(k) = max

I: dim(I)=k numopA(I).

Ricerca Operativa 2 – p. 36/65

(76)

Continua

Tipicamente non si conosce l’espressione analitica della funzione tA(k) ma se ne conosce l’ordine di grandezza. Si dice che la funzione tA(k) = O(g(k)), ovvero che tA(k) è dell’ordine di grandezza della funzione g(k), se esiste una costante u > 0 tale che

tA(k) ≤ ug(k).

Ricerca Operativa 2 – p. 37/65

(77)

Diverse possibili funzioni g

g(k) k = 10 k = 20 k = 30 k = 40 k = 50 log2(k) 3.32 4.32 4.90 5.32 5.64

k 10 20 30 40 50

k2 100 400 900 1600 2500

k3 1000 8000 27000 64000 125000

2k 1024 > 106 > 109 > 1012 > 1015 k! 3628800 > 1018 > 1032 > 1047 > 1064

Ricerca Operativa 2 – p. 38/65

(78)

Complessità degli algoritmi

Un algoritmo per il quale tA(k) fosse dell’ordine di

grandezza di 2k oppure k! si dice che ha complessità esponenziale.

Ricerca Operativa 2 – p. 39/65

(79)

Complessità degli algoritmi

Un algoritmo per il quale tA(k) fosse dell’ordine di

grandezza di 2k oppure k! si dice che ha complessità

esponenziale. È evidente che un tale algoritmo consente di risolvere in tempi ragionevoli solo istanze di dimensioni

limitate.

Ricerca Operativa 2 – p. 39/65

(80)

Complessità degli algoritmi

Un algoritmo per il quale tA(k) fosse dell’ordine di

grandezza di 2k oppure k! si dice che ha complessità

esponenziale. È evidente che un tale algoritmo consente di risolvere in tempi ragionevoli solo istanze di dimensioni

limitate.

Per questa ragione si cercano per i problemi algoritmi di risoluzione con complessità polinomiale, in cui cioè la funzione tA è dell’ordine di grandezza di un polinomio kp per un qualche esponente p.

Ricerca Operativa 2 – p. 39/65

(81)

Continua

Tanto maggiore è l’esponente p del polinomio, quanto più rapidamente cresce il numero di operazioni dell’algoritmo al crescere di k e quindi quanto più piccole sono le dimensioni dei problemi che l’algoritmo è in grado di risolvere in tempi ragionevoli (già per p = 4 la crescita è piuttosto rapida).

Tuttavia la crescita polinomiale è sempre preferibile ad una esponenziale.

Ricerca Operativa 2 – p. 40/65

(82)

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

(83)

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

(84)

La classe P

Definizione Un problema di ottimizzazione appartiene alla classe P se esiste almeno un algoritmo di complessità polinomiale che lo risolve.

Ricerca Operativa 2 – p. 42/65

(85)

La classe P

Definizione Un problema di ottimizzazione appartiene alla classe P se esiste almeno un algoritmo di complessità polinomiale che lo risolve.

I problemi di PL appartengono alla classe P ma l’algoritmo del simplesso non ha complessità polinomiale! Esistono altri algoritmi che risolvono i problemi di PL e che hanno complessità polinomiale.

Ricerca Operativa 2 – p. 42/65

(86)

La classe P

Definizione Un problema di ottimizzazione appartiene alla classe P se esiste almeno un algoritmo di complessità polinomiale che lo risolve.

I problemi di PL appartengono alla classe P ma l’algoritmo del simplesso non ha complessità polinomiale! Esistono altri algoritmi che risolvono i problemi di PL e che hanno complessità polinomiale.

Non è invece noto, ma è ritenuto improbabile, se i problemi di PLI appartengano alla classe P.

Ricerca Operativa 2 – p. 42/65

(87)

Algoritmo greedy per il problema M ST

Passo 1 Dato il grafo G = (V, A), si ordinino tutti gli m =| A | archi del grafo in ordine non decrescente rispetto 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

(88)

Algoritmo greedy per il problema M ST

Passo 1 Dato il grafo G = (V, A), si ordinino tutti gli m =| A | archi del grafo in ordine non decrescente rispetto 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 restituisce l’albero T = (V, AT) come soluzione. Altrimenti si vada al Passo 3.

Ricerca Operativa 2 – p. 43/65

(89)

Algoritmo greedy per il problema M ST

Passo 1 Dato il grafo G = (V, A), si ordinino tutti gli m =| A | archi del grafo in ordine non decrescente rispetto 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 restituisce l’albero T = (V, AT) come soluzione. Altrimenti si vada al Passo 3.

Passo 3 Se ek non forma cicli con gli archi in AT , lo si aggiunga ad AT, cioè si ponga AT = AT ∪ {ek}.

Altrimenti si lasci AT invariato.

Ricerca Operativa 2 – p. 43/65

(90)

Algoritmo greedy per il problema M ST

Passo 1 Dato il grafo G = (V, A), si ordinino tutti gli m =| A | archi del grafo in ordine non decrescente rispetto 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 restituisce l’albero T = (V, AT) come soluzione. Altrimenti si vada al Passo 3.

Passo 3 Se ek non forma cicli con gli archi in AT , lo si aggiunga 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

(91)

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

(92)

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, prende gli archi (a, d) e (a, b), scarta l’arco (b, d) (forma un ciclo con i primi due) e infine prende l’arco (b, c) arrestandosi a

questo punto.

Ricerca Operativa 2 – p. 44/65

(93)

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 di dire che M ST ∈ P.

Ricerca Operativa 2 – p. 45/65

(94)

Nota bene

Nel risolvere un problema vorremmo sempre eseguire il minor numero possibile di operazioni. Quindi, dato un problema e un algoritmo che lo risolve, ci si può sempre

chiedere se esista un algoritmo di complessità migliore che risolva il problema.

Ricerca Operativa 2 – p. 46/65

(95)

Nota bene

Nel risolvere un problema vorremmo sempre eseguire il minor numero possibile di operazioni. Quindi, dato un problema e un algoritmo che lo risolve, ci si può sempre

chiedere se esista un algoritmo di complessità migliore che risolva il problema.

Nel caso del M ST tale algoritmo esiste e ha complessità pari a O(| V |2) che, almeno per grafi densi, è migliore di O(| A | log(| A |)).

Ricerca Operativa 2 – p. 46/65

(96)

Nota bene

Nel risolvere un problema vorremmo sempre eseguire il minor numero possibile di operazioni. Quindi, dato un problema e un algoritmo che lo risolve, ci si può sempre

chiedere se esista un algoritmo di complessità migliore che risolva il problema.

Nel caso del M ST tale algoritmo esiste e ha complessità pari a O(| V |2) che, almeno per grafi densi, è migliore di O(| A | log(| A |)).

Si può anche dimostrare che, in un senso che non

specificheremo, questo algoritmo ha complessità ottima,

ovvero non esiste un algoritmo che risolva il problema M ST con complessità migliore di questa.

Ricerca Operativa 2 – p. 46/65

(97)

La classe N P

Definizione Una classe di problemi con insieme di istanze I si dice che appartiene alla classe N P se, per ogni istanza I del problema, essendo nota la soluzione ottima x

dell’istanza, il calcolo del valore ottimo fI(x) dell’istanza può essere effettuato in un tempo polinomiale rispetto alla dimensione dell’istanza.

Ricerca Operativa 2 – p. 47/65

(98)

P ⊆ N P

Infatti, per tutti i problemi nella classe P il calcolo del valore ottimo di ogni istanza del problema può essere effettuato in tempo polinomiale persino a prescindere dalla conoscenza della soluzione ottima x. Abbiamo quindi, in particolare, che

M ST ∈ P ⇒ M ST ∈ N P.

Ricerca Operativa 2 – p. 48/65

(99)

KN AP SACK ∈ N P

Data una soluzione ottima N di un’istanza I del problema di KN AP SACK, si ha

fI(N) = X

i∈N

vi

e quindi il calcolo richiede | N |≤ n somme e quindi un numero polinomiale di operazioni rispetto alla dimensione dell’istanza.

Ricerca Operativa 2 – p. 49/65

(100)

T SP ∈ N P

Data una soluzione ottima C = (VI, AC), dove

| AC |=| VI |, di un’istanza I, relativa al grafo GI = (VI, AI), del problema di T SP, si ha

fI(C) = X

(i,j)∈AC

dij

e quindi il calcolo richiede | VI | somme, ovvero un numero polinomiale (in tal caso lineare) di operazioni rispetto alla dimensione dell’istanza.

Ricerca Operativa 2 – p. 50/65

(101)

Ma...

...stabilito che P ⊆ N P, ci si può chiedere se tutti i problemi in N P sono risolvibili in tempo polinomiale, cioè P = N P, oppure se esistono problemi in N P che non sono risolvibili in tempo polinomiale, cioè P 6= N P.

La risposta è ...

Ricerca Operativa 2 – p. 51/65

(102)

Ma...

...stabilito che P ⊆ N P, ci si può chiedere se tutti i problemi in N P sono risolvibili in tempo polinomiale, cioè P = N P, oppure se esistono problemi in N P che non sono risolvibili in tempo polinomiale, cioè P 6= N P.

La risposta è ... beh, se l’avete siete pronti ad entrare nell’olimpo dei grandi della matematica!

Ricerca Operativa 2 – p. 51/65

(103)

Ma...

...stabilito che P ⊆ N P, ci si può chiedere se tutti i problemi in N P sono risolvibili in tempo polinomiale, cioè P = N P, oppure se esistono problemi in N P che non sono risolvibili in tempo polinomiale, cioè P 6= N P.

La risposta è ... beh, se l’avete siete pronti ad entrare nell’olimpo dei grandi della matematica!

Tra le due possibili risposte quella che, di gran lunga, si ritiene la più probabile è che P 6= N P.

Ricerca Operativa 2 – p. 51/65

(104)

Problemi N P − completi

Definizione Un problema si dice N P − completo se soddisfa le seguenti due proprietà:

appartiene alla classe N P;

Ricerca Operativa 2 – p. 52/65

(105)

Problemi N P − completi

Definizione Un problema si dice N P − completo se soddisfa le seguenti due proprietà:

appartiene alla classe N P;

se esistesse un algoritmo di complessità polinomiale che lo risolve, allora P = N P.

Ricerca Operativa 2 – p. 52/65

(106)

Continua

In base alla definizione e al fatto che non sia chiaro se P = N P o P 6= N P, possiamo dire che non sono al

momento noti algoritmi di complessità polinomiale in grado di risolvere problemi N P − completi.

Ricerca Operativa 2 – p. 53/65

(107)

Continua

In base alla definizione e al fatto che non sia chiaro se P = N P o P 6= N P, possiamo dire che non sono al

momento noti algoritmi di complessità polinomiale in grado di risolvere problemi N P − completi.

Inoltre, se, come si ritiene, P 6= N P , allora non

esisterebbero algoritmi di complessità polinomiale per tali problemi.

Ricerca Operativa 2 – p. 53/65

(108)

Continua

In base alla definizione e al fatto che non sia chiaro se P = N P o P 6= N P, possiamo dire che non sono al

momento noti algoritmi di complessità polinomiale in grado di risolvere problemi N P − completi.

Inoltre, se, come si ritiene, P 6= N P , allora non

esisterebbero algoritmi di complessità polinomiale per tali problemi.

Ne risulta quindi che la classe dei problemi N P − completi è una classe di problemi "difficili" nel senso che, a meno che non sia P = N P, non possiamo risolverli in tempo

polinomiale.

Ricerca Operativa 2 – p. 53/65

(109)

Continua

In base alla definizione e al fatto che non sia chiaro se P = N P o P 6= N P, possiamo dire che non sono al

momento noti algoritmi di complessità polinomiale in grado di risolvere problemi N P − completi.

Inoltre, se, come si ritiene, P 6= N P , allora non

esisterebbero algoritmi di complessità polinomiale per tali problemi.

Ne risulta quindi che la classe dei problemi N P − completi è una classe di problemi "difficili" nel senso che, a meno che non sia P = N P, non possiamo risolverli in tempo

polinomiale.

Per i problemi visti abbiamo che

KN AP SACK, T SP ∈ N P − completi.

Ricerca Operativa 2 – p. 53/65

(110)

Problemi di approssimazione

Sia data una classe di problemi di ottimizzazione con insieme I di istanze e tale che

∀ I ∈ I ∀ x ∈ SI : fI(x) ≥ 0.

Per ogni istanza I ∈ I sia x la soluzione ottima dell’istanza e sia

opt(I) = fI(x) il valore ottimo dell’istanza.

Ricerca Operativa 2 – p. 54/65

(111)

Continua

Definizione Per i problemi di massimo il problema di

ε-approssimazione, ε ≥ 0, consiste nel determinare un punto x ∈ SI tale che

opt(I)

fI(x) ≤ 1 + ε.

Ricerca Operativa 2 – p. 55/65

(112)

Continua

Definizione Per i problemi di massimo il problema di

ε-approssimazione, ε ≥ 0, consiste nel determinare un punto x ∈ SI tale che

opt(I)

fI(x) ≤ 1 + ε.

Per i problemi di minimo il problema di ε-approssimazione consiste nel determinare un punto x ∈ SI tale che

fI(x)

opt(I) ≤ 1 + ε.

Ricerca Operativa 2 – p. 55/65

(113)

Continua

Definizione Per i problemi di massimo il problema di

ε-approssimazione, ε ≥ 0, consiste nel determinare un punto x ∈ SI tale che

opt(I)

fI(x) ≤ 1 + ε.

Per i problemi di minimo il problema di ε-approssimazione consiste 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

(114)

Continua

Per ε = 0 il problema coincide con quello di ottimizzazione.

Ricerca Operativa 2 – p. 56/65

(115)

Continua

Per ε = 0 il problema coincide con quello di ottimizzazione.

Ma per ε > 0 si richiede qualcosa di meno rispetto al

problema di ottimizzazione: non si cerca la soluzione ottima ma una soluzione che non si discosti troppo da quella

ottima.

Ricerca Operativa 2 – p. 56/65

(116)

Continua

Per ε = 0 il problema coincide con quello di ottimizzazione.

Ma per ε > 0 si richiede qualcosa di meno rispetto al

problema di ottimizzazione: non si cerca la soluzione ottima ma una soluzione che non si discosti troppo da quella

ottima.

In particolare, si ricava che in una soluzione ε-approssimata il valore fI in corrispondenza di tale soluzione differisce, sia per i problemi di massimo che per quelli di minimo, per al più εopt(I) dal valore ottimo opt(I) dell’istanza.

Ricerca Operativa 2 – p. 56/65

(117)

Continua

Per ε = 0 il problema coincide con quello di ottimizzazione.

Ma per ε > 0 si richiede qualcosa di meno rispetto al

problema di ottimizzazione: non si cerca la soluzione ottima ma una soluzione che non si discosti troppo da quella

ottima.

In particolare, si ricava che in una soluzione ε-approssimata il valore fI in corrispondenza di tale soluzione differisce, sia per i problemi di massimo che per quelli di minimo, per al più ε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

(118)

Algoritmi di approssimazione

Un algoritmo A si definisce algoritmo di ε-approssimazione per una classe di problemi di ottimizzazione, se risolve il problema di ε-approssimazione associato ad ogni istanza I ∈ I del problema di ottimizzazione.

Ricerca Operativa 2 – p. 57/65

(119)

Ma allora ...

... dato un problema N P − completo, qual è la complessità dei corrispondenti problemi di ε-approssimazione per

diversi possibili valori di ε?

Ricerca Operativa 2 – p. 58/65

(120)

Ma allora ...

... dato un problema N P − completo, qual è la complessità dei corrispondenti problemi di ε-approssimazione per

diversi possibili valori di ε?

Possiamo riconoscere quattro diversi possibili casi in ordine crescente di difficoltà.

Ricerca Operativa 2 – p. 58/65

(121)

I quattro gradi di difficoltà

Caso 1 Per ogni ε > 0 esiste un algoritmo di

ε-approssimazione che richiede tempi polinomiali sia rispetto alla dimensione delle istanze, sia rispetto

all’inverso 1ε della precisione richiesta. In tal caso si dice che il problema ammette uno schema di

approssimazione completamente polinomiale.

Ricerca Operativa 2 – p. 59/65

(122)

I quattro gradi di difficoltà

Caso 1 Per ogni ε > 0 esiste un algoritmo di

ε-approssimazione che richiede tempi polinomiali sia rispetto alla dimensione delle istanze, sia rispetto

all’inverso 1ε della precisione richiesta. In tal caso si dice che il problema ammette uno schema di

approssimazione completamente polinomiale.

Caso 2 Per ogni ε > 0 esiste un algoritmo di

ε-approssimazione che richiede tempo polinomiale

rispetto alla dimensione delle istanze ma esponenziale rispetto all’inverso 1ε della precisione richiesta. In tal caso si dice che il problema ammette uno schema di approssimazione polinomiale.

Ricerca Operativa 2 – p. 59/65

(123)

Caso 3 Per valori piccoli di ε, anche il problema di

ε-approssimazione è N P − completo, mentre per valori di ε più elevati è risolvibile in tempo polinomiale.

Ricerca Operativa 2 – p. 60/65

(124)

Caso 3 Per valori piccoli di ε, anche il problema di

ε-approssimazione è N P − completo, mentre per valori di ε più elevati è risolvibile in tempo polinomiale.

Caso 4 Per ogni valore di ε il problema di ε-approssimazione è N P − completo.

Ricerca Operativa 2 – p. 60/65

(125)

Tra i problemi visti

KN AP SACK rientra nel Caso 1: esiste un algoritmo di

approssimazione per tale problema, denominato algoritmo scaling-rounding, di complessità O εn2 

.

Ricerca Operativa 2 – p. 61/65

(126)

Tra i problemi visti

KN AP SACK rientra nel Caso 1: esiste un algoritmo di

approssimazione per tale problema, denominato algoritmo scaling-rounding, di complessità O εn2 

.

T SP rientra nel Caso 4 (anche nel sottocaso simmetrico):

per esso non è possibile risolvere in tempi polinomiali, a meno che non sia P = N P , neppure il problema di

ε-approssimazione per ogni valore di ε.

Ricerca Operativa 2 – p. 61/65

(127)

Tra i problemi visti

KN AP SACK rientra nel Caso 1: esiste un algoritmo di

approssimazione per tale problema, denominato algoritmo scaling-rounding, di complessità O εn2 

.

T SP rientra nel Caso 4 (anche nel sottocaso simmetrico):

per esso non è possibile risolvere in tempi polinomiali, a meno che non sia P = N P , neppure il problema di

ε-approssimazione per ogni valore di ε.

Più avanti introdurremo un caso particolare di problema T SP , chiamato problema T SP metrico, che, come

vedremo, rientra nel Caso 3.

Ricerca Operativa 2 – p. 61/65

(128)

Tecniche euristiche

Quando affrontiamo un problema vorremmo avere risposte in "tempi ragionevoli".

Ricerca Operativa 2 – p. 62/65

(129)

Tecniche euristiche

Quando affrontiamo un problema vorremmo avere risposte in "tempi ragionevoli".

Questo è tanto più difficile, quanto più difficile è il problema che cerchiamo di risolvere in base alla teoria della

complessità.

Ricerca Operativa 2 – p. 62/65

(130)

Tecniche euristiche

Quando affrontiamo un problema vorremmo avere risposte in "tempi ragionevoli".

Questo è tanto più difficile, quanto più difficile è il problema che cerchiamo di risolvere in base alla teoria della

complessità.

Quindi possiamo aspettarci che per problemi nella classe P si possano risolvere in modo esatto in "tempi ragionevoli"

anche istanze molto grandi, mentre per problemi

N P − completi questo è più complicato, in taluni casi

persino se ci si accontenta di una soluzione approssimata.

Ricerca Operativa 2 – p. 62/65

(131)

Tuttavia...

... questa non è una regola sempre valida. Il tutto, infatti, è strettamente legato all’applicazione a cui siamo interessati e a cosa si intende per "tempi ragionevoli" per essa.

Ricerca Operativa 2 – p. 63/65

(132)

Tuttavia...

... questa non è una regola sempre valida. Il tutto, infatti, è strettamente legato all’applicazione a cui siamo interessati e a cosa si intende per "tempi ragionevoli" per essa.

In alcune applicazioni si devono risolvere problemi

appartenenti alla classe P ma si desiderano risposte in

tempo reale (frazioni di secondo), che neppure un algoritmo di complessità polinomiale è in grado di fornire.

Ricerca Operativa 2 – p. 63/65

(133)

Tuttavia...

... questa non è una regola sempre valida. Il tutto, infatti, è strettamente legato all’applicazione a cui siamo interessati e a cosa si intende per "tempi ragionevoli" per essa.

In alcune applicazioni si devono risolvere problemi

appartenenti alla classe P ma si desiderano risposte in

tempo reale (frazioni di secondo), che neppure un algoritmo di complessità polinomiale è in grado di fornire.

In altre applicazioni si devono risolvere problemi difficili ma i tempi richiesti per la risposta sono molto larghi (giorni o

persino mesi) ed in tal caso si può anche sperare di

risolvere tali problemi in modo esatto nei limiti di tempo richiesti.

Ricerca Operativa 2 – p. 63/65

(134)

In ogni caso...

... ci si pone la seguente domanda: cosa possiamo fare se i

"tempi ragionevoli" entro cui si desidera una risposta sono troppo brevi per poter sperare di ottenere una soluzione esatta o approssimata del problema che stiamo

affrontando?

Ricerca Operativa 2 – p. 64/65

(135)

In ogni caso...

... ci si pone la seguente domanda: cosa possiamo fare se i

"tempi ragionevoli" entro cui si desidera una risposta sono troppo brevi per poter sperare di ottenere una soluzione esatta o approssimata del problema che stiamo

affrontando?

Possiamo utilizzare tecniche euristiche.

Ricerca Operativa 2 – p. 64/65

(136)

Tecniche euristiche

Un’euristica si può definire come un compromesso tra

tempi di esecuzione e qualità della soluzione trovata e deve quindi soddisfare i seguenti due requisiti in conflitto tra loro:

1. essere eseguibile in tempi ragionevoli (in particolare deve avere complessità polinomiale);

2. deve restituire su molte istanze del problema una soluzione ottima o vicina a quella ottima.

Ricerca Operativa 2 – p. 65/65

Riferimenti

Documenti correlati

Era stato un lavoro preparatorio lungo che l’aveva te- nuto impiegato per quasi due mesi, rivela- tosi alla fine molto pulito, facile, anche perché l’uomo, come lui

Il volume riporta i principali risultati di un percorso di indagine nazionale sul fenomeno del problema casa in Italia, che ha avuto lo scopo di rilevare e approfondire la

In Sicilia, quasi due anni fa la Delegazione regionale Caritas e Fio.psd (Federazione italiana degli organismi per le persone senza dimora) hanno avviato un progetto pilota di

Ero aggregato al Quartier generale – avevo lavorato per cinque mesi al servizio informazioni – ma dovetti tornare al reparto comando del gruppo di artiglieria da montagna Vestone,

While antibiotic exposure is the most important risk factor for C difficile infection, other risk factors include increasing age (after infancy), and severity of underlying

L’uomo non conserva energia ma è costantemente nel flusso fra Prana e Apana, manca di energia quando si chiude alla ricezione oppure quando crea blocchi o

Questa pagina può essere fotocopiata esclusivamente per uso didattico - © Loescher Editore

La  domanda  chiede  di  individuare,  fra  quattro  opzioni, quale titolo alternativo a “Carta contro  pixel” potrebbe essere adatto per sintetizzare il