La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

ND-partizione (A) n   A  somma  0 M  1/2 (  a i ) for i  1 to n do S[i]  choice ({true, false}) if S[i] then somma  somma + a i if somma > M then.

Presentazioni simili


Presentazione sul tema: "ND-partizione (A) n   A  somma  0 M  1/2 (  a i ) for i  1 to n do S[i]  choice ({true, false}) if S[i] then somma  somma + a i if somma > M then."— Transcript della presentazione:

1 ND-partizione (A) n   A  somma  0 M  1/2 (  a i ) for i  1 to n do S[i]  choice ({true, false}) if S[i] then somma  somma + a i if somma > M then failure if somma = M then success failure Esercizio 1 1. Scrivere un programma non deterministico di complessità polinomiale per il problema “Partizione” Partizione: Dato un insieme di interi positivi A = {a 1, a 2,…, a n }, esiste un sottoinsieme S degli indici {1, 2,…, n} tale che  i  S a i =  i  S a i ?

2 En-partizione (A) n   A  somma  0 M  1/2 (  a i ) if EN_Part (1, somma) then write “esiste il sottoinsieme cercato” else write “il sottinsieme cercato non esiste” 1. Scrivere l’equivalente programma deterministico per enumerazione

3 EN_Part (i, somma) if i  n then S[i]  false if EN_Part (i+1, somma) then return true S[i]  true if somma + a i = M then return true if somma + a i < M then return EN_Part (i +1, somma + a i ) else return false

4 1. Dimostrare che CRICCA ott  P  CRICCA dec  P. Sia ALG ott un algoritmo deterministico di complessità polinomiale che, dato un grafo G, trova la dimensione massima di una cricca in G. Si può allora scrivere il seguente algoritmo, deterministico e con la stessa complessità di ALG ott, per risolvere il problema di decisione: Esercizio 2 ALG dec (G, k) h  ALG (G) if h  k then return true else return false

5 2. Dimostrare che CRICCA dec  P  CRICCA ott  P. Sia ALG dec un algoritmo deterministico di complessità polinomiale che risolve il problema CRICCA dec. Si può allora scrivere il seguente algoritmo deterministico per trovare la dimensione massima di una cricca in un grafo. ALG ott (G) n  |V[G]| k  n while k > 1 do if ALG dec (G, k) then return (k) k  k-1 return (k) Complessità: O((n-1). p), se O(p) è la complessità di ALG dec

6 Esercizio 3 Sia  un algoritmo che verifica la soddisfacibilita` delle formule booleane e siano {x 1,…,x n } le variabili che occorrono nella formula fornita in input. Possiamo allora costruire il seguente algoritmo: Dimostrare che, se esistesse un algoritmo deterministico di complessita` polinomiale che verifica la soddisfacibilita` di formule booleane, esisterebbe anche un algoritmo deterministico cdi complessita` polinomiale che, data una formula, trova, se esiste, un assegnamento che la soddisfa.

7  (  ) n  |Var (  )| if  (  ) then for i  1 to n do x i  true    [x i / true] if  (  ) then    else x i  false    [x i / false] else write “la formula non è soddisfacibile” L’algoritmo  effettua n-1 chiamate ad , se n e` il numero di variabili in , quindi se  fosse di complessita`polinomiale, anche  lo sarebbe.


Scaricare ppt "ND-partizione (A) n   A  somma  0 M  1/2 (  a i ) for i  1 to n do S[i]  choice ({true, false}) if S[i] then somma  somma + a i if somma > M then."

Presentazioni simili


Annunci Google