Equazioni di ricorrenza
Quando si calcola la complessità di un algoritmo ricorsivo, questa viene espressa tramite un’equazione di ricorrenza, ovvero una formula matematica definita in maniera... ricorsiva!
Un esempio è il Merge Sort:
da cui si ottiene
Analizziamo quindi i diversi metodi per risolvere ricorrenze, ossia:
- Analisi per livelli
- Analisi per tentativi (o per sostituzione)
- Metodo dell'esperto (o delle ricorrenze comuni)
Analisi per livelli
“Srotoliamo” la ricorrenza in un albero i cui nodi rappresentano i costi ai vari livelli della ricorsione.
Esempio 1)
Analizziamo cosa succede ad ogni livello:
Livello | Dimensione | Costo chiamata | N. chiamate | Costo livello (costo chiamate x n. chiamate) |
---|---|---|---|---|
Come si risolve?
Esempio 2)
Analizziamo cosa succede ad ogni livello:
Livello | Dimensione | Costo chiamata | N. chiamate | Costo livello (costo chiamate x n. chiamate) |
---|---|---|---|---|
Come si risolve?
Possiamo quindi affermare che
Possiamo notare però che
Analisi per tentativi (o per sostituzione)
È un metodo in cui si cerca di “indovinare” (guess) una soluzione, in base alla propria esperienza, e si dimostra che questa soluzione è corretta tramite induzione.
Esempio 1 - Intuizione corretta
Se siamo furbi possiamo notare che
CASO BASE: Dimostriamo la disequazione per
IPOTESI INDUTTIVA:
PASSO DI INDUZIONE: Dimostriamo la disequazione per
Abbiamo provato che
- Nel caso base:
- Nel passo induttivo:
- Un valore
che rispetta entrambe le disequazioni è
Abbiamo quindi provato che
É possibile dimostrare facilmente che
che è vera per ogni
Esempio 2 - Interpretazione errata
Si può facilmente intuire che
Quindi:
Ma se sbagliassimo l'intuizione?
Tentiamo per esempio di dimostrare che
Come possiamo vedere la disequazione risulta impossibile, dunque
Esempio 3 - Caso base errato
Tentiamo di dimostrare che
IPOTESI INDUTTIVA:
PASSO DI INDUZIONE: Dimostriamo la disequazione per
Mannaggia, se non ci fosse quel
Cerchiamo allora di dimostrare un'ipotesi induttiva più stretta:
IPOTESI INDUTTIVA:
PASSO DI INDUZIONE: Dimostriamo la disequazione per
Perfetto, non ci resta che dimostrare il passo base
CASO BASE: Dimostriamo la disequazione per
Per
Non è necessario andare oltre, perchè
Concludiamo che
Per riassumere
- Si “indovina” una possibile soluzione e si formula un’ipotesi induttiva
- Si sostituisce nella ricorrenza le espressioni
, utilizzando l’ipotesi induttiva - Si dimostra che la soluzione è valida anche per il caso base
Attenzione
- Ad ipotizzare soluzioni troppo “strette”
- Ad alcuni casi particolari che richiedono alcune astuzie matematiche
- Ai casi base: il logaritmo può complicare le cose
Metodo dell'esperto (o delle ricorrenze comuni)
Esiste un’ampia classe di ricorrenze che possono essere risolte facilmente facendo ricorso ad alcuni teoremi, ognuno dei quali si occupa di una classe particolare di equazioni di ricorrenza.
Teorema 1 - Master Theorem)
Siano
allora
Teorema 2)
Siano
Posto
è , se è , se
In parole povere, sommi tutti i coefficienti di
Esempi
Ricorrenza | a | Risultato | |
---|---|---|---|
1 | 2 | ||
2 | 0 | ||
7 | 1 |