Ricorrenza corretta in parte

Darèios89
[tex]T(n)=4T(n/2)+n\log(n)[/tex]

Si può fare con il teorema Master e come soluzione si trova [tex]T(n)=\theta(n^2)[/tex]

Provando a farla con l' albero ottengo dei costi ai vari livelli che sono:

[tex](2^i)n\log(\frac{n}{2^i})[/tex]

Il numero di foglie è [tex]n^2[/tex] e quindi sommando i vari costi si ottiene:

[tex]\sum_{i=0}^{\log_2(n)-1}(2)^in\log_2(\frac{n}{2^i})+\theta(n^2)[/tex]

[tex]\sum_{i=0}^{\log_2(n)-1}(2)^in\log_2(n)-\sum_{i=0}^{\log_2(n)-1}(2)^in\log_2(2^i)+..[/tex]

La prima serie è:

[tex]n\log_2(n)\sum_{i=0}^{\log_2(n)-1}(2)^i[/tex]

Ottenendo [tex]n^2\log(n)-n\log(n)[/tex]

L' altra diventa [tex]\sum_{i=0}^{\log_2(n)-1}2^ii[/tex]

Qui come faccio? L' unica cosa che devo calcolare è:

[tex]\sum_{i=0}^{\log_2(n)-1}i[/tex]

Non so come vederla visto che arriva a log, se fosse stato n sarebbe stata la somma dei primi n naturali...

Risposte
hamming_burst
forse intendi: $4T(n/2) + nlog(n)$?

Darèios89
Si scusami, ho corretto, non so perchè è successo due volte che scrivo meno al posto di fratto....

Darèios89
Manca l' ultima serie, come trattarla?

hamming_burst
"Darèios89":


[tex](2^i)n\log(\frac{n}{2^i})[/tex]

Il numero di foglie è [tex]n^2[/tex] e quindi sommando i vari costi si ottiene:

[tex]\sum_{i=0}^{\log_2(n)-1}(2)^in\log_2(\frac{n}{2^i})+\theta(n^2)[/tex]


ok mi sembra corretto, non ho valutato l'equazione (mi fido :))

$\sum_{i=0}^{\log_2(n)-1}(2)^i\n\log_2(\frac{n}{2^i}) = n\sum_{k=1}^{\log_2(n)}(2)^k(\log_2(n) - k)$
$n\sum_{k=1}^{\log_2(n)}2^kk$ vedi = $... = 2n(2^{log_{2}(n)}(log_{2}(n) - 1) + 1) = 2n(n(log_{2}(n)-1)+1) = 2n(nlog_{2}(n) - n +1) = 2n^2log_{2}(n) - 2n^2 + 2n $

$2n^2log_{2}(n) - 2n^2 + 2n + O(n^2) in O(n^2log_{2}(n))$

se non ho sbagliato qualcosa questo è tutto :-)

EDIT:
come detto in un altro post, non ero sicuro di questa uguaglianza. Perciò:
$sum x^i(n-i) != sum x^ii$

l'unica strada è calcolare l'intera sommatoria.

Darèios89
Mh....la soluzione dovrebbe essere [tex]\theta(n^2)[/tex].
Io ho la soluzione di questa ricorrenza ma non l' ho capita. Se mi dai la mail via pm, ti invio un pdf dove non sono riuscito a capire l' ultimo pezzo. Sempre se hai tempo :-)

hamming_burst
come dissi più vollte l'albero riporta limitazioni superiori, che siano strette o meno bisogna sempre dimostrarlo, perchè sono ipotesi.
Poi ad occhio non capisco come possa essere $n^2$... ci sarà qualche passaggio sballato, ricontrollerò.

Darèios89
Si scrivo qui la formula, la limitazione [tex]\theta(n^2)[/tex] deriva da alcune semplificazioni che si hanno con quelle serie alla fine dei conti, se invece intendi quella che metto all' inizio della ricorrenza è perchè ho calcolato il costo delle foglie.

L' albero ha altezza [tex]\log_2(n)[/tex] quindi i nodi ad altezza h sarebbero [tex]4^{\log(n)}[/tex] da cui [tex]\theta(n^2)[/tex] se non erro.

La prima delle serie l' ho svolta nel primo post è risulta [tex]n^2\log(n)-n\log(n)[/tex] l' altra è:

[tex]\sum_{i=0}^{\log(n)-1}2^i*n\log_2(2^ì)[/tex]

E cioè:

[tex]n\sum_{i=0}^{\log(n)-1}2^i*i[/tex]

Poi nel pdf trovo scritto:

[tex]n(2^{\log(n)}\log(n)-2*2^{\log(n)}+2)[/tex]

Non capisco come arrivare qui....
E' la stessa che effettivamente è spuntata nel precedente post....lo sto ristudiando.
Mi sa che il mio problema sono le derivate, intanto nel tuo post mi sono dimenticato di una cosa:

ricorrenze-e-domande-t80600.html

Fai questa derivata: [tex]\frac{2^{n+1}-1}{2-1}[/tex] a me risulta [tex]2^{n+1}[/tex] non capisco perchè risulta [tex]2^n(n-1)+1[/tex].

Provando a fare quella di questo post.....non sono riuscito a farla bene: diventerebbe

[tex]2n\sum 2^{i-1}i[/tex]

Derivare
[tex]\frac{2^{\log(n)}-1}{2-1}[/tex]

E' la derivata di un quoziente, e al numeratore ho una funzione composta, quindi alla fine mi ritrovo [tex]\frac{2^{\log(n)}}{n}[/tex]

Però andando a sostituire non ottengo lo stesso prodotto...[tex]n(2^{\log(n)}\log(n)-2*2^{\log(n)}+2)[/tex]

hamming_burst
ok. Cercherò di esporti con le sotto-operazioni, penso non ti siano chiare quelle.

La semplificazione che ho fatto, proprio non ti garba :D

mettiamo tutto per esteso, prendendo per buoni i tuoi conti sull'albero e le tue sommatorie (senza la mia semplificazione).

A livello $i$ si avrà che: $2^i\nlog_{2}(n/2^i)$

semplifichiamoci la vita con le proprietà dei logaritmi:

\[2^in\log_{2}(\frac{n}{2^i}) = 2^in(log_{2}(n) - log_{2}(2^i)) = 2^in(log_{2}(n) - i\log_{2}(2)) =\]
(*) \[= 2^in(log_{2}(n) - i) = 2^in\log_{2}(n) - 2^in*i\]

Ora calcoliamo i nodi interni, con le semplificazioni sopra:

\[\sum_{i=0}^{log_{2}(n)-1}2^in\log_{2}(n) - 2^in*i = \sum_{i=0}^{log_{2}(n)-1}2^in\log_{2}(n) - \sum_{i=0}^{log_{2}(n)-1}2^in*i\]

suddividiamolo in:

\[n\log_{2}(n)\sum_{i=0}^{log_{2}(n)-1}2^i = \frac{2^{log_{2}(n)-1+1}-1}{2-1} = n^2log_{2}(n) - nlog_{2}(n) \]

e (qua si c'è un piccolo errore che non avevo notato prima, ma non cambia molto vedi l'indice della sommatoria)

\[-n*\sum_{i=0}^{log_{2}(n)-1}2^i*i = -2n\sum_{i=1}^{log_{2}(n)-1}2^{i-1}*i = -2n\sum_{i=1}^{log_{2}(n)-1}2^{i-1}*i\]

se noti:

\[D(\sum_{i=0}^{log_{2}(n)-1}2^{i}) = \sum_{i=1}^{log_{2}(n)-1}2^{i-1}*i\]

equivalentemente:

\[D(\frac{2^{log_{2}(n)-1+1}-1}{2-1}) = ... = 2^{log_{2}(n)-1}((log_{2}(n)-1)-1) + 1 = \frac{n}2log_{2}(n) - n + 1 \]

perciò per sostituzione:

\[-2n\sum_{i=1}^{log_{2}(n)-1}2^{i-1}*i = -2n(\frac{n}2log_{2}(n) - n + 1) = -n^2log_{2}(n) + 2n^2 - 2n\]


sommando: \(n^2log_{2}(n) - nlog_{2}(n) - n^2log_{2}(n) + 2n^2 - 2n = - nlog_{2}(n) + 2n^2 - 2n \in O(n^2)\).

Ora avendo notato l'indice, mi torna un altro risultato. Provo a chiedere in Analisi, chissà cosa sbaglio. Mi dispice un po' a far le cose di fretta si commetton errori :-)

Ho visto che hai modificato il post:
qua non devi derivare il valore finito che trovi, ma devi sostituire al valore generale della derivata della sommatoria generale, che trovi qui: http://it.wikipedia.org/wiki/Serie_geometrica (questa cosa te la ho già linkata, perchè non guardi ciò che ti si consiglia per comprendere i passaggi??)

Se hai dubbi chiedi pure :-)

Darèios89
Si ci sono quasi, ho capito cosa intendi adesso, il mio problema allora, purtroppo, è non sapere calcolare la derivata :?

"ham_burst":

equivalentemente:

\[D(\frac{2^{log_{2}(n)-1+1}-1}{2-1}) = ... = 2^{log_{2}(n)-1}((log_{2}(n)-1)-1) + 1 = \frac{n}2log_{2}(n) - n + 1 \]


Poi sbagliavo perchè io eliminavo direttamente quei -1+1, al posto di derivare l' intera espressione.
Allora io guardando da wikipedia vedo che tratta la ragione della serie come una potenza, quindi devo considerare la derivata di una potenza che è [tex]x^a=..ax^{a-1}[/tex]. Avendo [tex]2^{\log(n)}[/tex] devo trattarla come derivata di una funzione composta?

A me la derivata risulterebbe [tex]2^{\log_2(n)-1}(\log_2(n)-1+1)[/tex]
Non riesco a trovare quei [tex]...-1)-1)+1[/tex].

hamming_burst
non serve calcolarla ogni volta la derivata, è calcolata UNA volta per il caso generale $(x^(n+1) - 1)/(x-1)$ poi si va di sostituzione, trovi il tutto su wiki (non ho voglia di ricopiarlo).


