Sei sulla pagina 1di 20

Raccolta temi desame del corso di Complessit

Roberto Posenato
7 settembre 2006
Anno accademico 2001/2002
1 Appello del 24/06/2002
Esercizio 1.1. (Esercizio annunciato) Dimostrare il teorema della gerarchia in spazio: Se f (n) una fun-
zione di complessit propria, allora SPACE( f (n)) SPACE( f (n) log f (n)). Il fattore log f (n) necessario?
Soluzione. Se si dimostra il teorema ripercorrendo in modo quasi sintattico la dimostrazione offerta dal
Papadimitrou, si ottiene che conil lemma 1 si dimostra che H
f
SPACE( f (n)
3
) anzich SPACE( f (n) logn).
Per cui tutta la costruzione che si ottiene dimostra in modo diretto e semplice la tesi per funzioni proprie
almeno lineari.
Una dimostrazione alternativa del teorema data dalla seguente, in cui non si ricorre alla macchina
di Turing (MdT) Universale, ma si sfrutta il lemma in cui si dimostra che una k-MdT che opera in spazio
f (n) simulabile da una 1-MdT che opera in spazio O( f (n)).
Teorema 1.1.1. Siano S
1
(n) e S
2
(n) due funzioni spazio proprie (entrambe almeno logn) e S
2
(n)
w(S
1
(n)). Allora esiste un linguaggio in SPACE(S
2
(n)) che non appartiene a SPACE(S
1
(n)).
Dimostrazione. Si ssi una codica binaria ragionevole di tutte le MdT con I/O con 1 nastro lavoro
e che accettino lalfabeto dinput {0, 1}. Si permetter che ogni codica sia pressa da una stringa di
lunghezza arbitraria nita costituita dal carattere 1: in questo modo la medesima MdT potr avere pi
codiche.
Costruiamo ora una MdT M con I/O a 3 nastri lavoro che operi in spazio S
2
(n) e che differisce
almeno su un input con qualsiasi MdT codicata che opera in spazio S
1
(n).
Su input w {0, 1}
n
, M inizia marcando esattamente S
2
(n) celle sui tutti i nastri lavoro. Questo si
pu fare in quando S
2
() propria. Se durante la simulazione, M tenta di scrivere al di fuori delle celle
marcate, essa si ferma in uno stato di riuto. In questo modo garantiamo che M opera in spazio S
2
(n).
Dato linput x, M inizia la simulazione della macchina di Turing M
x
su input x copiando x (codica
della MdT M
x
) sul primonastrolavoroe togliendocontemporaneamente gli eventuali 1 che riempiono
in testa la codica. M user questo nastro per determinare le mosse della macchina da simulare. Sui
nastri 2 e 3, M mantiene la codica binaria dello stato e del nastro di lavoro di M
x
. Se M
x
si ferma e
riuta x nello spazio disponibile, M accetta x, altrimenti M riuta.
Datoche M opera inspazioS
2
(n), il linguaggioL
M
SPACE(S
2
(n)). Supponiamoora L
M
SPACE(S
1
(n)).
Allora deve esistere una MdT M
t
che decide L
M
e che opera in spazio S
1
(n). M
t
ha una codica nelle-
numerazione, supponiamo che sia w
t
di lunghezza n. Lo spazio richiesto da M per simulare M
t
su
input w
t
max{e, ]logs], ]logt ]S
1
(n)}, dove e la lunghezza della pi corta codica di M
t
e s, t sono il
numero di passi e di simboli di M
t
.
DatoS
2
(n) w(S
1
(n)), se si sceglie n sufcientemente grande, possiamoottenere S
2
(n) >max{e, ]logs], ]logt ]S
1
(n)}.
In questo modo, su input w
t
, M ha sufciente spazio per completare la simulazione di M
t
a accettare
se e solo se M
t
riuta. Quindi lassurdo.
Esercizio 1.2. Dimostrare che NTIME(n) PSPACE. Se fosse NTIME(n
k
) cosa cambierebbe?
1
Soluzione. Una possibile semplice dimostrazione, che sfrutta anche il risultato del primo esercizio, la
seguente.
Dato che n funzione propria, stato dimostrato che NTIME(n) SPACE(n). Per il teorema della
gerarchia in spazio, SPACE(n) SPACE(nlogn) SPACE(n
2
) PSPACE. Di conseguenza, la tesi.
La classe parametrica NTIME(n
k
) non altro che un modo sintetico di scrivere

k>0
NTIME(n
k
)
NP. Per lo stesso primo lemma di sopra, NP NPSPACE e dato che stato dimostrato che NPSPACE
PSPACE, si ottiene che NTIME(n
k
) PSPACE.
Esercizio1.3. Se P=NP, allora esiste un algoritmo polinomiale in tempo che, data una formula booleana
, determina un assegnamento di verit per se questa soddisfacibile. Esibire tale algoritmo.
Soluzione. Se P=NP, allora SAT P per cui ammette un algoritmo polinomiale in tempo che, data in
input una formula , decide se essa soddisfacibile. Supponiamo che tale algoritmo sia A().
Dobbiamo esibire un algoritmo che determini un assegnamento di verit per la formula in input, se
questa soddisfacibile.
INPUT (x
1
, . . . , x
n
)
if A() == NO then
termina
else
for all x
i
do
x
i
ver o
Sostituisci in tutti i letterali associati alle variabili gi assegnate con i corrispondenti valori
if A() == NO then
x
i
f al so
end if
end for
end if
OUTPUT x
1
, . . . , x
n
Lalgoritmo polinomiale in quanto loperazione pi costose sono le n +1 (al pi) chiamate allalgo-
ritmo A().
Esercizio 1.4. Determinare una riduzione diretta, logaritmica in spazio, da SAT a 3-SAT.
Soluzione. Si deve esibire una riduzione R calcolabile in spazio logn e tale che se unistanza di SAT,
soddisfacibile se e solo se R() soddisfacibile.
Sia unistanza di SAT.
Se sono presenti clausole di lunghezza inferiore a 3, per ciascuna di queste sufciente ricopiare un
letterale presente nella clausola per al max 2 volte per ottenere una clausola equivalente di lunghezza 3:
(l
1
l
2
) (l
1
l
2
l
2
).
Se sono presenti clausole di lunghezza superiore a 3, per ciascuna di queste (supponiamo di dimensio-
ne k) sufciente introdurre k 3 variabili ausiliarie e spezzare la clausola in k 2 clausole di lunghezza
3, seguendo il seguente schema:
(l
1
l
2
. . . l
k
) (l
1
l
2
c
1
) (c
1
l
3
c
2
) (c
2
l
4
c
3
) . . . (c
l 3
l
k1
l
k
)
Se la clausola originale soddisfacibile, allora possibile determinare un assegnamento di verit per la
variabili ausiliarie in modo tale che anche il gruppo delle clausole corrispondente soddisfacibile.
Se la clausola originale NON soddisfacibile, allora NON possibile determinare un assegnamento
che soddis tutte le clausole corrispondenti.
La costruzione in spazio logaritmico di immediata dimostrazione, notando che la costruzione
meccanica (per cui rappresentabile dalla funzione ) e che occorrono solo pochi contatori binari per
tenere traccia sia degli indici delle variabili, delle clausole e delle variabili ausiliarie.
2
2 Appello del 15/07/2002
Esercizio 2.1. Dimostrare che la classe NL chiusa rispetto alle operazioni di unione e concatenazione.
(max 7 punti)
Esercizio 2.2. Descrivere lerrore nella seguente dimostrazione errata che P /NP. Si consideri un algo-
ritmo per SAT del tipo: Su input , prova tutti i possibili assegnamenti alle variabili. Accetta se almeno
un assegnamento soddisfa . Questo algoritmo chiaramente richiede tempo esponenziale. Perci SAT
ha complessit esponenziale, quindi SAT / P. Dato che SAT in NP, si ottiene che P /NP. (max 7 punti)
Esercizio 2.3. Dimostrare che , N
+
< , TIME(n

) TIME(n

). possibile dimostrare che


anche TIME(n

2
n
) TIME(n

2
n
)? (max 8 punti)
Soluzione. Per dimostrare la prima parte, sufciente ricorrere al teorema di gerarchia in tempo e
dimostrare che n

(logn

)
2
O(n

).
Per la seconda parte, non possibile dimostrare che linclusione stretta in quanto n

