Laboratorio di Analisi Combinatoria 2006-

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