Poi sbagliavo perchè io eliminavo direttamente quei -1+1, al posto di derivare l' intera espressione.

guarda che c'è una priorità di parentesi, nel caso:

$sum_{i=1}^n 2^(i-1)i = [2^n(n-1)]+1$ (*)

secondo te cosa è uguale $2^(log_{2}(n))$ io direi $n^(log_{2}(2))$
Poi prova a sostituire $n$ di (*) $log_{2}(n)-1$ vedrai comparire -1)-1)+1 magicamente :-)

Una seconda cosa, la "semplificazione" che dissi di non sapere se fosse corretta, confermo che non è corretta, cioè:

$sum x^i(n-i) != sum x^ii$ mi dispiace, bisogna calcolare tutto come abbiamo fatto, non c'è via di scampo :-)

Darèios89
Non so, ormai sono sicuro che sei troppo irritato, ma non ci sono, se io devo sostituire all' intera espressione di derivata da wikipedia:

[tex]\frac{(n+1)x^n(x-1)-x^{n+1}+1}{(x-1)^2}[/tex]

Io ottengo:

[tex][\log_2(n)-1)+1](2^{\log_2(n)-1})-2^{[\log_2(n)-1)+1]}+1[/tex]

E non riesco ad arrivare alla forma corretta...è che sono cocciuto e queste cose forse....non riescono bene su forum quando uno come me...è proprio a terra..
Ora ad esempio guardando il tuo suggerimento su quelle proprietà dei logaritmi non capisco da dove derivata quella derivata [tex]2^n(n-1)+1[/tex] non riesco ad ottenere nemmeno quella....temo che non riuscirò mai a capirla...immagino che giustamente hai perso la voglia di perder tempo con me....

hamming_burst
"Darèios89":
Non so, ormai sono sicuro che sei troppo irritato,

no problem :-)


ma non ci sono, se io devo sostituire all' intera espressione di derivata da wikipedia:

[tex]\frac{(n+1)x^n(x-1)-x^{n+1}+1}{(x-1)^2}[/tex]

Io ottengo:

[tex][\log_2(n)-1)+1](2^{\log_2(n)-1})-2^{[\log_2(n)-1)+1]}+1[/tex]



oooh finalmente, sei arrivato ad una forma corretta, ed hai capito che bisogna derivare la forma generale (forse chissà si può usare anche la forma speicifica con $x=2$ ma, visto che l'indice della sommatoria è $log_{2}(n)-1$, consiglio di non complcarsi la vita)

ora è solo matematica spicciola, te la suddivido così è più chiaro:

$[(\log_2(n)-1)+1] = \log_2(n)$
$(2^{\log_2(n)-1}) = (n^(\log_2(2)))/2$ proprietà delle potenze (precorsi)
$-2^{(\log_2(n)-1)+1} = -n$
$+1 = +1$
$\log_2(n)*n/2 -n +1$ ti ricorda qualcosa? poi basta moltiplicare per $-2n$ visto che è la seconda sommatoria.

questa forma: $2^n(n-1) + 1$ è solo il raggruppamento con indice $n$ invece che $log_{2}(n)-1$, è equivalente a quella sopra, solo che i conti sono molto meno (ovviamente funziona solo con $x=2$).

Darèios89
Eureka.
:smt023
Eh si.....si. Io mi stavo scervellando a fare comparire quel -1)-1)+1 o com' era, certo se avessi usato direttamente le proprietà avrei trovato la soluzione.
Benissimo, ho continuato a vedere il resto e ovviamente quadra tutto, almeno le sottrazioni le so fare :-D.
ham, come sempre, il migliore... :lol:. Scusa negli altri post non avevo capito questo discorso, cioè di dovere tenere presente la derivata principale e sostituire i valori, io sbagliavo perchè essendoci al denominatore [tex]2-1[/tex] lo consideravo costante nella derivata del quoziente e non poteva risultare mai, ora ci siamo, devo rifarlo e fare qualche altro esercizio dove devo riflettere di più sui calcoli.
Grazie, non smetterò mai di ringraziarti, dopodomani ho l' esame.....ancora non penso di farcela, a meno che non spuntino ricorrenze così...particolari (per me) e domande sul programma strambe, comunque.....grazie :-)

hamming_burst
great. di nulla :-)

Mi ci son messo d'impegno pure io a render le cose complicate (forse ci son errori sugli indici della sommatoria, ma che sulla complessità ricadono nella costante $c$), con una proprietà che non avevo verificato ho fatto un po' di casino.

Comunque, in bocca al lupo per l'esame :-)

PS: Se vuoi un altro esercizio c'è da correggere questa, anche se le parti che ho scritto le ricontrollerò per i "posteri", ti consiglio di ricalcolare la sommatoria, visto che comunque rintroverai la stessa proprietà vista fino adesso (derivata). :-)

Darèios89
Comunque, in bocca al lupo per l'esame


Crepi!!!!

Si certo l' altra ricorrenza si deve rifare con lo stesso metodo, oggi provo a rifarla :D

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.