Master theorem
Da Wikipedia, l'enciclopedia libera.
Nell'analisi degli algoritmi, il Master Theorem è un caso particolare del teorema di Akra-Bazzi e permette di calcolare la complessità temporale di un gran numero di algoritmi ricorsivi definiti mediante relazioni di ricorrenza. Si noti che il Master Theorem non fornisce l'esatto tempo di esecuzione (il cosiddetto running time) dell'algoritmo, bensì fornisce il suo comportamento asintotico in funzione della dimensione dell'input, ovvero la funzione che descrive il tempo di esecuzione tralasciando le costanti moltiplicative. Ecco che allora attraverso questo teorema si può ad esempio affermare che un algoritmo ricorsivo ha complessità quadratica in funzione della dimensione dell'input n (cioè cresce come una parabola), ma non si può affermare che cresce ad esempio secondo la funzione 2n2 − n.
Indice |
[modifica] Enunciato
Sia dato un algoritmo A e la relazione di ricorrenza TA(n) che ne descrive il costo:
dove
e
siano costanti,
si può interpretare sia come
(funzione floor), sia come
(funzione ceiling), ed in cui:
- n è la dimensione dell'input
- a è il numero di chiamate ricorsive all'algoritmo A
è la dimensione della chiamata ricorsiva (ovvero la porzione del problema originale rappresentato in ogni sottoproblema)- f(n) è la funzione di costo della fase di suddivisione del problema e di ricostruzione della soluzione.
Per semplicità di trattazione supporremo che n sia un'esatta potenza di b e che la ricorsione si arresti quando n = 1.
Analizzando l'albero della ricorsione relativo alla precedente relazione di ricorrenza, possiamo riscrivere quest'ultima nella forma
.
Allora la funzione
è limitata asintoticamente secondo uno dei tre seguenti casi:
[modifica] Caso 1
Se
(notazione O grande) per qualche costante 
allora 
[modifica] Dimostrazione
Nel dimostrare il Caso 1 del Teorema Master faremo un abuso della notazione O grande, scrivendo che 
Per ipotesi
per ε > 0.
Usando l'abuso di notazione O grande accennato precedentemente, riscriviamo il termine principale della sommatoria espressa in precedenza in modo più conveniente alla dimostrazione del teorema; segue questa catena di uguaglianze:
.
Pet limitare TA(n) possiamo scrivere:

Analizzando l'espressione
, possiamo isolare i tempi di esecuzione relativi ai soli nodi sull'ultimo livello dell'albero di ricorsione, ottenendo:
e quindi
.
Le due limitazioni ricavate implicano che
.
[modifica] Caso 2
Se
per un intero 
allora 
[modifica] Dimostrazione
Dimostriamo il Caso 2 nel caso particolare in cui
.
Partendo dall'ipotesi
, riscriviamo il termine principale della sommatoria che esprime TA(n) come segue:
.
Da cui:
.
[modifica] Caso 3
Se
per qualche costante 
e se
per qualche costante
e per qualche n sufficientemente elevato,
allora 
[modifica] Dimostrazione
Assumendo che valga la relazione
, si può dimostrare che vale la relazione
.
Infatti

Continuando l'iterazione si ottiene la disuguaglianza desiderata.
Vale la seguente catena di disuguaglianze:

Dalla relazione di ricorrenza
possiamo ricavare che
.
Questo implica che 
[modifica] Definizione informale
Si tenta qui di dare una definizione molto informale del Master Theorem. In ognuno dei 3 casi sopra esposti si confronta la funzione che descrive il costo della fase di calcolo del sottoproblema di ricombinazione del risultato delle a chiamate ricorsive (cioè la funzione f(n) che appare nella relazione di ricorrenza) con la funzione
Il costo della relazione di ricorrenza è determinato dalla funzione che cresce più velocemente tra le due. Ad esempio nel caso 1 la funzione
è più grande di
e quindi
Viceversa nel caso 3 si confrontano le funzioni
e
in cui la prima è la più grande e quindi
. Infine nel caso 2 le due funzioni crescono in modo simile, ovvero sono dello stesso ordine di grandezza, e la soluzione è la funzione f(n) moltiplicata per un fattore logaritmico: 
[modifica] Esempi
[modifica] Caso 1
Sia data la seguente relazione di ricorrenza:
Si ha a = 9, b = 3 e f(n) = n. Allora
Dato che
quando ε = 1, è possibile applicare il caso 1 del Master Theorem ottenendo la soluzione
[modifica] Caso 2
Sia data ora la relazione di ricorrenza:
in cui a = 1, b = 3 / 2 e f(n) = 1. Essendo
ed f(n) = 1, vale il caso 2 del Master Theorem, che porta alla soluzione 
[modifica] Caso 3
Infine sia data la relazione di ricorrenza:
in cui a = 3, b = 4 e f(n) = nlgn. Essendo
ed
, in cui ε ≈ 0.2, il caso 3 del Master Theorem si può applicare solo se vale la condizione di regolarità per f(n). Per n sufficientemente grande si ha
per
. Di conseguenza la soluzione della ricorrenza è 
[modifica] Bibliografia
- Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein. Introduction to Algorithms, Second Edition. MIT Press and McGraw-Hill, 2001. Sections 4.3 (The master method), pp.73–90. ISBN 0-262-03293-7.
[modifica] Voci correlate
Portale Informatica: accedi alle voci di Wikipedia che parlano di Informatica