2
n
(logn

2
n
)
2
/
O(n

2
n
) (per quale valore di ?).
Esercizio 2.4. Data una MdT M e due interi n, m, esiste un algoritmo che decide se M utilizza spa-
zio m per qualche input di lunghezza n? Se s, dare una dimostrazione con analisi di complessit
dellalgoritmo. Se no, dare una dimostrazione formale. (max 8 punti)
3 Appello del 02/09/2002
Esercizio 3.1. Si riassumano i principali risultati di equivalenza (o non equivalenza), relativamente
allaspetto computazionale, tra i modelli di calcolo RAM e MdT. (max 7 punti)
Esercizio 3.2. Si denisca la classe TIME( f (n)). Se x TIME( f (n)), in quali altre classi TIME(g(n))
presente? Giusticare la risposta. (max 7 punti)
Esercizio 3.3. Dimostrare che , N
+
<, SPACE(n

) SPACE(n

). possibile dimostrare che


anche SPACE(n

2
n
) SPACE(n

2
n
)? (max 8 punti)
Soluzione. Entrambe le inclusioni sono dimostrabili ricorrendo al teorema di gerarchia in spazio e di-
mostrando che n

logn

O(n

) per il primo caso e che 2


n
n

log(2
n
n

) O(2
n
n

) nel secondo.
Esercizio3.4. Si denisca in modo rigoroso il concetto di riduzione e di riduzione logaritmica inspazio.
Si esibisca una riduzione logaritmica in spazio tra CIRCUIT SAT e SAT. (max 8 punti)
Anno accademico 2002/2003
4 Appello del 09/12/2002
Esercizio 4.1. Quali sono i risultati principali che permettono di dimostrare che NL PSPACE. Giusti-
care la risposta. (max 7 punti)
Soluzione. Si dimostrato che NSPACE( f (n)) SPACE( f (n)
2
) quando f (n) logn. Applicando tale ri-
sultato a NL, si ottiene che NL SPACE((logn)
2
). Per il teorema di gerarchia in spazio (SPACE( f (n))
SPACE( f (n) log f (n))), si ottiene che SPACE((logn)
2
) SPACE((logn)
2
log(logn)
2
) SPACE(2(logn)
2
loglogn).
Osservando che loglogn O(logn) e logn O(n), si ottiene SPACE(2(logn)
2
loglogn) SPACE(n
3
)
PSPACE.
Esercizio 4.2. Si supponga che esista una riduzione di complessit in tempo 2
n
tra il linguaggio L
1
e il
linguaggio L
2
e che L
2
TIME(2
n
). Che cosa si pu dire di L
1
? Giusticare la risposta. (max 7 punti)
3
Soluzione. La riduzione permette di convertire unistanza del problema di decisione di L
1
in una del
problema di decisione di L
2
. Dato che L
2
decidibile in tempo 2
n
e la riduzione computabile in tempo
2
n
, L
1
decidibile, nel caso peggiore, in tempo 2
2
n
+c dove c una costante opportuna. Per il teorema
dello speed-up possibile ridurre il tempo di calcolo a 2
2
n
. Quindi L
1
TIME(2
2
n
).
Esercizio 4.3. Indicare quali delle seguenti relazioni sono errate, giusticando la risposta:
1. SAT
log
CIRCUIT SAT;
2. CIRCUIT VALUE
log
;
3. MAX FLOW
log
PATH.
(max 8 punti)
Soluzione.
1. Corretta. sufciente ricordare che CIRCUIT SAT NP-completo e che SAT NP.
2. Errata. Utilizzando come linguaggio, non possibile nemmeno denire una riduzione. Infatti
non possibile costruire una funzione f : CIRCUIT VALUE tale che x

