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 |
Teorema 3 - Master Theorem Esteso)
/%E2%9A%99%EF%B8%8F%20Algoritmi%20e%20Strutture%20Dati/_images/MasterTheorem.png)