lettori settimana santa - Parrocchia di Martellago

23/01/2014
Algoritmi e strutture di dati 2
Paola Vocca
Lezione 10: Algoritmi di approssimazione
Problemi di decisione
• un problema di decisione è un sottoinsieme
dell'insieme di tutte le possibili sequenze binarie, in
particolare tutte le sequenze che soddisfano una
determinata proprietà.
• un problema decisionale appartiene alla classese
esiste un algoritmo polinomiale A che, presa in ingresso
una sequenza binaria , determina se appartiene a o meno.
Lezione 10: Algoritmi di approssimazione
2
1
23/01/2014
La classe NP
•
•
Un problema in NP non ammette un algoritmo di risoluzione
polinomiale, e:
o se una sequenza appartiene a allora deve esistere una
dimostrazione breve (polinomiale) di questo fatto
o la dimostrazione può essere verificata in tempo polinomiale
Formalmente, NP include tutti i problemi di decisione per i
quali esiste un algoritmo polinomiale V e un polinomio tali
che, per ogni sequenza binaria :
o Completezza: se appartiene a , allora esiste un certificato
polinomiale (sequenza di lunghezza (||)) tale che V,
avendo in ingresso e , termina restituendo il valore TRUE;
o Consistenza: se non appartiene a , allora, per ogni
sequenza , V, avendo in ingresso e , termina restituendo il
valore FALSE.
Lezione 10: Algoritmi di approssimazione
3
P e NP
• La classe P è contenuta in NP.
• Dato un problema in P , con A un algoritmo di
risoluzione polinomiale per , possiamo definire V nel
modo seguente.
• Per ogni e , V con e in ingresso
o restituisce il valore TRUE se A con in ingresso risponde in
modo affermativo
o altrimenti restituisce il valore FALSE
• Chiaramente, V (per un qualunque polinomio e senza
usare ) soddisfa le condizioni di completezza e
consistenza sopra descritte: quindi, appartiene a NP.
Lezione 10: Algoritmi di approssimazione
4
2
23/01/2014
Riducibilità polinomiale
• Problemi , ′ ;
o polinomialmente riducibile a ′ se l'esistenza di un
algoritmo di risoluzione polinomiale per ′ implica
l'esistenza di un tale algoritmo anche per o polinomialmente trasformabile in ′ se esiste un
algoritmo polinomiale T tale che, per ogni sequenza
binaria , ∈ se e solo se T con in ingresso restituisce
una sequenza binaria in ′.
• polinomialmente trasformabile in ′ implica polinomialmente riducibile a ′.
• Se esiste un algoritmo polinomiale A di risoluzione per ′,
allora la composizione di T con A fornisce un algoritmo
polinomiale di risoluzione per .
Lezione 10: Algoritmi di approssimazione
5
Problemi NP-completi
Un problema di decisione è NP-completo se:
o appartiene a NP
o ogni problema in NP è polinomialmente trasformabile in e almeno tanto difficile quanto ogni altro problema in NP
Dimostrare che è in P, implica che l'intera classe NP è
contenuta in P (e quindi P=NP).
Lezione 10: Algoritmi di approssimazione
6
3
23/01/2014
Problemi NP-completi
Lezione 10: Algoritmi di approssimazione
7
Approssimazione
• Possibili approcci alla soluzione di problemi NP-completi
o Uso di tecniche non polinomiali (nel caso pessimo)
o Analisi nel caso medio
o Algoritmi di approssimazione
Lezione 10: Algoritmi di approssimazione
8
4
23/01/2014
Problemi di ottimizzazione
Problema di ottimizzazione
• =< , (), (), >:
o :istanze del problema
o :spazio di ricerca; data ∈ , ()indica le soluzioni
ammissibili di o : misura definita per coppie (, )tali che ∈ , ∈ ()
o : tipo di problema (max, min)
Lezione 10: Algoritmi di approssimazione
9
Tipi di problemi
• Tre problemi:
o Valore della soluzione ottima: data ∈ , il valore della
soluzione ottima è
∗ () = {(, )| ∈ ()}.
o Soluzione ottima: data ∈ una soluzione ottima è una
qualunque soluzione ∈ ∗ = ∈ , =
∗ ()}.
o Problema di decisione: data ∈ e ∈ ℕdecidere se
esiste tale che (, ) ≤ ( = min)o
o(, ) ≥
( = max).
Lezione 10: Algoritmi di approssimazione
10
5
23/01/2014
Esempio
Problema del commesso viaggiatore (Traveling Salesman
Problem: MIN-TSP).
o : grafi completi con pesi sugli archi
o : dato ( ∈ , (() = insieme dei possibili cicli Hamiltoniani su (
(permutazioni dei nodi di G che individuano un percorso che
visita esattamente una volta ogni vertice e torna al vertice di
partenza)
o :somma dei pesi degli archi appartenenti al ciclo
) , * , …, ,-* , )
o : min
• Tre problemi:
o dato (trovare il valore del ciclo di costo minimo
o dato (trovare un ciclo di costo minimo
o dato (e decidere se esiste un ciclo di costo ≤ .
Lezione 10: Algoritmi di approssimazione
11
Classe NPO
• Gli algoritmi di approssimazione sono interessanti
soprattutto per i problemi che hanno la versione di
decisione nella classe ..
• Classe Nondeterministic Polynomial Optimization
• Un problema di ottimizzazione =< , (), (), >
appartiene alla classe NPO se gode delle seguenti
proprietà:
o l’insieme è decidibile in tempo polinomiale;
o esiste un polinomio /tale che, data un’istanza ∈ , per
qualsiasi ∈ 01()vale che ∈ /(||);inoltre, per ogni
tale che || ≤ /(||),l’appartenenza a 01()è
decidibile in tempo polinomiale;
o la funzione misura ()è computabile in tempo
polinomiale.
Lezione 10: Algoritmi di approssimazione
12
6
23/01/2014
Classe PO
Lezione 10: Algoritmi di approssimazione
13
Algoritmi di approssimazione
• Dato un problema di ottimizzazione =< , (), (), >
un algoritmo di approssimazione è un algoritmo 3che
data un’istanza ∈ , fornisce una soluzione 3() = ∈
().
Valutazione dell’errore.
• Per determinare la qualità di un algoritmo di
approssimazione è necessario valutare l’entità
dell’errore delle soluzioni calcolate.
• Esistono due misure comuni per valutare la qualità di
una soluzione non esatta: l’errore relativo e il rapporto di
approssimazione.
Lezione 10: Algoritmi di approssimazione
14
7
23/01/2014
Errore relativo
Lezione 10: Algoritmi di approssimazione
15
Rapporto di approssimazione
In alternativa all’errore di approssimazione:
• Dato un problema di ottimizzazione ,
• per ogni istanza ∈ e per ogni soluzione ammissibile
∈ 01 (),
• Il rapporto di approssimazione di prestazione della
soluzione rispetto all’istanza è la quantità
, ∗ 45 , ≝ 7
,
∗ , • Nota: 45 , = * quando la soluzione è esatta, ≫ *
quando è di pessima qualità.
• Nota: Chiaramente i due indici sono collegati:
*
9::5 , = * − 4 ,
5
Lezione 10: Algoritmi di approssimazione
16
8
23/01/2014
Rapporto di approssimazione: Note
• Spesso può essere più intuitivo usare sempre il rapporto
,
che risulta ≤ *per problemi di massimizzazione e
∗
≥ *per problemi di minimizzazione.
• Chiaramente un algoritmo di approssimazione A per un
problema di ottimizzazione NP-hard è interessante se,
data un’istanza di , esso fornisce efficientemente,
cioè in tempo polinomiale in ||,una soluzione
approssimata A(x).
• In tal caso diciamo che A è un algoritmo di
approssimazione polinomiale e che è un problema
polinomialmente approssimabile.
Lezione 10: Algoritmi di approssimazione
17
Algoritmo di approssimazione:
Esempio
Esempio. Si consideri il seguente algoritmo per MAX-SAT:
• Maximum Satisfiability problem (MAX-SAT) è il problema di
determinare il massimo numero di clausole di una
determinata formula booleana, che possono essere
soddisfatte da un’assegnazione di verità.
ALGORITMO GREEDY SAT (Tecnica greedy)
Data una formula < = {=*, =>, … , =} ∈ ?.@:
ripeti
1. scegliere un letteraleAtra quelli che occorrono il massimo
numero di volte (affermato o negato);
2. seA = porre x=V
3. se A = ¬porre x=F
4. cancellare le clausole in cui occorre Ae cancellare ¬Adalle
altre finché <è vuota.
Lezione 10: Algoritmi di approssimazione
18
9
23/01/2014
Dimostrazione di approssimazione
Teorema L’algoritmo Greedy Sat è 2-approssimato.
Dimostrazione. Per induzione sul numero ,di variabili. Supponiamo di
avere clausole.
• Passo base: se , = * il risultato è vero.
• Ipotesi induttiva: supponiamo che l’enunciato del teorema sia
soddisfatto nel caso di , − * variabili ed ’clausole. L’algoritmo
garantisce dunque il soddisfacimento di almeno ’/>clausole.
• Supponiamo ora di avere ,variabili. Sia AG = G il letterale che
compare più.
• Supponiamo che Gcompaia =* volte e ¬Gcompaia => volte con
=* ≥ => .
• Assegnando a G valore H :soddisfiamo =* clausole. Ora
abbiamo una formula con , − *variabili ed ’ ≥ − =* − =>
clausole. Per ipotesi induttiva di queste ne possiamo soddisfare
almeno ’/>e quindi in tutto possiamo soddisfare =* + ’/> ≥
=* + ( − =* − => )/> ≥ />clausole. QED
Lezione 10: Algoritmi di approssimazione
19
Algoritmo di approssimazione
Lezione 10: Algoritmi di approssimazione
20
10
23/01/2014
Algoritmo di approssimazione
Lezione 10: Algoritmi di approssimazione
21
Algoritmo di approssimazione
Definizione con il rapporto di approssimazione
• Dato un algoritmo A per un problema di ottimizzazione • Data una costante: ≥ *,
o si dice che A è un algoritmo :-approssimante se e solo per
qualsiasi input , il rapporto di approssimazione della
soluzione determinata è inferiore alla costante ::
4(, 3 ) ≤ :
Nota!
• Un algoritmo esatto è 1-approssimante.
Lezione 10: Algoritmi di approssimazione
22
11
23/01/2014
Rapporto di approssimazione: Proprietà
Lezione 10: Algoritmi di approssimazione
23
Problema approssimabile
Lezione 10: Algoritmi di approssimazione
24
12
23/01/2014
Problema approssimabile
• Anche se alcuni problemi di ottimizzazione in NPO hanno
la versione di decisione NP-completa, risultano essere
sono molto diversi da un punto di vista
dell’approssimabilità.
• Accade infatti che:
o alcuni problemi sono approssimabili per valori di : ≥ ,
dove > *è una costante caratteristica del problema e
prende il nome di soglia di approssimazione;
o alcuni problemi sono approssimabili per valori di : >
*arbitrariamente vicini ad *.
o alcuni problemi non sono approssimabili per alcun
:costante;
Lezione 10: Algoritmi di approssimazione
25
Problema del commesso viaggiatore
Lezione 10: Algoritmi di approssimazione
26
13
23/01/2014
Problema del commesso viaggiatore:
NP-completezza
•
•
Teorema. Ciclo hamiltoniano è trasformabile in tempo
polinomiale nella versione decisionale del problema del
commesso viaggiatore.
Dimostrazione. Dato un grafo ( = (H, 9), definiamo un grafo
completo () = (H, 9) ) e una funzione tale che, per ogni
arco ∈ 9) , ( ) = * se ∈ 9, altrimenti ( ) = >. Scegliendo
= |H|, abbiamo che se esiste un ciclo hamiltoniano in (,
allora esiste un tour in () il cui costo è uguale a . Viceversa,
se non esiste un ciclo hamiltoniano in (, allora ogni tour in ()
deve includere almeno un arco il cui peso sia pari a 2, per cui
ogni tour ha un costo almeno pari a + *.
•
Iil problema del commesso viaggiatore (nella sua forma
decisionale) è NP-completo.
•
il problema di ottimizzazione non ammette neanche un
algoritmo efficiente di approssimazione.
Lezione 10: Algoritmi di approssimazione
27
Problema del commesso viaggiatore:
non approssimabilità
Teorema. Sia : > *una qualsiasi costante, non esiste alcun algoritmo di
: −approssimazione di complessità polinomiale per il problema del
commesso viaggiatore a meno che . = .
Dimostrazione. Per assurdo, sia : > *una costante e sia A un algoritmo
polinomiale di : −approssimazione per TSP.
Dato un grafo ( = (H, 9), definiamo un grafo completo () = (H, 9) ) e
una funzione tale che, per ogni arco ∈ 9), ( ) = * se ∈ 9,
altrimenti ( ) = 1+s|V|, dove > : − *.
• () ammette un tour di costo|V| sse (ha un circuito hamiltoniano
(un tale tour deve necessariamente usare archi di peso pari a *).
• Sia Jil tour di TSP che viene restituito da A con () in ingresso.
• Jpuò essere usato per decidere se (ammette un HC, se :
1.
2.
Il costo di J è uguale a|V|, per cui è tour ottimo. Allora (ammette
un ciclo hamiltoniano.
Il costo di J è maggiore di|V|, per cui il suo costo deve essere
almeno pari a |H| − * + * + |H| = (* + )|H| > :|H|. In questo caso, il
tour ottimo non può avere costo pari a |H|, in quanto altrimenti il costo
di J è maggiore di :volte il costo ottimo, allora A non è un algoritmo
di r-approssimazione:
quindi, non esiste un ciclo hamiltoniano in G. 28
Lezione 10: Algoritmi di approssimazione
14
23/01/2014
Tecnica del gap e risultati di non
approssimabilità
: problema di minimizzazione
1: un linguaggio NP-completo
Se esistono due funzioni K e =tali che
• Ktrasforma istanze del problema di decisione associato
ad 1in istanze di e, per un opportuno valore ‘gap’:
o se ∈ 1 allora ∗ K o se ∉ 1 allora
∗ (K())
≤= ≥ =()(* + M7).
• allora per non può esistere alcun algoritmo
: −approssimato con : < (* + M7)a meno che non sia
P=NP.
Lezione 10: Algoritmi di approssimazione
29
Tecnica del gap: Dimostrazione
• DIMOSTRAZIONE. Supponiamo per assurdo che 3sia un
algoritmo : −approssimato per e che : < * + M7. Per
decidere in tempo polinomiale se ∈ 1 o meno
possiamo procedere nel seguente modo. Calcoliamo
l’istanza K() del problema e poi applichiamo
l’algoritmo approssimato 3ad K() .
o Se abbiamo (K(), 3(K())) ≥ =()(* + M7)ciò implica
∗ (K()) > =()e quindi ∉ 1. Infatti abbiamo:
(* + M7)∗ (K()) > :∗ () ≥ (K(), 3(K()))
≥ =()(* + M7)
o Al contrario, se (K(), 3(K())) < =()(* + M7)a maggior
ragione∗ (K()) < =()(* + M7)e quindi ∈ 1.
o QED
Lezione 10: Algoritmi di approssimazione
30
15
23/01/2014
Minimum vertex cover
• Vertex Cover: Una copertura tramite vertici di un
( = (H, 9) non orientato è un sottoinsieme dei suoi
vertici tale che ogni arco ha almeno un'estremità in .
• Vertex Cover è NP-Completo
il problema di
ottimizzazione associato Minimo Ricoprimento di Vertici
è NPO.
Lezione 10: Algoritmi di approssimazione
31
Minimum vertex cover
Lezione 10: Algoritmi di approssimazione
32
16
23/01/2014
Minimum vertex cover
Lezione 10: Algoritmi di approssimazione
33
Minimum vertex cover
Lezione 10: Algoritmi di approssimazione
34
17
23/01/2014
Minimum vertex cover
Lezione 10: Algoritmi di approssimazione
35
Minimum vertex cover
Lezione 10: Algoritmi di approssimazione
36
18
23/01/2014
Vertex cover
• L’insieme trovato rappesenta un matching
Lezione 10: Algoritmi di approssimazione
37
Schemi di approssimazione
• Un algoritmo 3(, N)si chiama schema di
approssimazione polinomiale (PTAS) per un problema di
ottimizzazione se per ogni valore N esiste un polinomio
/tale che, per ogni istanza di l’algoritmo restituisce
una soluzione approssimata tale che l’errore relativo
9::(, ) ≤ N,in tempo limitato da /(||).
o Si noti che in questo caso il grado del polinomio può
dipendere da N .
• Un algoritmo 3(, N)si chiama schema di
approssimazione pienamente polinomiale (FPTAS) per
un problema di ottimizzazione se esiste un polinomio
/tale che, per ogni istanza di e per ogni valore N
l’algoritmo restituisce una soluzione approssimata tale
che 9::(, ) ≤ N,in tempo limitato da /( , */N)
Lezione 10: Algoritmi di approssimazione
38
19
23/01/2014
Min Parttion: PTAS
Lezione 10: Algoritmi di approssimazione
39
Algoritmo Min Partition
ALGORITMO MinPartition
{basato su sulla tecnica di completamento}
1. Data un’istanza del problema costituita da un insieme di
oggetti con pesi 7* , … , 7, , e un valore : > *:
2. ordinare gli oggetti in ordine di peso non crescente;
3. definire = (> − :)/(: − *) (ad esempio: se: = **/*),
= O);
4. individuare una partizione ottima dei primi elementi;
5. inserire i rimanenti elementi via via nell’insieme di peso
minore.
Lezione 10: Algoritmi di approssimazione
40
20
23/01/2014
Algoritmo Min Partition:
Dimostrazione
•
•
Th: L’algoritmo MinPartition è uno schema di approssimazione
:-approssimante che richiede tempo 0(,log, + > )
Dimostrazione. Assumiamo che:
o 7* , … , 7, siano i pesi degli oggetti ordinati in modo non
crescente,
o 3*ed 3>siano gli insiemi creati dall’algoritmo, <(3*)e <(3>)
siano i loro pesi e <(3*) > <(3>),
o ∗ () sia il valore della soluzione ottima,
o RST1 = (<(3*) + <(3>))/> ≤ ∗ () (la media dei pesi èun
lower bound per ogni soluzione)
o sia : < >,
o Sia 7A l’ultimo oggetto inserito in A1 con l > k (quindi solo parte
degli oggetti sono stati distribuiti in modo ottimo).
o Abbiamo dunque:
<(3*)– 7A ≤ <(3>) = >1– <(3*)
Lezione 10: Algoritmi di approssimazione
41
Algoritmo Min Partition:
Dimostrazione (2)
al
V
,
WXAY*
7W
Z(3*)
Z(3>)
Lezione 10: Algoritmi di approssimazione
42
21
23/01/2014
Algoritmo Min Partition:
Dimostrazione (3)
•
•
•
•
e quindi <(3*)– 1 ≤ 7A />.
Inoltre 7A ( + *) ≤ >1e quindi 7A />1 ≤ */( + *).
<(3*)/∗ () ≤ <(3*)/1 ≤ * + 7A />1 ≤ * + */( + *)
≤ * + */((> − :)/(: − *) + *) ≤ :
Per quanto riguarda il tempo di esecuzione abbiamo:
o 0(,log,)per ordinare gli oggetti,
o 0(> )per effettuare il partizionamento ottimo dei primi oggetti,
o 0(,)per inserire gli ultimi ,– oggetti.
o In totale 0(,log, + > )QED
Come si vede il costo è polinomiale se si assume fissato,
altrimenti sarebbe esponenziale in (sostanzialmente,
esponenziale in */:).
Lezione 10: Algoritmi di approssimazione
43
Knapsack: FPTAS
Esempio di schema di approssimazione pienamente polinomiale.
• Per fornire un esempio di problema che ammette uno
schema di approssimazione polinomiale pieno, dobbiamo
prima introdurre il problema dello knapsack (bisaccia) ed
illustrare l’algoritmo per la sua soluzione ottima.
• MAX KNAPSACK: dato un insieme di oggetti dotati di:
o pesi interi 7* , … , 7,
o profitti interi * , … , ,
o Un ntero Z(capacita),
• individuare un sottoinsieme di tale da massimizzare ∑,\X* \
con il vincolo ∑,\X* 7\ ≤ ].
Abbiamo già visto un algoritmo pseudopolinomiale
basata sulla tecnica di programmazione dinamica
Θ(,Z)
Lezione 10: Algoritmi di approssimazione
44
22
23/01/2014
Knapsack: FPTAS
Nota bene. Tempo di esecuzione pseudopolinomiale:
polinomiale non nella taglia dell’input ma nei valori che
compaiono nell’input!
• Il seguente algoritmo è uno schema di approssimazione
pienamente polinomiale.
ALGORITMO APPROX-BISACCIA
(Tecnica di scalatura, o partizionamento fisso)
Data un’istanza I del problema MAX KNAPSACK e dato un
valore ^ ≤ *:
1. sia = ^7 /,;
2. creare una nuova istanza ′ con pesi 7* , … , 7, , e profitti
′* , … , ′, con ′, = , /;
3. risolvere ′ in modo esatto con l’algoritmo di
programmazione dinamica;
4. determinare 3 () = (’).
•
Lezione 10: Algoritmi di approssimazione
45
FPTAS per Knapsack: Dimostrazione
Dimostrazione.
• Errore compiuto ad ogni passo ≤ .
• Errore totale ≤ ,.
• Errore relativo ≤ ,/∗ () ≤ ,/7 ≤ ^.
• Tempo di esecuzione 0(,> ′7 ) = 0((,> 7 /) =
0((,_ /^). QED
Lezione 10: Algoritmi di approssimazione
46
23
23/01/2014
Classi di approssimabilità
• APX: classe di problemi di ottimizzazione in .0che
ammettono un algoritmo polinomiale :-approssimato
per un opportuno :.
• PTAS: classe di problemi di ottimizzazione in .0che
ammettono uno schema di approssimazione
polinomiale.
• FPTAS: classe di problemi di ottimizzazione in .0che
ammettono uno schema di approssimazione
pienamente polinomiale.
• E’ possibile dimostrare che, se ≠ ., allora
.0 ⊃ 3b ⊃ J3 ⊃ @J3 ⊃ 0
Lezione 10: Algoritmi di approssimazione
47
Relazioni fra le classi di complessità
Lezione 10: Algoritmi di approssimazione
48
24