, x CIRCUIT VALUE
f (x) .
3. Allo stato attuale noto un algoritmo che risolve il problema MAX FLOW mediante la risoluzione
di una successione di istanze opportune del problema PATH e che PATH SPACE((logn)
2
). Quin-
di, dato che ogni grafo si pu generare in uno spazio O(logn) e si pu riutilizzare lo spazio nella
generazione dei gra, la riduzione pu essere computata in spazio O((logn)
2
). Questo per non
esclude che si possa ottenere una riduzione migliore. Il problema ancora aperto.
Esercizio 4.4. Un triangolo in un grafo non diretto una cricca di ordine 3. Dimostrare che il problema
TRIANGOLO{G [ G contiene un triangolo} P. (max 8 punti)
Soluzione. Per dimostrare che TRIANGOLO P sufciente esibire un algoritmo polinomiale in tempo.
Un algoritmo banale basato sulla ricerca esaustiva della soluzione:
1. si generano tutte le possibili terne di nodi del grafo (sono n(n 1)(n 2) e per generare ciascuna
terna server un tempo costante);
2. per ciascuna, si verica se i nodi sono connessi fra loro (il tempo richiesto , nel caso peggiore, al
pi 3n(n 1));
3. se si trova una terna completamente connessa, la risposta s, altrimenti la risposta no.
semplice vericare che nel caso peggiore, la complessit di questo algoritmo O(n
5
).
5 Appello del 24/03/2003
Esercizio 5.1. Fornire la denizione formale della classe di complessit EXP e dimostrare la relazione
esistente tra EXP e la classe NP. (max 7 punti)
Soluzione. La classe di complessit EXP

+
k0
TIME(2
n
k
) dove la classe TIME(m) la classe dei lin-
guaggi decisi dalle Macchina di Turing deterministiche che lavorano in tempo m. stato dimostrato che
NTIME( f (n)) TIME(c
f (n)+logn
), dove c una costante. Si pu quindi dedurre che, dopo semplici calcoli,
NP TIME(2
n
k
+logn
) EXP da cui NP EXP.
Esercizio 5.2. Qual la classe di complessit in tempo, deterministica dove presente il problema della
RAGGIUNGIBILIT? Giusticare la risposta. (max 7 punti)
Soluzione. Per il teorema di SavitchRAGGIUNGIBILIT SPACE((logn)
2
). Usando il medesimo risultato
dellesercizio precedente, si ricava che RAGGIUNGIBILIT P.
4
Esercizio 5.3. Si dimostri che la classe P chiusa rispetto alla riduzione
log
. (max 8 punti)
Soluzione. Per dimostrare la chiusura della classe P rispetto alla riduzione
log
, sufciente dimostrare
che, dato un linguaggio L P, se un linguaggio L
t

log
L allora L
t
P.
Ogni computazione in spazio log computabile in tempo polinomiale. Se L
t

log
L, da ogni istanza
di L
t
possibile determinare unistanza di L in tempo polinomiale e quindi risolvere questultima sempre
in tempo polinomiale.
Esercizio 5.4. Si dimostri che il problema INSIEME INDIPENDENTE
log
COPERTURA DEI NODI. Vale
il viceversa? Giusticare le risposte. (max 8 punti)
Soluzione. Dato un grafo non diretto G (V, E), il problema INSIEME INDIPENDENTE richiede di
determinare linsieme dei nodi I S V di cardinalit massima, tale che (x I S y I S) (x, y) / E.
Dato un grafo non diretto G (V, E), il problema COPERTURA DEI NODI richiede di determinare
linsieme dei nodi VC V di cardinalit minima, tale che (x, y) E (x V y V ).
Dalla denizione dei problemi si deduce che tra i due problemi esiste la seguente relazione: V \ I S
VC. Quindi, data unistanza di INSIEME INDIPENDENTE la riduzione a VERTEX COVER data con-
siderando la medesima istanza come istanza di VERTEX COVER e restituendo come risultato linsieme
complemento della soluzione determinata.
Dalla relazione determinata si pu asserire che vale anche il viceversa.
6 Appello del 24/06/2003
Esercizio 6.1. Spiegare cosa si intende per analisi caso peggiore nellambito della teoria della com-
plessit computazionale e perch questa pi usata della cosiddetta analisi del caso medio. (max 7
punti)
Soluzione. Se si considera, ad esempio, il tempo computazionale e si vuole analizzare la complessit
rispetto a questa risorsa, la complessit computazionale di un problema data da una funzione che for-
nisce il tempo di calcolo necessario per risolvere unistanza del problema data la dimensione di questulti-
ma. Considerato che possono esistere piistanze del problema conmedesima dimensione, nellanalisi del
caso peggiore si considera come istanza campione listanza che richiede il maggior tempo computazio-
nale per essere risolta. Nellanalisi del caso medio invece si considerano tutti i tempi computazionali delle
istanze di medesima dimensione e si determina una media pesata rispetto alla probabilit di occorrenza
delle istanze.
Lanalisi del caso peggiore pi utilizzata dellanalisi del caso medio in quanto risulta essere pi con-
servativa (data una misura di complessit si ha la certezza che nessuna istanza di quella dimensione ri-
chiede tempo maggiore) e, spesso, pi semplice da effettuare (non sempre si ha la conoscenza della distri-
buzione di probabilit delle istanze e assumere la equidistribuzione non risulta essere sufcientemente
accurato).
Esercizio 6.2. Si denisca la classe SPACE( f (n)). Se l SPACE( f (n)), in quali altre classi TIME(g(n))
presente? Giusticare la risposta. (max 7 punti)
Soluzione. La classe computazionale SPACE( f (n)) {L[L deciso da una MdT deterministica con I/O che
opera in spazio f (n)}.
Una MdT con I/O M opera in spazio f (n) se x, la computazione M(x) richiede al pi spazio f ([x[).
noto che valgono i seguenti risultati:
SPACE( f (n)) NSPACE( f (n)) (1)
NSPACE( f (n)) TIME(k
f (n)+logn
) (2)
dove k >1 una costante.
Di conseguenza l TIME(g(n)) dove g(n) k
f (n)+logn
.
Esercizio 6.3. Si dimostri in quale classe di complessit si trova la versione di decisione del problema
del commesso viaggiatore. (max 8 punti)
5
Soluzione. Date n citt etichettate da 1 a n e una funzione distanza d : (1, . . . , n) (1, . . . , n) N che
indica la distanza esistente tra ogni coppia di citt, il problema del commesso viaggiatore (TSP) richie-
de di determinare il tour di tutte le citt di lunghezza minima: min

n
1
d((i ), (i +1)) dove una
permutazione e, per convenzione, (n +1) (1).
La versione di decisione del TSP, etichettata con TSP(D), richiede, dato il problema TSP e un intero D,
se esiste un tour di lunghezza minore o uguale di D.
Un algoritmo di risoluzione del problema TSP(D) dato dalla seguente NMdT:
INPUT n citt, la funzione d : (1, . . . , n) (1, . . . , n) N e intero D.
scrivi una sequenza casuale di n citt sul 1 nastro lavoro;
torna allinizio del 1 nastro lavoro;
verica che la sequenza una permutazione (per far questo occorre usare un secondo nastro lavoro)
if sequenza una permutazione then
calcola lunghezza l
else
halt
end if
if l D then
OUTPUT YES
else
OUTPUT NO
end if
Si pu facilmente vericare che il costo computazionale di verica se la sequenza una permutazione
O(n
2
) mentre il costo computazionale del calcolo della lunghezza del tour O(n
3
). I costi delle altra
macro operazioni sono tutti O(n). Lalgoritmo quindi ha costo polinomiale. Di conseguenza TSP(D) NP.
Esercizio 6.4. Si consideri la seguente riduzione: Dati due linguaggi L
1

1
e L
2

2
, L
1
riducibile a
L
2
intempo polinomiale (L
1

m
L
2
) se esiste una funzione f :

2
computabile intempo polinomiale
da una Macchina di Turing deterministica tale che x

1
, x L
1
f (x) L
2
.
Che relazione esiste tra la riduzione
m
e la riduzione
log
?
Se si adottasse la riduzione
m
, quali dei risultati di completezza non potrebbero essere dimostrati?
(max 8 punti)
Soluzione. La riduzione
log
una restrizione della riduzione
m
: infatti, considerando che
log
com-
putata in spazio log e che ogni computazione in spazio logaritmico richiede tempo polinomiale, una
riduzione
log
anche una riduzione
m
.
Se si adottasse la riduzione
m
non sarebbero dimostrabili i risultati di completezza delle classi NL e
L in quanto
m
P e quindi non permetterebbe di preservare la complessit computazionale dei problemi
in NL. Con questa riduzione, tutti i problemi di NL sarebbero NL-completi.
7 Appello del 15/07/2003
Esercizio 7.1. Spiegare cosa si intende per complessit computazionale di un algoritmo e per comples-
sit computazionale di un problema e come si calcolano. Qual il legame fra le due complessit? (max
7 punti)
Soluzione. Con complessit computazionale di un algoritmo si intende esprimere la quantit di una
risorsa computazionale (solitamente il tempo o lo spazio di memoria) utilizzata dallalgoritmo in fun-
zione della dimensione dellinput. Il calcolo della complessit di un algoritmo si determina nel seguente
modo:
1. si ssa un criterio di costo per le istruzioni che compongono lalgoritmo: i pi utilizzati sono
luniforme e il logaritmico. Il costo uniforme assegna un costo costante (tempo o spazio) a ciascuna
istruzione. Il criterio del costo logaritmico assegna ad ogni istruzione un costo proporzionale alla
dimensione dei dati che listruzione deve elaborare.
6
2. Si determina, per ciascuna istruzione, il numero di volte che questa viene eseguita in funzione della
dimensione dellinput.
Dato che possono esistere input diversi ma di pari dimensione e per i quali lalgoritmo pu richie-
dere un numero diverso di esecuzioni delle operazioni, si deve scegliere che tipo di analisi si vuole
fare: analisi del caso peggiore o analisi del caso medio. Con lanalisi del caso peggiore si considera
come input dellalgoritmo, linput che richiede il maggior numero di esecuzioni delle operazioni per
determinare la soluzione. Con lanalisi del caso medio, si deve determinare la media del numero
esecuzioni delle operazioni eseguite rispetto a tutte i possibili input di pari dimensione.
3. La somma pesata rispetto al costo del numero di esecuzioni delle operazioni la complessit com-
putazionale dellalgoritmo.
Con complessit computazionale di un problema si intende esprimere la quantit di una risorsa
computazionale (solitamente il tempo o lo spazio di memoria) necessarie e sufcienti per risolvere il
problema in funzione della dimensione dellistanza.
Determinare le risorse computazionali necessarie che siano signicative risulta essere uncompito non
facile. Determinare le risorse computazionali sufcienti equivale a determinare le risorse computazionali
usate da un algoritmo di risoluzione del problema.
Segue che la complessit computazionale di un algoritmo di risoluzione di un problema sempre un
upper bound alla complessit computazionale del problema.
Esercizio 7.2. Si denisca cosa si intende per funzione propria e se ne dia un esempio con dimostra-
zione. (max 7 punti)
Soluzione. Nellambito della complessit computazionale, una funzione propria una funzione f : N
N, monotona non decrescente e, per la quale, esiste una k-MdT con I/O M
f
tale che, per ogni n e per ogni
input x di lunghezza n, M
f
stampa sul nastro di output f (n) caratteri semi-blank in tempo O(n + f (n))
e usando spazio O( f (n)).
Un esempio di funzione propria 2
n
. Innanzitutto monotona non decrescente. Inoltre la seguente
2-MdT calcola il suo valore nei limiti richiesti dalla denizione:
Si consideri la seguente 2-MdT:
INPUT x di dimensione n
inizializza il primo nastro di lavoro con 1;
memorizza come nastro di riferimento il primo;
for all carattere di x do
for all carattere nel nastro di riferimento do
scrivi nellaltro nastro 11;
end for
scambia nastro di riferimento;
end for
riporta in output il contenuto del nastro di riferimento.
semplice vericare che questa macchina di Turing lavora in tempo O(2
n
) e in spazio O(2
n
).
Esercizio 7.3. Si dimostri che se esiste un problema tale che sia sia
c
sono NP-completi, allora
NP coNP. (max 8 punti)
Soluzione. Si assume che e
c
siano NP-completi.
noto che sia NP che coNP sono chiuse rispetto alla riduzione
log
.
Si consideri un problema A NP. Per ipotesi A
log

c
e quindi, per la chiusura di coNP, A coNP.
Quindi NP coNP.
Si consideri un problema A
c
coNP. Il fatto che A
log
implica che A
c

log

c
. Per la chiusura di
NP, A
c
NP. Quindi coNP NP.
Da cui, NP coNP.
Per convincersi che A
log
A
c

log

c
, sufciente ricordare la denizione di riduzione R

log
:
x

A
, R

log
(x)

e x A R

log
(x) . Quindi vale x / A R

log
(x) / che equivale a dire
x A
c
R

log
(x)
c
.
7
Esercizio 7.4. Una riduzione in tempo lineare R deve completare il suo output R(x) in tempo O([x[).
Dimostrare in modo formale che non ci possono essere problemi P-completi se si adottano riduzioni in
tempo lineare. (max 8 punti)
Soluzione. Si consideri una riduzione R in tempo lineare e, per assurdo, si assuma che il problema sia
P-completo rispetto a R.
TIME(n
k
) per un k opportuno.
Si consideri ora un problema A TIME(n
(k+1)
) e che non stia in TIME(n
k
): lesistenza garantita dal
teorema di gerarchia in tempo.
Data unistanza x di A, esiste un algoritmo di risoluzione per A che richiede tempo [x[
(k+1)
per deter-
minare la risposta.
Se consideriamo la stessa istanza x, applichiamo la riduzione, che richiede tempo c[x[, e poi lalgo-
ritmo di risoluzione per , che richiede tempo (c[x[)
k
, otteniamo un algoritmo di risoluzione per A che
opera in tempo c[x[ +c
k
[x[
k
<(c +c
k
)[x[
k
. Ma questo implica che A TIME(n
k
). Assurdo.
8 Appello del 10/09/2003
Esercizio 8.1. Dato un problema A che richiede al pi n
log
2
n
quanti di tempo per essere risolto me-
diante un elaboratore C e dati k quanti di tempo per determinare la soluzione, qual la dimensione
massima di unistanza del problema che pu essere risolta?
Se si adotta uncalcolatoreC
t
che opera 2
4
volte piveloce di C, qual la nuova dimensione massima
di unistanza del problema che pu essere risolta? (max 7 punti)
Soluzione. Il fatto che A richieda al pi n
log
2
n
quanti di tempo per essere risolto signica che esiste al-
meno unistanza di A per la quale il tempo di calcolo della soluzione n
log
2
n
. Per altre istanze possibile
che il tempo di calcolo della soluzione sia inferiore: con i dati dati e con lipotesi di buona denizione del
problema, possibile dire solo che al meglio il costo minimo n.
Quindi non possibile stabilire qual la dimensione massima del problema che pu essere risolto.
possibile invece stabilire un limite inferiore alla dimensione massima risolvibile in k quanti di
tempo: sufciente porre n
log
2
n
k e risolvere rispetto a n: n 2
_
log
2
k
.
Per il calcolatore C
t
, la dimensione minima data da n 2
_
log
2
(2
4
k)
2
_
4+log
2
k
.
Esercizio 8.2. Si denisca la classe NSPACE( f (n)). Se il linguaggio L NSPACE( f (n)), in quali altre
classi del tipo TIME(g(n)) presente? Giusticare la risposta. (max 7 punti)
Soluzione. La classe computazionale NSPACE( f (n)) {L[L deciso da una MdT non deterministica con
I/O che opera in spazio f (n)}.
Una MdTnondeterministica conI/OM opera inspazio f (n) se x

, (s, (, x), . . . , (, ))
N

(q, (w
1
, u
1
), . . . , (w
k
, u
k
))

k1
i 2
[w
i
u
i
[ f ([x[).
noto che valgono i seguenti risultati:
NSPACE( f (n)) TIME(k
f (n)+logn
) (3)
dove k >1 una costante.
Di conseguenza l TIME(g(n)) dove g(n) k
f (n)+logn
.
Esercizio 8.3. Si determini un limite superiore alla complessit computazionale in tempo del problema
PERFECT MATCHING. La dimostrazione deve essere completa. (max 8 punti)
Soluzione. Il problema del PERFECT MATCHING cos denito:
Dato un grafo G (U D, E) con E U D, [U[ [D[ n, ovvero un grafo bipartito di Uomini e Donne,
esiste un accoppiamento perfetto M di n archi tale che (u, d), (u
t
, d
t
) M u /u
t
d /d
t
?
Per determinare un limite superiore alla complessit computazionale in tempo di questo proble-
ma possibile sfruttare la tecnica di riduzione per trasformare il problema nel problema del MASSI-
MO FLUSSO e determinare quindi la complessit sommando la complessit della riduzione a quella di
questultimo problema.
8
Dato un grafo bipartito G (U D, E), si denisca un grafo orientato G
t
(U D {s, t }, {(s, u)[u
U} E {(v, t )[v D}) dove s un nodo detto sorgente e t un nodo detto destinazione. Si associ a tutti
gli archi una capacit pari a 1 (c
i , j
1). La rete (G
t
, c) unistanza del problema MASSIMO FLUSSO.
Dimostriamo ora che i due problemi sono equivalenti.
Si supponga che esista un accoppiamento perfetto. Questo signica che esistono n archi che collegano
n nodi di U a n nodi di D. Se si considerano gli stessi archi in (G
t
, c) e si pone il loro usso a 1, possibile
completare il usso assegnando capacit a 1 a tutti gli archi (s, u), (v, t ) tali che u U, v D sono nodi
dellaccoppiamento. Il usso risultante un usso di dimensione n.
Si supponga ora che esista un usso di dimensione n in (G
t
, c). Dato che la capacit dei singoli archi
1 e che lorientamento degli archi permette solo ussi da s a t , devono esistere n archi (u, d)[u U, d D
con capacit pari a 1. Gli estremi di questi archi formano quindi un accoppiamento perfetto.
Questo dimostra che il problema dellACCOPPIAMENTO PERFETTO si riduce al problema del MAS-
SIMO FLUSSO(n). Per eseguire la riduzione si deve semplicemente considerare listanza di ACCOPPIA-
MENTO PERFETTO e aggiungere 2 nodi e 2n archi. La complessit quindi O(n
2
) (attenzione a non
confondere la dimensione dellinput reale con la misura n).
Consideriamo ora il pi semplice algoritmo per la risoluzione del problema del MASSIMO FLUSSO
che consiste nel determinare la soluzione riducendo il problema al problema di PATH. La sua comples-
sit O(Cn
3
), dove C la capacit massima degli archi (che, in generale, pu essere dipendente dalla
dimensione del problema!).
Per questa riduzione, C 1 e quindi un limite superiore alla complessit del problema MASSIMO
FLUSSO O(n
2
) +O(n
3
) O(n
3
).
Esercizio 8.4. Dato un grafo orientato G, il problema del CIRCUITO HAMILTONIANO chiede se esiste
un ciclo che include ogni nodo di G esattamente una volta.
Si consideri la versione pi generale di CIRCUITO HAMILTONIANO denita su gra non orientati.
Si dimostri che CIRCUITO HAMILTONIANO
log
COMMESSO VIAGGIATORE(D).
Questa dimostrazione permette di affermare che CIRCUITOHAMILTONIANO NP-completo? Giu-
sticare la risposta.
In caso di risposta negativa, CIRCUITO HAMILTONIANO NP-completo?
(max 8 punti)
Soluzione. Dato un grafo non orientato G (V, E) di dimensione n, istanza del problema CIRCUI-
TO HAMILTONIANO, si costruisca unistanza del problema COMMESSO VIAGGIATORE(n) nel seguente
modo:
1. si completi il grafo aggiungendo tutti gli archi mancanti (unistanza del COMMESSOVIAGGIATORE(n)
un grafo totalmente connesso);
2. si denisca la matrice delle distanza tra le citt come:
d
i j

1 se (i , j ) E
2 altrimenti
Risulta semplice vericare che esiste un circuito hamiltoniano in G se e solo se esiste un percorso del
COMMESSO VIAGGIATORE di lunghezza n.
Per computare la riduzione, sono sufcienti due indici i e j che permettano di visitare tutti i possibili
archi per eseguire le due operazioni descritte sopra. Quindi la complessit in spazio O(logn).
noto che COMMESSO VIAGGIATORE(k) NP-completo.
Questa riduzione NON permette di affermare che CIRCUITO HAMILTONIANO NP-completo in
quando ridurre un problema a un problema NP-completo non sufciente n necessario allo scopo.
Per dimostrare che CIRCUITO HAMILTONIANO NP-completo sufciente dimostrare che esso in
NP e che un qualsiasi altro problema NP-completo si riduce ad esso in spazio logaritmico o in tempo
polinomiale.
9
9 Appello del 23/09/2003
Esercizio 9.1. Descrivere la differenza tra la versione di decisione e la versione costruttiva di un proble-
ma di ottimizzazione. Che relazioni si possono stabilire tra le due versioni di uno stesso problema nel
caso in cui questo sia in P? (max 7 punti)
Soluzione. Con versione di decisione di un problema di ottimizzazione si intende la formulazione del
problema in modo tale che la soluzione richiesta possa assumere solo due valori: SI o NO.
Con versione costruttiva di un problema di ottimizzazione si intende la formulazione del problema
in modo tale che la soluzione richiesta sia una particolare congurazione che soddisfa le richiesta del
problema.
Ad esempio, il problema del COMMESSOVIAGGIATORE richiede di determinare un percorso che visi-
ta tutte le citt dellistanza del problema di costo minimo. Questa formulazione rappresenta la versione
costruttiva del problema. La versione di decisione pu essere costruita considerando unistanza del pro-
blema, un intero D e modicando la richiesta in: Esiste un percorso che visita tutte le citt di costo
inferiore a D?
Se si considera un problema in P, dato un algoritmo di risoluzione per la versione costruttiva imme-
diato determinare un algoritmo per la versione di decisione: sufciente calcolare il costo della soluzione
determinata e confrontarlo con il valore D dato in input. Se il problema di massimizzazione (minimiz-
zazione) e il costo inferiore a D allora la risposta NO (SI) altrimenti SI (NO). Quindi la versione di
decisione risolvibile in tempo polinomiale.
Viceversa, dato unalgoritmo di risoluzione per la versione di decisione non sempre possibile stabilire
un algoritmo polinomiale che determini la struttura della soluzione associata. A titolo di esempio, si
ricorda che il problema PRIMO decidibile in tempo polinomiale ma non ancora noto se possibile
fattorizzare il valore in tempo polinomiale una volta noto che NON primo.
Esercizio 9.2. Si illustri brevemente cosa si intende per criterio del costo uniforme e per criterio del costo
logaritmico nel modello di calcolo RAM. Si determini poi il costo delloperazione SUB *i. (max 7 punti)
Soluzione. I due criteri sono due modi diversi per misurare il costo in una computazione del modello
RAM.
Il criterio del costo uniforme assume che il tempo di esecuzione di unoperazione sia costante (indi-
pendente dal tipo di operazione e dagli operandi coinvolti).
Il criterio del costo logaritmico assume che il tempo di esecuzione sia proporzionale alla dimensione
degli operandi coinvolti.
Si denoti con l (i ) la lunghezza della codica del valore i .
Per loperazione SUB *i, il costo uniforme pari a k, mentre il costo logaritmico pari a k(l (r
0
)+l (i )+
l (r
i
) +l (r
r
i
)).
Esercizio 9.3. Si determini la complessit computazionale in tempo del problema RAGGIUNGIBILIT
senza ricorrere allo strumento della riduzione. (max 8 punti)
Soluzione. Dato un grafo diretto G (V, E) e due nodi x e y di V , il problema di RAGGIUNGIBILIT
chiede di dire se esiste un cammino che collega x a y.
Un semplice algoritmo di risoluzione dato dal seguente:
INPUT V , E, n, x e y
//Assumo che tutti i nodi non abbiano colore
listaNodi {x};
coloraNero(x);
while listaNodi non vuota do
nodoA = z[z listaNodi;
listaNodi listaNodi \{nodoA};
adiacentiA = {nodi adiacenti di nodoA};
for all nodoB adiacentiA do
if nodoB bianco then
listaNodi= listaNodi {nodoB};
10
coloraNero(nodoB);
end if
end for
end while
if y nero then
OUTPUT SI
else
OUTPUT NO
end if
La dimostrazione di correttezza dellalgoritmo data per induzione.
Il caso peggiore si ha quando il grafo completo: si devono visitare tutti gli archi, che possono essere
n(n 1). In questo caso, considerato il costo costante con cui si possono implementare le operazioni
allinterno del ciclo, il costo totale O(n
2
).
Lalgoritmo quindi polinomiale, quindi il problema in P.
Esercizio 9.4. Dato un insieme A {a
1
, . . . , a
n
} di interi positivi, il problema PARTIZIONE chiede se
esiste un sottoinsieme S A tale che

a
i
S
a
i

a
i
A\S
a
i
.
Dati un insieme O {o
1
, . . . , o
n
} di oggetti, tali che o
i
caratterizzato da un protto p
i
e da un volu-
me v
i
, entrambi interi positivi, e due interi positivi c (capacit dello zaino) e k (obiettivo), il problema
dello ZAINO chiede se esiste un sottoinsieme S {1, . . . , n} tale che

i S
v
i
c e

i S
p
i
k.
Dimostrare che PARTIZIONE
log
ZAINO esibendo la riduzione.
Assumendo che SAT
log
PARTIZIONE, cosa si pu asserire circa i due problemi? (max 8 punti)
Soluzione. Data unistanza di PARTIZIONE, se si considerano gli elementi a
i
come valori p
i
e v
i
e si
pongono c k (

a
i
)/2, la medesima istanza diviene unistanza equivalente di ZAINO.
Infatti, se esiste una soluzione S di PARTIZIONE, gli elementi di S compongono una soluzione di ZAI-
NO in quanto

p
i
S
p
i

p
i
/S
p
i
k e

v
i
S
v
i

v
i
/S
v
i
c. Analogamente per il viceversa: una solu-
zione di ZAINO deve avere valore pari a (

a
i
)/2, ma questo signica che anche linsieme complemento
della soluzione ha valore (

a
i
)/2, quindi una partizione.
La verica dei casi negativi e la dimostrazione che la riduzione calcolabile in spazio logaritmico
lasciata per esercizio (nel compito si doveva svolgerla!).
Per le propriet delle riduzioni, dal fatto che SAT
log
PARTIZIONE, segue che sia PARTIZIONE sia
ZAINO sono NP-completi.
Anno accademico 2003/2004
10 Appello del 11/12/2003
Esercizio 10.1. Si enunci il teorema di gerarchia in tempo nella formulazione pi stringente; si illustri
brevemente il suo signicato dal punto di vista della risorsa computazionale tempo; si indichi quali
sono le conseguenze sulla gerarchia delle classi di complessit principali viste durante il corso. (max 7
punti)
Esercizio10.2. Data una funzione di complessit propria g(n), la funzione f (n) ng(n) una funzione
di complessit propria? Giusticare la risposta. (max 7 punti)
Soluzione. Sia M
g
la MdT con I/O che, con input x, computa L
g([x[)
in tempo O([x[ +g([x[) e in spazio
O(g([x[)). Si assume che M
g
richieda k nastri lavoro per eseguire tale computazione.
Si consideri quindi la seguente MdT M
f
che opera come segue:
INPUT x
Si simuli M
g
usando k nastri lavoro e si memorizzi loutput M
g
(x) sul nastro di lavoro di indice k +1;
Si riporti il cursore dinput sulla prima posizione;
for all carattere dinput do
11
Scrivi in output il contenuto del nastro di indice k +1;
end for
Il tempo di computazione dellalgoritmo (i costi sono raggruppati per istruzione): O(([x[ +g([x[)) +
([x[) +(2[x[g([x[))) O( f ([x[)).
Lo spazio di computazione O(g([x[)) O( f ([x[)).
La MdT M
f
in grado quindi di computare in modo proprio la funzione f ; ricordando poi che se
n >0, g(n +1) >g(n) f (n +1) > f (n), si pu affermare che f una funzione propria di complessit.
Esercizio 10.3. Si consideri il problema 7-CIRCUITO: Dato un grafo G di n nodi, ammette un circuito
di lunghezza 7?
7-CIRCUITO
?
NL. Giusticare la risposta. (max 8 punti)
Soluzione. Un circuito un cammino chiuso dove i nodi sono distinti. Determinare lesistenza di un
circuito di dimensione ssata in un grafo pu essere computato in modo non deterministico da algoritmi
del tipo:
INPUT G (V, E).
n [V [
if n <7 then
OUTPUT NO
end if
for all i 1; i 7 do
//Si genera una sequenza casuale di 7 nodi
x valore casuale nellintervallo 1. . . n in notazione binaria
Appendi sul nastro di lavoro 1 il valore x
end for
for all i 1; i 7 do
for all j i +1; j 7 do
//Si verica che la sequenza non ha nodi ripetuti ed un cammino.
//Si assume che x
i
sia li-esimo valore del nastro di lavoro 1.
if x
i
x
j
then
OUTPUT NO
else
if j (i +1)&&(x
i
, x
j
) / E then
OUTPUT NO
end if
end if
end for
end for
if (x
7
, x
1
) E then
OUTPUT SI
else
OUTPUT NO
end if
Lo spazio richiesto dallalgoritmo O(7logn). Per il teorema di compressione possibile comprimere
lo spazio richiesto a O(logn). Quindi il problema 7-CIRCUITO NL.
Esercizio 10.4. Esibire una riduzione
log
diretta da 3-COLORINGa SAT e determinare quante clausole
compongono lespressione booleana determinata dalla riduzione. (max 8 punti)
Soluzione. Il problema 3-COLORING chiede di determinare se dato un grafo di n nodi possibile asso-
ciare ad ogni nodo un colore di tre possibili in modo tale che nodi adiacenti non siano associati allo stesso
colore.
Si rappresenti con x
i j
il seguente predicato booleano: il nodo i colorato con il colore j .
Data unistanza di 3-COLORING, si costruiscano le seguenti clausole:
12
Per ogni nodo i del grafo, la clausola (x
i 1
x
i 2
x
i 3
), che esprime il fatto che ogni nodo associato
ad almeno un colore. Le clausole di questo tipo sono n.
Per ogni nodo i del grafo, le clausole (x
i 1
x
i 2
), (x
i 2
x
i 3
), e (x
i 3
x
i 1
), che esprimono il
fatto che ogni vertice associato ad al pi un colore. Le clausole di questo tipo sono 3n.
Per ogni coppia (i , j ) E, le clausole (x
i k
x
j k
) per k 1, 2, 3. La clausole di questo tipo sono
3[E[.
Si consideri lespressione booleana
G
data dalla congiunzione di tutte queste clausole. Il problema 3-
COLORABILIT ammette risposta positiva se e solo se
G
soddifacibile:
Da una colorazione c : V {1, 2, 3}, semplice vericare che lassegnamento di verit costruito asso-
ciando il valore 1 alle variabili x
i ,c(i )
soddisfa tutte le clausole di
G
;
Dato un assegnamento di verit, si costruisca una funzione colore c : V {1, 2, 3} t.c. c(i ) j se e solo
se x
i , j
1. Le clausole del secondo gruppo garantiscono che per ogni i esista solo una variabile x
i j
vera per un opportuno j . Quindi la denizione univoca. Il resto delle clausole garantiscono che
tale assegnamento soddis i vincoli del problema 3-COLORABILIT.
La costruzione di
G
richiede di usare al pi 3 contatori, ciascuno dei quali richiede spazio O(logn).
Quindi la riduzione del tipo
log
.
Il numero totale delle clausole che compongono
G
4[V [ +3[E[.
11 Appello del 26/03/2004
Esercizio 11.1. Denire in modo formale una codica di un grafo diretto pesato con stringhe bina-
rie usando la matrice di adiacenza. Denire poi unaltra codica simile usando le liste di adiacenza.
Dimostrare che le due codiche sono polinomialmente correlate. (max 7 punti)
Soluzione. Lalfabeto {0, 1}. Ogni elemento che descrive il grafo deve essere rappresentato da una
stringa binaria. Il grafo diretto e quindi la matrice di adiacenza pu non essere simmetrica: si deve
rappresentare per intero. Visto che non c modo di separare le stringhe binarie mediante altri simboli, si
deve ssare a priori la lunghezza delle stringhe: ogni elemento codicato da una stringa di lunghezza
ssata. Sia l tale lunghezza. Per inciso, ssando l si limita la classe dei gra rappresentabili, in quanto
n 2
l
1 cos come i pesi degli archi a
i , j
2
l
1.
Si assume che i nodi siano numerati da 1 a n. Un possibile schema di codica il seguente:
na
1,1
a
1,2
. . . a
1,n
a
2,1
a
2,2
. . . a
2,n
. . . a
n,1
a
n,2
. . . a
n,n
dove a
i , j
il peso dellarco tra il nodo i e il nodo j , codicato in notazione binaria complemento a 2.
La lunghezza di questa codica C
1
(n) l (n
2
+1).
Si considerino ora le liste di adiacenza. Per sfruttare leventuale presenza di pochi archi, si deve in-
dicare, per ciascun nodo, il numero dei nodi adiacenti, in modo da rappresentare solo gli archi presenti.
Un possibile schema diviene quindi:
nn
1
a
t
1,1
a
t
1,2
. . . a
t
1,n
1
n
2
a
t
2,1
a
t
2,2
. . . a
t
2,n
2
. . . n
n
a
t
n,1
a
t
n,2
. . . a
t
n,n
n
dove n
i
indica il numero di adiacenti per il nodo i e a
t
i , j
indica la coppia (nodo, peso) che rappresenta il
nodo adiacente e il peso dellarco che collega.
La lunghezza di tale codica dipende dalla struttura del grafo. Si possono quindi solo stabilire dei
limiti:
l (1+n) C
2
(n) l (1+n(1+2n)) l (1+n +2n
2
)
Segue che
C
2
(n) C
1
(n) +l n(1+2n)
13
Esercizio 11.2. Dimostrare le seguenti uguaglianze in modo formale:
(logn)
k
O(n

) per qualsiasi intero k e qualsiasi >0.


(logn)
(logn)
(n
k
) per qualsiasi intero k.
(max 7 punti)
Soluzione. Si applicano le denizioni: f (n) O(g(n)) sse la coppia c > 0 e n
0
N tale che n >
n
0
f (n) cg(n) e f (n) (g(n)) sse la coppia c >0 e n
0
N tale che n >n
0
f (n) cg(n).
Considerato che logn n per ogni n >1, (logn)
k
n
k
; determiniamo allora c e n
0
afnch n >
n
0
n
k
cn

. Ma questa diseguaglianza sempre vericata quando c n


k
. Quindi, scelto n
0
e
c n
k
0
, si dimostra la tesi.
Si deve dimostrare che esiste la coppia n
0
, c, tale che n > n
0
(logn)
(logn)
cn
k
. Si applichi
il logaritmo ad entrambi i termini della diseguaglianza. lognlog(logn) logc +k logn. Sem-
plicando, (log(logn) k) logn logc, che asintoticamente vericata. Quindi, ssando n
0
e
c 2
(kloglogn
0
) logn
0
)
, si dimostra lasserto.
Esercizio 11.3. Dimostrare in modo formale che se si avesse un algoritmo polinomiale in tempo che
computa la lunghezza del cammino pi breve per il problema del COMMESSO VIAGGIATORE, allora
possibile determinare un algoritmo polinomiale in tempo per fornire il cammino pi breve. (max 8
punti)
Soluzione. Data lalgoritmo che determina il costo del percorso minimo, un modo semplice per costrui-
re il percorso , a partire dal nodo iniziale, modicare il peso degli archi incidenti, uno a uno, e veri-
care se il costo si modica. Quando si trova che il costo aumenta, allora si individuato larco pre-
sente nel percorso. Si aggiunge quindi tale arco e si continua lanalisi con il nodo successivo, indica-
to dallarco appena determinato. In n 1 di queste fasi si costruisce il percorso richiesto. A livello pi
formale:
INPUT G (V, E).
n [V [
costo = CostoTSP(G);
nodoCorrente = 1;
TSP=1;
#nodi = 1;
while #nodi n 1 do
for all nodo j adiacente a nodoCorrente do
G
t
G con a
nodoCor rent e, j
+
costo = CostoTSP(G)
if costo > costo then
TSP=TSP + j
nodoCorrente = j
#nodi = #nodi+1
end if
end for
end while
OUTPUT TSP
Assumendo che lalgoritmo CostoTSP(G) richieda un tempo p(n) dove n il numero di nodi del grafo
G, il costo globale della procedura dato da
O(n(n 1)p(n)) O(n
2
p(n))
Esercizio 11.4. Si dimostri che il problema COPERTURA DEI NODI
log
INSIEME INDIPENDENTE.
Vale il viceversa? Giusticare le risposte. (max 8 punti)
14
Soluzione. Sia G (V, E) un grafo. Il problema della copertura dei nodi richiede di determinare un
insieme di nodi V
t
V di cardinalit minima tale che
(i , j ) E i V
t
j V
t
Il problema dellinsieme di indipendenza richiede di determinare un insieme di nodi V
t
V di cardi-
nalit massima tale che
i , j V
t
(i , j ) / E
Sono due problemi di ottimizzazione, quindi, per lo studio della riduzione, necessario considerare
le loro versioni di decisione. Sia D la costante con cui si denisce la versione di decisione.
Si verica facilmente che se V
t
un insieme di indipendenza, allora V \V
t
una copertura dei nodi.
Quindi, la riduzione che ne consegue un po atipica: Data unistanza del problema COPERTURA
DEI NODI(D), si risolve su tale istanza INSIEME INDIPENDENTE([V [ D) e si restituisce la risposta di
questultimo problema.
La riduzione lidentit, chiaramente
log
.
12 Appello del 29/06/2004
Esercizio 12.1. Si enunci la tesi del calcolo sequenziale e le due principali conseguenze sullo studio
degli algoritmi per la risoluzione dei problemi. (max 7 punti)
Soluzione. La tesi del calcolo sequenziale la seguente:
I modelli di calcolo ragionevoli sono polinomialmente correlati con le Macchine di Turing.
Per le due conseguenze principali si intendono quelle illustrate durante il corso e presenti anche nel
libro di testo adottato. Questo non implica che siano le due principali in assoluto. In dettaglio:
Assumendo che un algoritmo detto efciente quando ha un costo polinomiale in tempo rispetto alla
dimensione dellinput, la tesi permette di:
1. parlare di algoritmi efcienti (inefcienti) indipendentemente dal modello di calcolo;
2. dare dimostrazioni di intrattabilit (NON esistenza di algoritmi efcienti) generali anche se dimo-
strate su un particolare modello.
Esercizio 12.2. Fornire la denizione formale della classe di complessit NL e esibire la relazione esi-
stente tra NL e NP. (max 7 punti)
Soluzione. La classe di complessit NL NSPACE(logn), dove la classe NSPACE(m) la classe dei lin-
guaggi decisi dalle Macchina di Turing Non Deterministiche con I/O che lavorano in spazio m. stato
dimostrato che NSPACE( f (n)) TIME(k
f (n)+logn
), dove k una costante data dalla maggior costante de-
terminata nella trasformazione delle computazioni non deterministiche in spazio f (n) in computazioni
deterministiche (teorema basato sul metodo della raggiungibilit). Osservando che f (n) logn, quin-
di k
f (n)+logn
k
logn
2
2
logn
2c
n
2c
con c costante opportuna dipendente da k, si ottiene che NL
NSPACE(logn) TIME(n
2c
) P. La classe P poi inclusa in senso lato in NP per il fatto che ogni
computazione deterministica anche una computazione non deterministica degenere. Quindi NL NP.
Esercizio 12.3. Determinare la classe di complessit in tempo del seguente problema:
Dato un grafo di dimensione n, esiste una cricca di ordine 50?
Giusticare la risposta. (max 8 punti)
Soluzione (Schema). Il problema (che chiameremo per comodit 50-CRICCA) un sottoproblema di
CRICCA (CLIQUE), che si conosce essere NP-completo. Quindi 50-CRICCA NP. Il fatto per che si richie-
da di determinare una cricca di ordine ssato (50) indipendente dalla dimensione del problema, deve
indurre a pensare che forse possibile fare qualcosa di pi...
Infatti, dato un grafo di dimensione n > 50, le possibili cricche di ordine 50 sono

n
50

<< n
50
. Se
n <50, la risposta dellalgoritmo risolutore banale: NO. Un algoritmo di risoluzione pu quindi:
15
1. generare tutte le possibili sequenze di 50 nodi distinti. Il numero di tali sequenze un polinomio di
n e la generazione di ciascuna richiede un tempo dellordine lineare sempre in n;
2. Per ciascuna sequenza, vericare se una cricca. Questo richiede unnumero di operazioni (n/2)(n
1) al pi.
Un grossolana approssimazione del tempo di calcolo di questo banale algoritmo data quindi da O(n
52
).
Per quanto spaventoso, questo permette di asserire che 50-CRICCA P.
Esercizio 12.4. Dimostrare che 2-COLORABILIT P. (max 8 punti)
Soluzione (Schema). Condizione necessaria e sufciente perch un grafo sia 2-colorabile che non con-
tenga cicli di ordine dispari.
Sarebbe quindi sufciente realizzare un algoritmo che verichi tale condizione e dimostrare che il
tempo di calcolo di questo algoritmo dellordine di un polinomio nelle dimensione del grafo.
Volendo per risolvere il problema con algoritmi visti durante il corso, sufciente ricordare che lal-
goritmo visto per il problema di RAGGIUNGIBILT colorava i nodi durante la computazione e che tale
algoritmo, opportunamente adottato, pu essere usato anche per questo problema.
In particolare, lidea dellalgoritmo di considerare un nodo di partenza, associare ad esso un colore
e visitare in ampiezza il grafo (breath-rst-visit) colorando i nodi adiacenti non colorati con laltro colore
e controllando che i nodi adiacenti colorati abbiano colore diverso da quello in esame. Se si giunge alla
ne conil grafo completamente colorato, la risposta si. Se invece durante la computazione la condizione
sopraindicata non vericata, la risposta no.
La visita in ampiezza di un grafo richiede un tempo polinomiale nella dimensione del grafo, quindi
lalgoritmo ha complessit polinomiale. Da cui 2-COLORABILIT P.
13 Appello del 13/07/2004
Esercizio 13.1. Si enunci il teorema che lega i tempi di computazione di una MdT a k nastri con una a
1 nastro e si indichi la conseguenza principale sullo studio dei problemi intrattabili. (max 7 punti)
Esercizio 13.2. Fornire la denizione formale della classe di complessit L e della classe P, quindi
esibire la relazione esistente tra le due classi, giusticandola sinteticamente. (max 7 punti)
Esercizio 13.3. Determinare la classe di complessit in tempo del seguente problema:
Dato un grafo di dimensione n, esiste un insieme di indipendenza di dimensione n/2?
Giusticare la risposta. (max 8 punti)
Esercizio 13.4. Esibire una riduzione
log
diretta da 3-COLORINGa SAT e determinare quante clausole
compongono lespressione booleana determinata dalla riduzione. (max 8 punti)
14 Appello del 07/09/2004
Esercizio 14.1. Si enunci la tesi del calcolo sequenziale e le due principali conseguenze sullo studio
degli algoritmi per la risoluzione dei problemi. (max 7 punti)
Soluzione. Vedi esercizio 1 dellappello del 29/06/2004.
Esercizio 14.2. Dimostrare che se esiste un problema P tale che sia P che P
c
sono NP-completi, allora
NP coNP.
Si ricorda P
c
il problema complemento e coNP la classe dei problemi complemento dei problemi in
NP. (max 7 punti)
Soluzione. Per dimostrare NP coNP sufciente dimostrare che coNP NP e che NP coNP.
Dato che P NP-completo, P
c
coNP-completo: sufciente infatti considerare che ogni riduzione R
da un linguaggio L NP a P fornisce la riduzione R
t
R da L
c
coNP a P
c
.
16
Dato un linguaggio L coNP, per la denizione di completezza, L
log
P
c

log
P e, per la chiusura
della classe NP, L NP; quindi coNP NP.
Dato un linguaggio L NP, per la denizione di NP-completezza, L
log
P
log
P
c
e, per la chiusura
della classe coNP, L coNP; quindi NP coNP.
Esercizio 14.3. Un problema di decisione P detto Karp-riducibile in tempo polinomiale a un pro-
blema di decisione P
t
se esiste un algoritmo polinomiale in tempo R che, data unistanza x I
P
, la
trasforma in unistanza y I
P
t tale che x L
P
y L
P
t . Dimostrare se la classe NP chiusa rispetto a
questa riduzione. Che relazione esiste tra
log
e questa riduzione? (max 8 punti)
Soluzione. La riduzione di Karp la riduzione many-to-one. Vedi esercizio 4 dellappello 29/06/2004.
Esercizio 14.4. Si consideri il problema TAUTOLOGIA:
DESCRIZIONE: Una formula booleana F in DNF (Forma Normale Disgiunta)
QUESITO: Ogni assegnamento di verit su F un assegnamento che rende vera F?
Si dimostri che TAUTOLOGIA coNP. Il problema coNP-completo? (max 8 punti)
Soluzione. Si consideri il complemento del problema TAUTOLOGIA: Data una formula booleana F in
DNF, esiste un assegnamento di verit su F che la rende falsa?
Tale formulazione pu essere anche riscritta come: Data una formula booleana F in DNF, esiste un
assegnamento di verit su F che la rende vera?
Dato che una formula DNF F equivalente alla formula CNF F, lultima descrizione del problema
la descrizione del problema SAT.
Quindi TAUTOLOGIA
c
SAT. Per denizione di coNP, segue che TAUTOLOGIA coNP ed essendo SAT
NP-completo, TAUTOLOGIA coNP-completo.
Anno accademico 2004/2005
15 Appello del 07/12/2004
Esercizio 15.1. Sia A il linguaggio delle parentesi tonde correttamente accoppiate. Per esempio, (()),
(()(()))() sono in A mentre ())( non in A. Dimostrare che A L. (max 7 punti)
Esercizio 15.2. Cosa si intende per classe PTAS. Dare un esempio di problema (formalmente denito)
che appartiene a questa classe. Non necessario dare la dimostrazione di appartenenza. (max 7 punti)
Esercizio15.3. Si consideri il problema MASSIMOCAMMINOche consiste nel determinare il cammino
di maggior lunghezza in un grafo non pesato tra due nodi dati in input. Se ne dia una denizione
formale (nella versione pi opportuna) e si dimostri che appartiene alla classe VP. (max 8 punti)
Esercizio 15.4. Si dimostri che MASSIMO CAMMINO, nella sua versione opportuna, NP-completo.
(max 8 punti)
16 Appello del 31/03/2005
Esercizio 16.1. Si consideri un problema A che richiede al pi f (n)
log
2
a
quanti di tempo per essere
risolto mediante un elaboratore C, dove n la dimensione dellistanza. Quali sono le assunzioni si
devono fare circa f (n) e a per poter dire che il problema ha complessit polinomiale in tempo? (max 7
punti)
Esercizio 16.2. Indicare quali sono i criteri di ragionevolezza che ogni schema di codica deve soddi-
sfare. Dimostrare qual il criterio necessario per garantire lequivalenza polinomiale degli schemi di
codica ragionevoli. (max 7 punti)
17
Esercizio 16.3. Si dia la denizione formale del problema ZAINO(D) e sia descriva come possibile ri-
solvere il problema conunalgoritmo pseudo-polinomiale. Qual la classe di complessit del problema?
(max 8 punti)
Esercizio 16.4. Si consideri il problema del RICOPRIMENTO DI VERTICI su gra privi di triangoli. Si
dimostri che il problema NP-completo. (max 8 punti)
17 Appello del 21/06/2005
Esercizio17.1. Si enunci il teorema dellaccelerazione lineare e si illustri sinteticamente la conseguenza
principale di tale teorema nello studio della complessit computazionale. (max 7 punti)
Esercizio 17.2. Il problema RAGGIUNGIBILIT NL. Se si vuole considerare solo computazioni deter-
ministiche, come varia la complessit computazionale del problema rispetto alla risorsa tempo?
Nel novembre 2004, Omer Reingol ha dimostrato che RAGGIUNGIBILIT pu essere risolto in spazio
O(logn) quando il grafo non diretto. Perch questo risultato non permette di affermare che RAG-
GIUNGIBILIT L?
Esercizio 17.3. Si determini cosa errato nel seguente ragionamento:
Si consideri il problema A e il suo miglior algoritmo risolutore noto A. Il tempo di com-
putazione di A pari a 2
n
, dove n la dimensione dellistanza. Quindi non possibile
affermare che A P. Se si considera una codica unaria delle istanze, a maggior ragione
non si pu affermare A P. Quindi non vero che la notazione unaria non pu essere
usata per classicare i problemi quando si esegue lanalisi del caso peggiore.
(max 8 punti)
Esercizio 17.4. Si dimostri che il problema RICOPRIMENTO DI VERTICI(D) (VERTEX COVER(D))
NP-completo esibendo una riduzione diretta dal problema 3-SAT. (max 8 punti)
18 Appello del 12/07/2005
Esercizio 18.1. Si enunci il teorema della simulazione di un k-MdT con una MdT e si illustri sintetica-
mente la conseguenza principale di tale teorema nello studio della complessit computazionale. (max
7 punti)
Esercizio 18.2. Si illustrino sinteticamente le due relazioni fondamentali tra le risorse tempo e spazio
di una computazione nelle Macchine di Turing deterministiche e non deterministiche. (max 7 punti)
Esercizio 18.3. Si dimostri la seguente affermazione, data come esercizio durante il corso: Qualsiasi
problema NPO ha la sua versione di decisione nella classe NP . (max 8 punti)
Esercizio 18.4. Si dimostri che il problema del commesso viaggiatore NP-completo esibendo una
riduzione logaritmica in spazio. (max 8 punti)
19 Appello del 08/09/2005
Esercizio 19.1. Si dia la denizione di Tempo di esecuzione per una data dimensione di input per una
k-NMdT e si indichi qual la conseguenza principale di tale denizione nella denizione delle classi di
complessit computazionali in tempo. (max 7 punti)
Esercizio 19.2. Si dia la denizione di vericatore polinomiale e della classe VP. Sia illustri brevemente
la relazione tra la classe VP e la classe NP. (max 7 punti)
Esercizio 19.3. Si dimostri che il problema MASSIMO INSIEME DI INDIPENDENZA(D) in P quando
il grado del grafo al pi 2. (max 8 punti)
Esercizio 19.4. SiaU {M, x, 1
t
[ M una NMdT che accetta input x in al pi t passi}. Dimostrare che
U NP-completo. (max 8 punti)
18
20 Appello del 22/09/2005
Esercizio 20.1. Si riassumano i principali risultati di equivalenza (o non equivalenza), relativamente
allaspetto computazionale, tra i modelli di calcolo Macchina di Turing Deterministica e Macchina di
Turing NON deterministica. (max 7 punti)
Esercizio 20.2. Si denisca la classe SPACE( f (n)). Se il linguaggio L SPACE( f (n)), in quali altre classi
del tipo TIME(g(n)) presente? Giusticare la risposta. (max 7 punti)
Esercizio 20.3. Data una MdT M e due interi n, m, esiste un algoritmo che decide se M utilizza spa-
zio m per qualche input di lunghezza n? Se s, dare una dimostrazione con analisi di complessit
dellalgoritmo. Se no, dare una dimostrazione formale. (max 8 punti)
Esercizio 20.4. Il prof. Max Hoax ha annunciato che la soglia di approssimazione per il problema del
commesso viaggiatore 1/3. Che conseguenze si avrebbero se tale risultato fosse confermato? Giu-
sticare la risposta. Esistono dei sotto casi per i quali tale risultato gi stato dimostrato? (max 8
punti)
Anno accademico 2005/2006
21 Appello del 13/12/2005
Esercizio 21.1. Si enunci la tesi del calcolo sequenziale in modo formale e preciso e si indichi breve-
mente quali sono le due conseguenze principali di questa tesi. (punteggio max 7 punti)
Esercizio 21.2. Il prof. Max Hoax ha annunciato che la soglia di approssimazione per il problema
del commesso viaggiatore 1/3. Che conseguenze si avrebbero se tale risultato fosse confermato?
Giusticare la risposta. (max 7 punti)
Esercizio 21.3. Si dimostri se vale che SPACE((logn)
2
) P. Giusticare la risposta. (max 8 punti)
Esercizio21.4. Si supponga di avere a disposizione unvericatore polinomiale A per il problema PATH.
Si costruisca un algoritmo B che determini la soluzione costruttiva usando esclusivamente A e, sugge-
rimento, degli opportuni certicati.
Qual la complessit in tempo di B?
Suggerimento: un certicato non solo dato da una soluzione. Si denisca quindi che tipo di certicato
pu accettare il vericatore... che deve comunque rimanere polinomiale!
(punteggio max 8 punti)
22 Appello del 27/03/2006
Esercizio 22.1. Denire in modo formale una codica di un grafo diretto pesato con stringhe bina-
rie usando le liste di adiacenza. Denire poi unaltra codica simile usando la matrice di adiacenza.
Dimostrare che le due codiche sono polinomialmente correlate. (max 7 punti)
Esercizio 22.2. Si denisca la classe NSPACE( f (n)). Se il linguaggio L NSPACE( f (n)), in quali altre
classi del tipo TIME(g(n)) presente? Giusticare la risposta. (max 7 punti)
Esercizio 22.3. Dimostrare in modo formale che se si avesse un algoritmo polinomiale in tempo che
computa la lunghezza del cammino pi breve per il problema del COMMESSO VIAGGIATORE, allora
possibile determinare un algoritmo polinomiale in tempo per fornire il cammino pi breve. (max 8
punti)
Esercizio 22.4. Si consideri il problema 7-CIRCUITO: Dato un grafo G di n nodi, ammette un circuito
di lunghezza 7?
7-CIRCUITO
?
NL. Giusticare la risposta. (max 8 punti)
19
23 Appello del 20/06/2006
Esercizio23.1. Si enunci il teorema dellaccelerazione lineare e si illustri sinteticamente la conseguenza
principale di tale teorema nello studio della complessit computazionale. (max 7 punti)
Esercizio 23.2. Si dia la denizione formale della classe di complessit EXP e dimostrare la relazione
esistente tra EXP e la classe NP. (max 7 punti)
Esercizio 23.3. Dato un grafo G e un intero k, il problema del ricoprimento di cricca dato dal deter-
minare se esistono k cricche in G tali che ogni vertice di G sia in almeno una cricca. Dimostrare che il
problema NP-completo. Suggerimento: si consideri il problema della k-colorabilit. (max 8 punti)
Esercizio 23.4. Si dimostri qual il livello di approssimabilit del problema di MINIMORICOPRIMEN-
TO DI NODI di un grafo non diretto. (max 8 punti)
20