Progetto e analisi di algoritmi
versione 1.0.4
Appunti
:::::::::::
28 gennaio 2007
Indice
1
Complessità asintotica
2
1.1
2
1.2
1.3
2
6
Compresa
. . . . . . . . . . .
Limite inferiore
Limite superiore
. . . . . . . .
. . . . . . .
2.1
2.2
2.3
2.4
2
3
4
NP
NP .
Complementare-N P
Pspace . . . . . . . .
Asimmetria di
. . . . .
4
. . . . .
5
. . . . .
6
Relazioni fra spazio e tempo .
6
3
Inviluppo convesso
7
4
Esame del 21 Aprile 2006
8
5
4.1
Domanada 1
4.2
Domanda 4
7
. . . . . . . . .
8
. . . . . . . . . .
8
Esame del 21 Aprile 2005
9
5.1
Domanda 1
. . . . . . . . . .
9
5.2
Domanda 2
. . . . . . . . . .
10
5.3
Domanda 4
. . . . . . . . . .
12
8
9
Esame del 6 Giugno 2005
12
6.1
12
Domanda 1
. . . . . . . . . .
Esame del 14 Luglio 2005
13
7.1
Domanda 1
. . . . . . . . . .
13
7.2
Domanda 4
. . . . . . . . . .
14
Esame del 13 Settembre 2004
16
8.1
Domanda 1
. . . . . . . . . .
16
8.2
Domanda 3
. . . . . . . . . .
17
Esame del 4 Novembre 2004
18
9.1
Domanda 1
. . . . . . . . . .
18
9.2
Domanda 2
. . . . . . . . . .
18
10 Esame del 31 Ottobre 2006
19
10.1 Domanda 1
. . . . . . . . . .
19
10.2 Domanda 2
. . . . . . . . . .
19
11 Esame del 19 Settembre 2006
(CA)
20
11.1 Domanda 1
12 Esame
(CA)
del
27
. . . . . . . . . .
Gennaio
20
2005
21
1
2
Complessità asintotica
1
Complessità asintotica
1.1
Compresa
Mostrare che
T (n) = 3n2 + 7n + 8 ∈ Θ(n2 ).
Cioè:
∃c1 , c2 ∈ R+ , n0 ∈ N+ :
0 ≤ c1 n2 ≤ 3n2 + 7n + 8 ≤ c2 n2
c1 , posso prenderlo minore del coeciente di 3n2 ;
c2 , deve essere maggiore di c1 .
Come coeciente
tre il coeciente
∀n ≥ n0
men-
c1 = 3,
c2 = 4.
Verico le due condizioni:
• c1 n2 ≤ 3n2 + 7n + 8
3n2 ≤ 3n2 + 7n + 8; è
vero.
• 3n2 + 7n + 8 ≤ c2 n2
4n2 ≥ 3n2 + 7n + 8
Per essere vera occorre che
allora,
n2 − 7n − 8 ≥ 0
quindi
(n − 8)(n + 1) ≥ 0;
n ≥ 8, n ≤ −1.
Il minore lo scarto sempre.
Inne pongo
1.2
n0 = 8.
Limite inferiore
Mostrare che
T (n) = n2 ∈ Ω(n2 + 2n + 5).
Cioè:
∃c > 0, n0 ∈ N+ :
n2 ≥ c(n2 + 2n + 5) ≥ 0
1
, voglio dimostrare che
2
Risolvendo:
n2 > 21 n2 + n + 25
1 2
n − n − 25 ≥ 0
2
2
Pongo
c=
∀n ≥ n0
n2 > 12 n2 + n +
5
.
2
n − 2n −
√
√5 ≥ 0
n=1± 1+5
n√
=1± 6
√
dimostro che n ≤ 1 −
6
oppure n ≥ 1 +
6
√ inne pongo n0 = 1 +
6 = d1 + 2.44e = d3.44e = 4.
1
3
Complessità asintotica
1.3
Limite superiore
Mostrare che
2
T (n) = n2 ∈ O( n4 − 2).
Cioè:
∃c > 0, n0 ∈ N+ :
Pongo
c = 8,
Risolvendo:
2
2
n2 ≤ c( n4 − 2)
voglio dimostrare che
2n − 16 ≥ 0
n2 ≥ 16
ottengo n1 ≥ −4, n2 ≤ 4
inne pongo n0 = 4.
n2 >
∀n ≥ n0
8
.
4
2
4
NP
2
NP
NP
è l'insieme dei problemi per i quali esistono:
•
un insieme di certicate
•
un insieme
•
un polinomio
∆
R⊆I ×∆
p(.)
tali che
1. la relazione
R
sia riconosclibile in tempo polinomiale
2. ogni istanza positiva è in relazione con alemeno un certicato
3. nessuna istanza negativa è in relazione con un certicato
4. la dimensione del certicato è al più
p(.) nella dimensione delle istanze;
(il certicato deve essere più piccolo della dimensione dell'istanza)
Dire che la classe di problemi
corretto, in quanto
nella classe
N P,
P
NP
sia quella non polinomiale non è del tutto
e un sottoinsieme di
NP
ed inoltre non sappiamo se
non esistano problemi risolvibili con un algoritmo polino-
miale.
Proprietà (1):
P
P.
Per dimostrare che
un certicato ad ogni problema di
è sottoinsieme di
N P , bisogna fornire
∆ = {1};
Il cericato fasullo pari a
in quanto rispetta tutte le condizioni riportate sopra: ogni istanza positiva è
in relazione con il certicato. . .
NP
signica non-deterministico polinomiale, cioè risolubile in tempo poli-
nomiale da una macchina di Turing non deterministica.
Proprietà (2):
N P , esiste un polinomio f (.) e una
f
tempo O(2 (n) ); questa proprietà ci dice
per ogni problema in
macchina di Turing che lo risolve in
che i problemi in
NP
non sono indecidibili, in linea di principio sono tutti
risolvibili, ma attraverso, alla peggio, un algoritmo esponenziale.
2.1
Asimmetria di
Le denizioni di
NP
N P , sono asimmetriche, la prima richiede certicati solo per
1
le istanze positive (cfr Ÿ 2), mentre la seconda, attraverso la NTM , richiede:
•
per le istanze positive almeno un ramo positivo
•
per le istanze negative, tutti i rami negativi
1 Macchina
di Turing non deterministica.
2
5
NP
2.2
Complementare-N P
Proprio a seguito delle considerazione fatte in Ÿ 2.1, si ottiene la classe complementare ad
•
Ci sono certicati solo per le istanze negative
•
la NTM ha:
P
N P.
per le istanze negative, almeno un ramo
per le istanze positive tutti i rami positivi
è contenuto in co-N P si dimostra attraverso in certicato fasullo (cfr. Ÿ
2).
L'intersezione tra le classi di problemi
NP
e co-N P , si chiamano problemi
ben caratterizzati.
Figura 1:
P
e
NP
Figura 2: co-N P
2
6
NP
Figura 3: Problemi ben caratterizzati
Pspace
2.3
Pspace
è la classe dei problemi che si risolvono usado un numero polinomiale
di celle.
Dimostro che
• n
N P ⊆ Pspace ;
l'algoritmo TM esaustivo usa:
celle per l'istanza
• p(n)
celle per il certicato
• φ(n)
celle per riconoscere la relazione
Siccome in un tempo polinomiale si usano un numero polinomiale di celle,
allora anche
2.4
Exp
φ(n)
è un polinomio.
Relazioni fra spazio e tempo
è la classe di problemi che si risolvono in tempo esponenziale:
Pspace ⊆ Exp
Prendo un problema in
Pspace , ed un algoritmo (siccome è un algoritmo, deve
terminare!. cfr. denizione di algoritmo) anché questo algoritmo termini,
non ci devono essere congurazioni nella macchina di Turing uguali altrimenti
si entrerebbe in un ciclo senza ne.
Per questo ci domandiamo: ma quante congurazioni ci sono?
• |Q|
stati
• φ(n)
•
posizioni
2 simboli per ciascuna della
rio:
φ(n) posizioni (stiamo ragionando in bina-
{0, 1})
Il numero di passi
T (n) ≤ |Q|φ(n)2φ(n) ; ci sono meno passi che congurazioni.
3
7
Inviluppo convesso
3
Inviluppo convesso
Dati
n punti sul piano determinare se sia possibile tramite una gura toccare
tutti i punti più esterni ed iglobare al suo interno i restanti; si tratta di un
problema di ricerca.
Il problema dell'ordinamento è trasformabbile nel problema dell'inviluppo
convesso:
Ordinamento <T IC .
Passo 1
Prendo
n
valori
Passo n+1
elaboro i valori ed ottengo una istanza dell'inviluppo convesso
Passo n+2
chiamo l'oracolo
Passo n+3
ottengo i valori ordinati
Come funziona l'inviluppo convesso:
1.
n
punti
[2, −5, −4, 3, 5, −2]
(n1 , n21 )
[(2, 4); (−5, 25); (−4, 16); (5, 25) · · · ]
2. costruisco il quadrato come:
3. con le coordinate ottenute disegno su un piano la parabola ottenuta
4. Prendo le coordinate del quadrante positivo e poi quelle del quadrante
negativo
5.
(2, 4); (3, 9); (5, 25); (−5, 25)
6. tolgo i quadrati
4, 9, 25 . . .
scorro i numeri rimasti, quando trovo un
numero negativo lo porto all'inizio e ripeto lo scorrimento.
4
8
Esame del 21 Aprile 2006
4
Esame del 21 Aprile 2006
4.1
Domanada 1
Spiegare che cosa signica che un problema è in
NP
e quali conseguenze
questo ha sulla possibilità di risolverlo.
Un problema è in
•
un certicato
•
una relazione:
NP
quando esiste:
∆,
R ⊆ I × ∆, cioè una relazione che associa ad una istanza
del problema un certicato,
•
ed un polinomio
p(.),
tali che:
1. la relazione
R
è riconoscibile in tempo polinomiale
2. ogni istanza positiva è in relazione che almeno un certicato
3. nessuna istanza negativa è in relazione con un certicato
4. la dimensione del certicato è al più
p(.)
della dimensione dell'istanza
Riguardo alla possibilità di risolvero, è possibile con una macchina di Turing
non deterministica risolverlo in tempo polinomiale.
Dire che cosa signica che un problema è indecidibile. Può un problema in
NP
essere indecidibile? Motivare la risposta.
Un problema
N P non
è indecidibile
2
in quanto, attraverso la TM, si
f (n)
possono provare tutti i possibili certicati in un tempo O 2
; un tempo
si esponenziale ma che ci garantisce la non indecidibilità di questa classe di
problemi.
4.2
Domanda 4
Dimostrare le seguenti aermazioni, fornendo per ciascuna gli opportuni
valori delle relative costanti.
2 Un
problema si dice tale se non esistono istanze per le quali la Turing Machine da una
soluzione
5
9
Esame del 21 Aprile 2005
1.
3n ∈
/ O(2n )
2.
n2 + 2 sin πn ∈ Θ(n2 )
Soluzione 1:
3n ∈
/ O(2n )
∃c > 0, n0 ∈ N+ :
T (n) ≤ cf (n)
∀n ≥ n0
∃n ≥ n0 :
T (n) > cf (n)
∀c > 0∀n0 > n
n
n
3
3
n
n
3 > c2 ⇐⇒
> c ⇐⇒
log 3
> log 3 c
2
2
2
2
l
m
Pongo n = max n0 , log 3 c
2
Soluzione 2:
n2 + 2 sin πn ∈ Θ(n2 )
∃c1 , c2 ∈ R+ , n0 ∈ N+ :
0 ≤ c1 f (n) ≤ T (n) ≤ c2 f (n)
1
Pongo c1 = , c2 = 5
2
1 2
n ≤n2 + 2n sin πn ≤ 5n2
2
1
− n2 ≤n2 − 2n sin πn ≤ 0
vericata.
2
5
∀n ≥ n0
Esame del 21 Aprile 2005
5.1
Domanda 1
N P -completi. Perché
N P -completo? Motivare la risposta.
Denire lo spazio dei problemi
le un problema
Un problema si dice
N P -completo quando
N P.
si può denire dici-
tutti i problemi di
N P,
si
possono ridurre a quel problema in
Un problema
N P -completo,
viene denito dicile perché se riesco a risol-
verlo, risolvo automaticamente tutti i problemi che a lui si riducono.
5
10
Esame del 21 Aprile 2005
Che relazione esiste fra un generico problema
N P -completo
e il problema
di soddisfacibilità (SAT)?
Esempio: tutti i problemi di
NP
si riducono al problema generico
perché è appunto completo quindi anche SAT essendo
blema
NP
Pg ,
si riduce al pro-
Pg .
Tutti i problemi
NP
si riducono a SAT (cfr. dimostrazione di Cook) quindi
vale anche il viceversa.
5.2
Domanda 2
Descrivere la macchina di Turing.
È denita da una settupla:
T M = (Q, q0 , A, Γ, Σ, b, δ).
•
Q
Un insieme nito di stati
tra cui
q0 ∈ Q, rappresenta lo stato iniziale
A ⊆ Q rappresenta un sottoinsieme degli starti accettanti
• Γ
un alfabeto di lavoro che contiene l'alfabeto di ingresso
simbolo speciale
•
blank:
ed un
Γ ⊇ Σ ∪ {b}
un nastro suddiviso in celle, ogni cella contiene un solo simbolo tratto
da
•
b,
Σ
Γ
una posizione corrente di lettura: testina.
Indicare in che cosa consistono la risorsa tempo e la risorsa spaio nella macchina di Turing
•
La risorsa spazio, è rappresentata dal numero di celle scritte prima di
arrestarsi.
•
La risorsa tempo, è rappresentata dal numero di passi prima di arrestarsi
Che cosa signica che una macchina è polinomialmente equivalente alla macchina di Turing
(cfr. Ÿ 8.1 a Pagina 16).
5
11
Esame del 21 Aprile 2005
Inventare una macchina di Turing che risolva il seguente problema: dato un
numero intero (codicato in forma binaria), indicare se esso è strettamente
maggiore di 3.
Ricerco le istanze del tipo:
• · · · 0000:
0
• · · · 0001:
1
• · · · 0010:
2
[0/D]
q0
q3
[0/D]
q1
[b, D]
[b, D]
[1/D]
q2
q4
[0, D]
Tabella 1: Funzione di transizione
Q × Γ Q × Γ × {S, D}
(q0 , 0)
(q1 , 0, D)
(q0 , 1)
non denita
(q1 , 0)
(q1 , 0, D)
(q1 , 1)
(q2 , 1, D)
(q2 , 1)
non denita
(q2 , 0)
(q4 , 0, D)
(q3 , 0)
non denita
(q3 , 1)
non denita
(q4 , 1)
non denita
(q4 , 0)
non denita
(q4 , b)
(q3 , b, D)
6
12
Esame del 6 Giugno 2005
Q = {q0 , q1 , q2 , q3 , q4 }
A = {q1 , q3 , q4 }
Σ = {0, 1}
Γ = {0, 1, b}
Nella macchina di Turing, la risorsa tempo è data dal numero di passi prima
di arrestarsi; mentre la risorsa spazio, è il numero di celle scritte prima di
arrestarsi.
5.3
Domanda 4
Inviluppo convesso (cfr. Ÿ 3).
6
Esame del 6 Giugno 2005
6.1
Domanda 1
Spiegare che cosa signica dal punto di vista formale risolvere un problema.
Dato un problema
P,
cioè un insieme di istanze, la risoluzione di questo,
signica trovare un algoritmo che associ ad ogni istanza
I
la stringa soluzio-
ne.
Per i problemi di decisione, signica riconoscere le istanze positive.
Dire che cosa si intende con algoritmo e se sia possibile risolvere con un opportuno algoritmo qualsiasi problema.
Con algoritmo si intende una sequenza di operazioni:
•
limitate,
•
eseguibili in un tempo nito,
•
meccanicamente determinate dall'istanza.
Esistono problemi che non hanno algoritmi risolutori, percui la risposta è
negativa.
7
13
Esame del 14 Luglio 2005
Descrivere il procedimento della diagonalizzazione di Cantor e dire che ruolo
svolge tale procedimento nel denire se sia possibile risolvere qualsiasi problema con un opportuno algoritmo.
Ipotesi
I sottoinsiemi di
P
(dei problemi), siano numerabili
Passo 1
Creo una matrice dove ogni riga contiene un problema
Passo 2
Creata la matrice, isolo la diagonale principale (è un sottoinsieme
P
dei problemi) e ne faccio il complemento
Passo 3
Adesso posso concludere che il complemento della diagonale non è
presente nella matrice dei problemi
Conclusioni
I sottoinsiemi di
P
non si possono tabellare.
Tramite la diagonalizzazione di Cantor, si dimostra che i problemi non sono
numerabili; di conseguenza siccome le Turing macchine possono essere codicate come interi, non sono numerabili; conclusione: non è possibile che per
ogni problema ci sia un algoritmo risolutore.
Il modello computazionale adottato può inuire sulla risposta?
No, in quanto ogni problema può essere codicato tramite la macchina
di Turing, essendo la macchina più potente; di conseguenza con altri modelli
non c'è nessuna speranza.
7
Esame del 14 Luglio 2005
7.1
Domanda 1
Descrivre una macchina di Turign che risolva il seguente problema di decisione.
Dato un alfabeto a 4 simboli (0,1,2,3), stabile se la stringa in ingresso contiene triplette proprie, vale a dire sequenze di tre simboli identici non contenute
in sequenza di lunghezza superiore.
7
14
Esame del 14 Luglio 2005
1
q1
1
q2
b
q3
q4
1
1
q0
1
q5
1
q6
b
q7
q8
1
1
1
q9
1
q10
1
q13
b
q11
1
q14
q12
b
q15
q16
Anché la macchina di Turing sia perfettamente conforme alle speciche, si
dovrebbe complicarla parecchio; questa è una versione semplicata leggermente diorme dalle speciche.
Q = {q0 , q1 , · · · , q16 }
A = {q4 , q8 , q12 , q16 , }
Σ = {0, 1, 2, 3, 4}
Γ = {0, 1, 2, 3, 4, b}
Che cosa signica che un algoritmo ha complessità ottimale?
7.2
Domanda 4
Dimostrare le seguenti aermazioni, fornendo per ciascuna gli opportuni
valori delle relative costanti.
1.
n2 ∈ Ω(n2 + 1)
2.
n3 ∈ Θ(n3 − 3n2 + 3n − 1)
3.
log n ∈
/ Ω(n3 )
4.
10n + 2 log n ∈
/ O(log n2 )
7
15
Esame del 14 Luglio 2005
Soluzione 1:
1
2
n0 va bene qualsiasi.
Pongo
c=
n2 ∈ Ω(n2 + 1)
∃c ∈ R+ , n0 ∈ N+ : T (n) ≤ cf (n)
n2 1
n2 ≤
+
2
2
1
n2 +
2
Pongo n0 = 1
∀n ≥ n0
Soluzione 2:
n3 ∈ Θ(n3 − 3n2 + 3n − 1)
∃c1 , c2 ∈ R+ , n0 ∈ N+ :
0 ≤ c1 f (n) ≤ T (n) ≤ c2 f (n)
1
1 3
Pongo c1 =
(n − 3n2 + 3n − 1) ≤ n3 ≤ n3
2
2
1
1 3 3 2 3
n − n + n− ≥0
2
2
2
2
n3 − 3n2 + 3n − 1 ≥ 0
3
2
Come x − 3x + 3x − 1 ≥ 0
∀n ≥ n0
Calcolo la derivata:
(
0
f(2)
= 12 − 12 + 3 = 3
0
f(x) = 3x2 − 6x + 3
positivo,
le due soluzioni sono:
Pongo
Verico con:
x1 = 0; x2 = 2.
1
n0 = 3; c1 = ; c2 = 4.
2
n0 = 3
1
(27 − 18 − 9 − 1) ≤27 ≤ 4 · (27 − 18 + 9 − 1)
2
1
(17) ≤27 ≤ 4 · (17)
2
d9e <27 < 68
8
16
Esame del 13 Settembre 2004
Soluzione 3:
3
log n ∈Ω(n
/
)
+
+
@c ∈ R , n0 ∈ N : T (n) ≥ cf (n)
∀n ≥ n0
+
Posso esprimerlo come: ∃c ∈ N : T (n) < cf (n)
∃c ∈N+ : log n > cn3
+
Vero per ogni valore di N
Soluzione 4:
10n + 2 log n ∈
/ O(log n2 )
∃c > 0, n0 ∈ N+ :
T (n) ≤ cf (n)
∀n ≥ n0
In questo caso però:
@c > 0, n0 ∈ N+ :
Posso
8
T (n) ≤ cf (n)
∀n ≥ n0
+
esprimerlo come: ∃c ∈ N : T (n) > cf (n)
+
2
Pongo c = 1 ∃c ∈ N : 10n + 2 log n > log n
Esame del 13 Settembre 2004
8.1
Domanda 1
Precisare che cosa si intende per complessità computazionale nel caso della
macchina di Turing.
Nel caso della macchina di Turing, la complessità è data dal tempo e dallo
spazio impiegato dalla macchina per risolvere l'istanza peggiore. Il tempo è
dato dal numero di stati della macchina, lo spazio è dato dalla lunghezza del
nastro.
Che cosa signica che la maggior parte degli altri modelli computazionali
sono polinomialmente equivalenti alla macchina di Turing?
Perché questa
proprietà ci avvantaggia nello studio degli algoritmi?.
p(.) e q(.) indipendente dall'istanza I ,
risolve I in certo tempo T (I) ed in un certo
Signica che esiste un polinomio
tale che se la Turing machine
S(I), allora questo altro modello, equivavalente, la risolve in un tem≤ p(T(I) ) e spazio ≤ q(S(I) ) quindi c'è un legame tra le varie macchine,
spazio
po
8
17
Esame del 13 Settembre 2004
questo ci avvantaggia in quanto possiamo risolvere gli stessi problemi, indipendentemente da quale macchina si usi.
Denire formalmente una TM che segnala la presenza del simbolo 1 nella
stringa in ingresso, che si assume codicata un alfabeto binario.
Tabella 2: Funzione di transizione
1/0
1
Q × Γ Q × Γ × {S, D}
(q0 , 0)
(q1 , 0, D)
(q0 , 1)
(q2 , 1, D)
(q1 , 0)
(q1 , 0, D)
(q1 , 1)
(q2 , 1, D)
(q2 , 1)
(q2 , 1, D)
(q2 , 0)
(q2 , 0, D)
(q, γ)
non denita
q2
1
q0
0
0
q1
Q = {q0 , q1 , q2 }
A = {q2 }
Σ = {0, 1}
Γ = {0, 1, (b = γ)}
8.2
Domanda 3
Che cosa si inende aermando che il tempo di calcolo di un algorimto è
Θ(f (n))?
Si intende che la complessità asintotica dell'algoritmo,
T (n) ∈ Θ(f (n))
cioè:
∃c1 , c2 ∈ R+ , n0 ∈ N+ :
0 ≤ c1 f (n) ≤ T (n) ≤ c2 f (n)
∀n ≥ n0
9
18
Esame del 4 Novembre 2004
9
Esame del 4 Novembre 2004
9.1
Domanda 1
Spiegare che cosa si intende con complessità computazionale di un problema,
in particolare rispetto al tempo, e di quali aspetti bisogna tener conto nel denirla.
La complessità di un problema rispetto al tempo, è data dal miglior algoritmo possibile che risolva quel problema. Il tempo risultante dalla computazione, è la miglior complessità rispetto al tempo di quel problema.
Quando si dice che u problema è dicile
Un problema per noi è dicile quando non è trattabile, quindi è esponenziale.
Denire lo spazio dei problemi
NP
(cfr. Ÿ 5.1 a Pagina 9).
Il fatto che un problama sia in
No se un problema è in
NP
lo rende automaticamente dicile
N P , non è datto che sia automaticamente dicile
(cfr. Figura 1 a Pagina 5).
9.2
Domanda 2
Denire il concetto di riduzione fra problemi diversi.
Con riduzione polinomiale di un problema
P
in
P 0 : P ≤R P 0 , si intende
P in tempo polinomiale
una macchina dotata di oracolo, OTM che risolve
3
0
per P , un numero polinomiale di volte.
consultando un oracolo
Esempio:
•
Ordinamento
•
Confronto
Se so confrontare posso anche ordinare.
3 Nel
caso della trasformazione polinomiale, l'oracolo viene consultato solo una volta.
10
19
Esame del 31 Ottobre 2006
Tin + TO + Tf in · p
(1)
L'equazione (1), rappresenta la velocità di risoluzione, che è data da un tempo
di recupero dei dati, sommato al tempo di richista dell'oracolo sommato ad
un tempo nale per il riassemblaggio della soluzione tutto questo un numero
polinomiale di volte.
10
10.1
Esame del 31 Ottobre 2006
Domanda 1
Il seguente problema di decisione è noto come problema del cammino hamil-
toniano : dato un grafo orientato
G = (N, A) e due nodi s, t ∈ N , esiste in G
s, percorra tutti i nodi in N s, t una e una
un cammino orientato che parta da
sola volta e raggiunga il nodo
t?
Si disegnino due gra che corrispondono,
rispettivamente, a un'istanza positiva e a un'istanza negativa del problema.
Si progetti per induzione un algoritmo che risolva il problema con la forza
bruta nel caso base in cui il grafo ha
n = |N | = 2 nodi e
n − 1 nodi per ogni
saperlo risolvere nel caso di un grafo di
che assuma di
scelta di
s
e
t.
Si scriva uno pseudocodice dell'algoritmo, indicando le istruzioni destinate
a risolvere il caso base, quelle che riducono il problema corrente al/ai sottoproblema/i di dimensione ridotta e quelle che costruiscono la soluzione del
problema corrente a partire dalle soluzioni del/dei sottoproblema/i.
Si valuti la complessità dell'algoritmo stesso, impostando la discussione con
le tecniche trattate nel corso.
10.2
Domanda 2
Denire la complessità computazionale di un problema. Denire le classi di
complessità
P
e
NP
e illustrare le relazioni che le legano, se ve ne sono.
Mostrare che il problema del cammino hamiltoniano, descritto nella domanda
1, appartiene a
N P , proponendo una denizione per l'insieme dei certicati e
per la procedura che riconosce la validità del certicato stesso. Fare qualche
(I, ∆) valida e non valida.
Si denisca il concetto di problema N P -completo e se ne fornisca un esempio.
esempio di coppia istanza-certicato
(crf. Ÿ 2 a Pagina 4); mentre un legame tra
P
e
NP
è:
P ⊆ N P.
11
Esame del 19 Settembre 2006 (CA)
11
20
Esame del 19 Settembre 2006 (CA)
Esame di Complementi di algoritmi. Solo la domanda 1
11.1
Domanda 1
Si consideri il semplice algoritmo iterativo che, dato un numero naturale
ne calcola l fattoriale
a
n
n!,
n,
moltiplicando fra loro tutti i numeri naturali da 1
compreso.
Si fornisca lo pseudocodice dell'algoritmo e si indichino:
1. l'invariante di ciclo che ne garantisce la correttezza
2. la misura della distanza che consente di vericare il raggiungimento
della soluzione e il corrispondente test di ne
3. il modo con cui viene istituiti l'invariante
4. il modo in cui viene conservato l'invariante e ridotta la distanza
Si tracci la dimostrazione di correttezza dell'algoritmo (non è necessario
sviluppare tutti i punti, occorre però indicarli tutti).
12
1
Fattoriale ( n )
3
i =1;
Fatt =1;
5
21
Esame del 27 Gennaio 2005 (CA)
while ( i <= n )
7
Fatt = Fatt * i ;
i = i + 1;
9
return Fatt ;
11
Codice 1: Esempio Fattoriale
Esecuzione con
1a iterazione
1≤5
F att = 1 · 1
i=1+1
n = 5:
2a iterazione
2≤5
F att = 1 · 2
i=2+1
3a iterazione
3≤5
F att = 2 · 3
i=3+1
4a iterazione 5a iterazione f ine
4≤5
5≤5
F att = 6 · 4 F att = 24 · 5 FINE
i=4+1
-
Soluzione (1):
l'invariante di ciclo che ne garantisce la correttezza:
zione, ho i fattoriale di
F att =!i;
ad ogni itera-
i.
Soluzione (2):
La diminuzione della distanza, è garantira dalla riga 9:
con la riga 6:
i≤n
i=i+1
combinata
che ne garantisce il test di ne.
Soluzione (3):
L'istituzione dell'invariante è data dalle righe 3 e 4:
i=1
e
F att = 1.
Soluzione (4):
La conservazione dell'invariante è data dalla riga 8 mentre la riduzione della
distanza è il passo (2).
12
Esame del 27 Gennaio 2005 (CA)
Indicare brevemente a parole (senza formule) quale invariante di ciclo garantisce la correttezza dell'algoritmo di Euclide per il calcolo del Massimo
Comune Divisore (MCD) di due interi dati a e b, come viene istituito e quale
stato nale consente di interrompere l'esecuzione e restituire la soluzione del
12
Esame del 27 Gennaio 2005 (CA)
22
problema.
Indicare quali fra le seguenti implementazioni di tale algoritmo funzionano,
e suggerire una semplice correzione per ciascun caso scorretto.
1
3
5
Euclide1 (a , b )
while ( a != b ) do
if ( a > b )
then a := b - a ;
else b := a - b ;
return a ;
7
9
11
13
Euclide2 (a , b )
while ( a != b ) do
if ( a > b )
then a := a - b ;
else b := b - a ;
return b ;
15
17
19
21
Euclide3 (a , b )
while ( a != b ) do
if ( a > b )
then b := a - b ;
else a := b - a ;
return a ;
Codice 2: MCD Euclide
(
M CD(ai , bi ) = M CD(a, b)
δi = 0 ⇔ ai = bi
Euclide (1):
Esecuzione con
a = 12; b = 4:
1a iterazione
f ine
12 ≥ 4
a = 4 − 12 = 8 FINE
b = 12 − 4 = 8
Non conserva l'invariante,non riduce la distanza.
Euclide (2):
è una implementazione corretta
Euclide (2):
Non conserva l'invariante, non riduce la distanza.