[Algoritmi] Dimostrazione limite inferiore problema ordinamento

Messaggioda rubotubo » 26/11/2017, 10:37

Salve gentaglia! Non riesco a capire un passaggio della dimostrazione che vi riporto.

Il seguente è un albero binario decisionale relativo al problema dell'ordinamento con scambio.
Immagine

Ora il numero di foglie è dato da tutte le possibili disposizioni ovvero \(\displaystyle n! \), se l'albero fosse completo (ogni nodo ha 2 figli) allora il numero di foglie sarebbe \(\displaystyle 2^h \) dove \(\displaystyle h \) è l'altezza.

Quindi si può dire che \(\displaystyle 2^h\geq n! \)
che si può riscrivere come \(\displaystyle 2^h\geq n(n-1)(n-2) \dots2 \cdot 1\)

Ed ecco il passaggio che non capisco: \(\displaystyle 2^h\geq n(n-1)(n-2) \dots2 \cdot 1 \geq \frac{n}{2}^\frac{n}{2}\)

Il resto invece mi è chiaro:
\(\displaystyle 2^h \geq \frac{n}{2}^\frac{n}{2} \)
\(\displaystyle h \geq \log_{2}(\frac{n}{2}^\frac{n}{2}) \)
\(\displaystyle h = \Omega(n log_{2}n) \)


Un altro modo di dimostrare il tutto è il seguente: file (pagina 2)
Qui invece non mi è chiaro come si arriva al seguente step \(\displaystyle \geq 0 + \sum\limits_{i=\frac{n}{2}}^n \log_{2}{\frac{n}{2}} \)
e al successivo \(\displaystyle \frac{n}{2}\log_{2}{\frac{n}{2}} \)

Grazie mille :D
rubotubo
Starting Member
Starting Member
 
Messaggio: 1 di 18
Iscritto il: 26/11/2017, 10:03

Re: [Algoritmi] Dimostrazione limite inferiore problema ordinamento

Messaggioda probid » 27/11/2017, 00:56

1) $n(n-1) \cdot ... \cdot 1$
$>= n(n-1) \cdot ...\cdot n/2$
$>= \underbrace{ n/2 * n/2 \cdot ...\cdot n/2}_{n/2 \text {volte}} = (n/2)^(n/2)$

2)$\sum_{i=n/2}^n \logi = \log(n/2) + \log(n/2 + 1) + ... + \logn $
$\ge \underbrace{ \log(n/2) + \log(n/2) + ... + \log(n/2)}_{ n - n/2 + 1 \text{ volte}} \ge (n/2) \cdot \log(n/2)$
Lo 0 dalla prima sommatoria sta ad indicare che i termini iniziali sono trascurabili nel comportamento asintotico, è la seconda sommatoria che "domina".

Si può anche sfruttare l'approssimazione di Stirling:
$2^h \ge n! \ge (n/e)^n$
$h \ge \log (n/e)^n = n (\log n-log e) \ge n\logn$

Ciao!
probid
New Member
New Member
 
Messaggio: 22 di 82
Iscritto il: 01/10/2010, 19:30


Torna a Informatica

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite