Ordinamento & Combinatoria, II Algoritmi ottimi: Θ(n log n) Confronti e alberi di decisione Dimostrazione del Teorema Laboratorio di Analisi Combinatoria 2006–2007 Un esempio di applicazione dell’analisi combinatoria all’informatica Parte II Vincenzo Marra Dipartimento di Informatica e Comunicazione Università degli Studi di Milano 14 novembre 2006 Vincenzo Marra LAC 2006–2007 Ordinamento & Combinatoria, II Algoritmi ottimi: Θ(n log n) Confronti e alberi di decisione Dimostrazione del Teorema Algoritmi ottimi: Θ(n log n) Confronti e alberi di decisione Dimostrazione del Teorema Vincenzo Marra LAC 2006–2007 Ordinamento & Combinatoria, II Algoritmi ottimi: Θ(n log n) Confronti e alberi di decisione Dimostrazione del Teorema Limite inferiore teorico Teorema 1. Qualunque algoritmo di ordinamento ha complessità Ω(n log n) nella dimensione n dei dati in ingresso. 2. Esistono algoritmi di ordinamento aventi complessità O(n log n) nella dimensione n dei dati in ingresso, ossia ottimi. La loro complessità è quindi Θ(n log n). Vincenzo Marra LAC 2006–2007 Ordinamento & Combinatoria, II Algoritmi ottimi: Θ(n log n) Confronti e alberi di decisione Dimostrazione del Teorema Alberi di decisione I Le possibili sequenze di confronti eseguite da un algoritmo di ordinamento possono essere riassunte e analizzate usando un albero binario, detto albero di decisione. Vincenzo Marra LAC 2006–2007 Ordinamento & Combinatoria, II Algoritmi ottimi: Θ(n log n) Confronti e alberi di decisione Dimostrazione del Teorema Alberi di decisione I Le possibili sequenze di confronti eseguite da un algoritmo di ordinamento possono essere riassunte e analizzate usando un albero binario, detto albero di decisione. I I nodi dell’albero, eccetto le foglie, rappresentano confronti. Vincenzo Marra LAC 2006–2007 Ordinamento & Combinatoria, II Algoritmi ottimi: Θ(n log n) Confronti e alberi di decisione Dimostrazione del Teorema Alberi di decisione I Le possibili sequenze di confronti eseguite da un algoritmo di ordinamento possono essere riassunte e analizzate usando un albero binario, detto albero di decisione. I I nodi dell’albero, eccetto le foglie, rappresentano confronti. I I rami rappresentano gli esiti dei confronti. Vincenzo Marra LAC 2006–2007 Ordinamento & Combinatoria, II Algoritmi ottimi: Θ(n log n) Confronti e alberi di decisione Dimostrazione del Teorema Alberi di decisione I Le possibili sequenze di confronti eseguite da un algoritmo di ordinamento possono essere riassunte e analizzate usando un albero binario, detto albero di decisione. I I nodi dell’albero, eccetto le foglie, rappresentano confronti. I I rami rappresentano gli esiti dei confronti. I Le foglie rappresentano ordinamenti totali dei dati in ingresso. Vincenzo Marra LAC 2006–2007 Ordinamento & Combinatoria, II Algoritmi ottimi: Θ(n log n) Confronti e alberi di decisione Dimostrazione del Teorema Alberi di decisione I Le possibili sequenze di confronti eseguite da un algoritmo di ordinamento possono essere riassunte e analizzate usando un albero binario, detto albero di decisione. I I nodi dell’albero, eccetto le foglie, rappresentano confronti. I I rami rappresentano gli esiti dei confronti. I Le foglie rappresentano ordinamenti totali dei dati in ingresso. I Un percorso dalla radice a una foglia rappresenta la sequenza di confronti necessaria per produrre in uscita quel particolare odine totale. Vincenzo Marra LAC 2006–2007 Ordinamento & Combinatoria, II Algoritmi ottimi: Θ(n log n) Confronti e alberi di decisione Dimostrazione del Teorema Alberi di decisione: esempio Un possibile albero di decisione per un algoritmo di ordinamento con n = 3: Vincenzo Marra LAC 2006–2007 Ordinamento & Combinatoria, II Algoritmi ottimi: Θ(n log n) Confronti e alberi di decisione Dimostrazione del Teorema Alberi di decisione: esempio Un possibile albero di decisione per un algoritmo di ordinamento con n = 3: Figura: Un albero di decisione. Vincenzo Marra LAC 2006–2007 Ordinamento & Combinatoria, II Algoritmi ottimi: Θ(n log n) Confronti e alberi di decisione Dimostrazione del Teorema Un lemma Lemma. Un albero binario completo di altezza h ha esattamente 2h foglie. Vincenzo Marra LAC 2006–2007 Ordinamento & Combinatoria, II Algoritmi ottimi: Θ(n log n) Confronti e alberi di decisione Dimostrazione del Teorema Un lemma Lemma. Un albero binario completo di altezza h ha esattamente 2h foglie. Dim. Semplice induzione su h. Vincenzo Marra LAC 2006–2007 Ordinamento & Combinatoria, II Algoritmi ottimi: Θ(n log n) Confronti e alberi di decisione Dimostrazione del Teorema Dimostrazione I Sia dato un algoritmo, diciamo A, che risolve il problema dell’ordinamento. Vincenzo Marra LAC 2006–2007 Ordinamento & Combinatoria, II Algoritmi ottimi: Θ(n log n) Confronti e alberi di decisione Dimostrazione del Teorema Dimostrazione I Sia dato un algoritmo, diciamo A, che risolve il problema dell’ordinamento. I Fissiamo la dimensione n ∈ N dei dati in ingresso, v[1], . . . , v[n]. Vincenzo Marra LAC 2006–2007 Ordinamento & Combinatoria, II Algoritmi ottimi: Θ(n log n) Confronti e alberi di decisione Dimostrazione del Teorema Dimostrazione I Sia dato un algoritmo, diciamo A, che risolve il problema dell’ordinamento. I Fissiamo la dimensione n ∈ N dei dati in ingresso, v[1], . . . , v[n]. I Sia D l’albero di decisione di A per tale input. Vincenzo Marra LAC 2006–2007 Ordinamento & Combinatoria, II Algoritmi ottimi: Θ(n log n) Confronti e alberi di decisione Dimostrazione del Teorema Dimostrazione I Sia dato un algoritmo, diciamo A, che risolve il problema dell’ordinamento. I Fissiamo la dimensione n ∈ N dei dati in ingresso, v[1], . . . , v[n]. I Sia D l’albero di decisione di A per tale input. I Poichè l’algoritmo è corretto, l’albero D non può avere meno di n! foglie, corrispondenti a tutti i possibili ordinamenti di v[1], . . . , v[n]. Vincenzo Marra LAC 2006–2007 Ordinamento & Combinatoria, II Algoritmi ottimi: Θ(n log n) Confronti e alberi di decisione Dimostrazione del Teorema Dimostrazione I Sia adesso h l’altezza di D, cioè la lunghezza del percorso foglia-radice più lungo. Vincenzo Marra LAC 2006–2007 Ordinamento & Combinatoria, II Algoritmi ottimi: Θ(n log n) Confronti e alberi di decisione Dimostrazione del Teorema Dimostrazione I Sia adesso h l’altezza di D, cioè la lunghezza del percorso foglia-radice più lungo. I Se, per assurdo, fosse h < log n!, per il Lemma l’albero D avrebbe al massimo 2h < 2log n! = n! foglie. Vincenzo Marra LAC 2006–2007 Ordinamento & Combinatoria, II Algoritmi ottimi: Θ(n log n) Confronti e alberi di decisione Dimostrazione del Teorema Dimostrazione I Sia adesso h l’altezza di D, cioè la lunghezza del percorso foglia-radice più lungo. I Se, per assurdo, fosse h < log n!, per il Lemma l’albero D avrebbe al massimo 2h < 2log n! = n! foglie. I Ma ciò è impossibile, visto che D deve avere almeno n! foglie. Vincenzo Marra LAC 2006–2007 Ordinamento & Combinatoria, II Algoritmi ottimi: Θ(n log n) Confronti e alberi di decisione Dimostrazione del Teorema Dimostrazione I Sia adesso h l’altezza di D, cioè la lunghezza del percorso foglia-radice più lungo. I Se, per assurdo, fosse h < log n!, per il Lemma l’albero D avrebbe al massimo 2h < 2log n! = n! foglie. I Ma ciò è impossibile, visto che D deve avere almeno n! foglie. I Quindi abbiamo dimostrato che h ≥ log n!. Vincenzo Marra LAC 2006–2007 Ordinamento & Combinatoria, II Algoritmi ottimi: Θ(n log n) Confronti e alberi di decisione Dimostrazione del Teorema Dimostrazione I Inoltre, log n! ≥ Vincenzo Marra n n log 2 2 LAC 2006–2007 Ordinamento & Combinatoria, II Algoritmi ottimi: Θ(n log n) Confronti e alberi di decisione Dimostrazione del Teorema Dimostrazione I Inoltre, log n! ≥ I n n log 2 2 Infatti, n! = n(n − 1) · · · 3 · 2 · 1 ≥ n(n − 1) · · · Vincenzo Marra LAC 2006–2007 n n n2 ≥ 2 2 Ordinamento & Combinatoria, II Algoritmi ottimi: Θ(n log n) Confronti e alberi di decisione Dimostrazione del Teorema Dimostrazione I Inoltre, log n! ≥ I n n log 2 2 Infatti, n! = n(n − 1) · · · 3 · 2 · 1 ≥ n(n − 1) · · · I n n n2 ≥ 2 2 Prendendo i logaritmi di entrambi i membri, si ottiene la disuguaglianza voluta. Vincenzo Marra LAC 2006–2007 Ordinamento & Combinatoria, II Algoritmi ottimi: Θ(n log n) Confronti e alberi di decisione Dimostrazione del Teorema Dimostrazione I Ora, l’altezza h rappresenta il numero di confronti eseguiti dall’algoritmo A nel caso peggiore, perchè massimizza il numero di confronti necessari per produrre la soluzione. Vincenzo Marra LAC 2006–2007 Ordinamento & Combinatoria, II Algoritmi ottimi: Θ(n log n) Confronti e alberi di decisione Dimostrazione del Teorema Dimostrazione I Ora, l’altezza h rappresenta il numero di confronti eseguiti dall’algoritmo A nel caso peggiore, perchè massimizza il numero di confronti necessari per produrre la soluzione. I Avendo dimostrato h ≥ log n! ≥ n n log 2 2 deduciamo quindi che il tempo di comutazione di A è in Ω(n log n), il che dimostra la Parte 1 del Teorema. Vincenzo Marra LAC 2006–2007 Ordinamento & Combinatoria, II Algoritmi ottimi: Θ(n log n) Confronti e alberi di decisione Dimostrazione del Teorema Dimostrazione I La Parte 2 del Teorema si dimostra semplicemente esibendo un algoritmo di ordinamento A che esegua in tempo O(n log n). Vincenzo Marra LAC 2006–2007 Ordinamento & Combinatoria, II Algoritmi ottimi: Θ(n log n) Confronti e alberi di decisione Dimostrazione del Teorema Dimostrazione I La Parte 2 del Teorema si dimostra semplicemente esibendo un algoritmo di ordinamento A che esegua in tempo O(n log n). I Un tale algoritmo, per esempio, è MergeSort (proposto da Von Neumann nei primi anni Cinquanta). Ometteremo l’analisi di complessità di questo algoritmo. Vincenzo Marra LAC 2006–2007 Ordinamento & Combinatoria, II Algoritmi ottimi: Θ(n log n) Confronti e alberi di decisione Dimostrazione del Teorema Dimostrazione I La Parte 2 del Teorema si dimostra semplicemente esibendo un algoritmo di ordinamento A che esegua in tempo O(n log n). I Un tale algoritmo, per esempio, è MergeSort (proposto da Von Neumann nei primi anni Cinquanta). Ometteremo l’analisi di complessità di questo algoritmo. I Q.E.D. Vincenzo Marra LAC 2006–2007