Algoritmi e Strutture Dati
Ancora sul teorema master
Algoritmi e strutture dati
Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano
Teorema Master (*)
La relazione di ricorrenza:
T(n) =
a T(n/b) + f(n) se n>1
Θ(1)
se n=1
ha soluzione:
1. T(n) = Q(nlogba ) se f(n)=O(n logba- e) per qualche e>0
2. T(n) = Q(n logba log n) se f(n) = Q(n logba )
3. T(n) = Q(f(n)) se f(n)=W(n logba+ e ) per qualche e>0
(ma sotto l’ulteriore ipotesi che f(n) soddisfi la “condizione di regolarità”:
a f(n/b)≤ c f(n) per qualche c<1 ed n sufficientemente grande)
2
Copyright © 2004 - The McGraw - Hill Companies, srl
Algoritmi e strutture dati
Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano
Dimostrazione del caso 1
Albero della ricorsione
3
Copyright © 2004 - The McGraw - Hill Companies, srl
Algoritmi e strutture dati
Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano
Proprietà dell’albero della ricorsione
• Proprietà 1: il numero di nodi a livello i dell’albero della
ricorsione è ai (ricorda che la radice è a livello 0)
• Proprietà 2: i sottoproblemi a livello i dell’albero della
ricorsione hanno dimensione n/bi
• Proprietà 3: il contributo al tempo di esecuzione di un
nodo a livello i (escluso tempo chiamate ricorsive) è
f(n/bi)
• Proprietà 4: il numero di livelli dell’albero è logb n
logb n
i f(n/bi)
T(n)=
a
i=0
4
Copyright © 2004 - The McGraw - Hill Companies, srl
Algoritmi e strutture dati
Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano
…quindi, nel caso 1
 logb a e  be logb n 1  1  
 logb a e  be ne  1  

   O n
 e
 
 O n
e



 b 1  
 b 1  


Inoltre, T(n) a logb n (ultimo termine della sommatoria)
= n logb a = Ω(n logb a ), da cui la tesi.
I casi 2 e 3 possono essere gestiti in modo analogo.
5
QED
Copyright © 2004 - The McGraw - Hill Companies, srl
Algoritmi e strutture dati
Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano
Esempi
1) T(n) = n + 2T(n/2)
a=2, b=2, f(n)=n=Q(n log22 )
(caso 2 del teorema master)
T(n)=Q(n log n)
2) T(n) = c + 3T(n/9)
a=3, b=9, f(n)=c=On log93 - e )
(caso 1 del teorema master)
T(n)=Q(√n)
3) T(n) = n + 3T(n/9)
a=3, b=9, f(n)=n=W(n log93 + e)
3(n/9)≤ c n per c=1/3
(caso 3 del teorema master)
6
T(n)=Q(n)
Copyright © 2004 - The McGraw - Hill Companies, srl
Algoritmi e strutture dati
Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano
Esempi
4) T(n) = n log n + 2T(n/2)
a=2, b=2, f(n) ≠ Θ (n log22 ) (e quindi non ricade nel caso 2),
ma non esiste alcun e > 0 per cui f(n)=W(n log22+e )W(n1+e)
(infatti,
limn
n log n log n
 e 0
1e
n
n
per ogni e > 0 )
non si può applicare
il teorema Master!
7
Copyright © 2004 - The McGraw - Hill Companies, srl
Scarica

Clicca qui.