Teorema principale (informatica)
Nell'analisi degli algoritmi, il Teorema Principale o Master Theorem (noto anche come Teorema dell'Esperto) è un caso particolare del teorema di Akra-Bazzi, quando i sottoproblemi hanno tutti dimensioni paragonabili. Permette di calcolare la complessità temporale degli algoritmi ricorsivi definiti mediante relazioni di ricorrenza. Si noti che il teorema non fornisce l'esatto tempo di esecuzione dell'algoritmo, ma il suo comportamento asintotico come funzione della dimensione dell'input, tralasciando le costanti additive e moltiplicative.
Indice |
[modifica] Enunciato
Sia dato un algoritmo
e la relazione di ricorrenza
che ne descrive il costo:
dove
e
siano costanti,
si può interpretare sia come
(funzione floor), sia come
(funzione ceiling), ed in cui:
è la dimensione dell'input
è il numero di chiamate ricorsive all'algoritmo 
è la dimensione della chiamata ricorsiva (ovvero la porzione del problema originale rappresentato in ogni sottoproblema)
è la funzione di costo della fase di suddivisione del problema e di ricostruzione della soluzione.
Per semplicità di trattazione supporremo che
sia un'esatta potenza di
e che la ricorsione si arresti quando
.
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
.
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
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
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
chiamate ricorsive (cioè la funzione
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
,
e
. 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
,
e
. Essendo
ed
, vale il caso 2 del Master Theorem, che porta alla soluzione 
[modifica] Caso 3
Infine sia data la relazione di ricorrenza:
in cui
,
e
. Essendo
ed
, in cui ε ≈ 0.2, il caso 3 del Master Theorem si può applicare solo se vale la condizione di regolarità per
. 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
|
|

è la dimensione della chiamata ricorsiva (ovvero la porzione del problema originale rappresentato in ogni sottoproblema)


