Date post: | 23-Jan-2016 |
Category: |
Documents |
Upload: | aracely-bolanos |
View: | 250 times |
Download: | 0 times |
Recurrencias
Resolución de recurrencias,
por cambio de variable
Resolución de recurrencias mediante el cambio de variable
T(n) término de una recurrencia original
Ti término de un nueva recurrencia obtenida de la original mediante cambio de variable
Resolución de recurrencias mediante el cambio de variable
Ejemplo 1:
Cambio de variable: n = 2i i = lg2 n
2..,12
3
11
)(
depotenciansinn
t
nsi
nt
Resolución de recurrencias mediante el cambio de variable
n = 2i i = lg2 n para transformarla en recurrencias ya conocidas, actuamos de la forma:Llamanos ti = t(2i) La variable es i.
ti = t(2i) = 3t(2i-1) + 2i ti – 3ti-1 = 2i
Rec. no homogénea de e.c. (x-3)(x-2)ti=c1·3
i + c22i como i = lg2 n y clg n=nlg c
ti = c1nlg 3 + c2n
lg 2 t(n) O(nlg 3)
Para determinar orden exacto, calcular c1, c2.
Resolución de recurrencias mediante el cambio de variable
Cálculo de las constantes:Sustituyendo ti = c1n
lg 3 + c2nlg 2 en la ec. de rec.
Calculamos t(n) en dos puntos, obteniendo dos ec.t(n)=c1·n
log3+c2·n
Obteniendo T(n) en dos puntos Para n=1 t(1)=1 condición inicialPara n=2 t(2)=3·t(1)+2=3·1+2=5
Resolución de recurrencias mediante el cambio de variable
Sustituyendo en la solución general c1+c2=1 n=1
t(2)=c1·2log3+c2·2=3·c1+2·c2=5 n=2
Resolviendo el sistema de ecuacionesc1=3; c2= -2;
t(n) = 3·nlog3 –2·n, con n potencia de 2t(n) (nlg 3) siendo n potencia de 2
Resolución de recurrencias mediante el cambio de variable
Ejemplo 2: No se puede aplicar el caso general, que veremos más adelante.
T(n) = 2·T(n/2)+n·lg n, con n potencia de 2
Cambio de variable n = 2i i = lg2 n
Resolución de recurrencias mediante el cambio de variable
ti = T(2i) = 2·T(2i-1) + 2i ·i = 2·ti-1 + 2i ·i
Rec. no homogénea donde b=2, p(i)=i con grd 1ti – 2ti-1 = 2i·i (x-2)(x-2)2 = (x-2)3
Solución general ti = c1·2i + c2·i2
i + c3·i2·2i
Deshaciendo el cambio [ n = 2i i = lg n ]T(n) = c1n + c2nlg n + c3nlg2n
T(n) O(n·lg2n) siendo n potencia de 2Para conocer el orden exacto, calcular las constantes
Resolución de recurrencias mediante el cambio de variable
Para obtener las constantes sustituimos en la recurrencia original :
n·lgn = T(n)-2·T(n/2)n·lgn=(c1·n+c2·lgn·n+c3·n·lg2n)-2(c1·(n/2)+c2·lg(n/2)·(n/2)+c3·(n/2)·lg2(n/2))
n·lgn=c1·n+c2·lgn·n+c3·n·lg2·n-
c1·n-c2·n·lg(n/2)-c3·n·lg2(n/2)
Resolución de recurrencias mediante el cambio de variable
n·lgn=c2·n·lgn+c3·n·lg2n-c2·n(lgn-lg2)-c3·n(lgn-lg2)2
n·lgn=c2·n·lgn+c3·n·lg2n-c2·n·lgn+c2·n-c3·n(lg2n+lg22-2·lgn·lg2)
n·lgn=c2·n-c3·n+2·c3·n·lgn
n·lgn=(c2–c3)·n+2·c3·n·lg n
Igualando coeficientes : c2 – c3 = 0; 2·c3 = 1
Resolviendo c2=c3= ½T(n) (n·lg 2n)
Resolución de recurrencias mediante el cambio de variable Caso General
n0 1; l 1; b 2; k 0 enteros; c>0 real.
T:NR+ no decreciente
T(n) = l· T(n/b) + c·nk
n >n0 1 , n/n0 es potencia exacta de b, es decir,
n {bn0, b2n0, b
3n0, ...}
Resolución de recurrencias mediante el cambio de variable Caso General
Cambio de variable adecuado: n = bi·n0
ti = T(bi·n0) = l· T(bi-1·n0) + c·(bi·n0)k = l·ti-1 + c·n0
kbik
ti – l·ti-1 = c·n0k·(bk)i (x-l)(x-bk)d+1 [pol. caraterístico]
[r1=l , r2=bk]
Las soluciones son de la forma: ti = c1li + c2(b
k)i
Aunque en general es falso porque no se consideran las raíces múltiples
Resolución de recurrencias mediante el cambio de variable Caso General
Como n=bin0 i=logb(n/n0)
Si deshacemos el cambio de i
T(n) = c1·llog
b(n/n0) + c2·(b
k)logb
(n /n0)
T(n) = c1·llog
bn – log
bn0 + c2·( b
k)logbn - log
bn0
T(n)=c1·(llog
bn/llog
bn0)+c2·((b
k)logb
n/(bk)logb
n0)
Teniendo en cuenta lgbbk=k y llgbn=nlg
bl
Resolución de recurrencias mediante el cambio de variable Caso General
T(n) = c1·(nlog
bl / n0
logb
l ) + c2·(nlog
bbk / n0
logb
bk )
T(n) = ( c1 /n0log
bl ) · nlog
bl + ( c2 /n0
k )· nk
Llamando: c3= c1 /n0log
bl , c4= c2 /n0
k
T(n) = c3·nlog
bl + c4·n
k Para conocer las constantes, sustituimos esta en la recurrencia original.
Resolución de recurrencias mediante el cambio de variable Caso General
T(n) = c3·nlog
bl + c4·n
k c·nk = T(n) – l·T(n/b)
c·nk = c3·nlog
bl + c4·n
k – l(c3(n/b)logbl + c4(n/b)k)
c·nk = c·nk = c3·nlog
bl + c4·n
k – l·c3 ( nlog
bl / blog
bl )
– l·c4 (nk / bk )
c·nk = c3·nlog
bl + c4·n
k – l·c3 ( nlog
bl / llog
bb) – l·c4 (n
k / bk )
c·nk = c3·nlog
bl + c4·n
k – l·c3 ( nlog
bl / l) – l·c4 (n
k / bk )
Resolución de recurrencias mediante el cambio de variable Caso General
c·nk = c4·nk – l·c4 (n
k / bk )
c·nk = c4·nk (1- ( l/bk ))
Por tanto:
Para expresar T(n) en notación asintótica, necesitamos saber el cuál es el término dominante en T(n)=c3·n
logb
l+c4·nk, tenemos 3 casos:
kb
lcc
14
Resolución de recurrencias mediante el cambio de variable Caso General
Si l<bk en
c4>0 y k>logbl c4nk dominante
T(n) (nk | n/n0 potencia exacta de b)
Notación asintótica condicional: condicionada a que n/n0 sea potencia exacta de b. Como T(n) es no creciente T(n) (nk). Matemáticamente, si tenemos una función condicionada a potencias, logaritmos o polinomios y es creciente, se puede eliminar la condición.
kbl
cc
14
Resolución de recurrencias mediante el cambio de variable Caso General
Si l>bk en
c4<0 y k< logbl c3 >0 c3nlogbl dominante
T(n) (nlogbl | n/n0 sea potencia de b)
Como T(n) es no decreciente T(n) (nlogbl )
kbl
cc
14
Resolución de recurrencias mediante el cambio de variable Caso General
Si l=bk en
Problema en c4de división por 0 El polinomio característico tiene una raíz de grado de multiplicidad 2
La solución general: ti = c5(bk)i + c6i(b
k)i
Como i=logb(n/n0)
T(n) = c7nk + c8n
klogb(n/n0) c8=c distinto de cero
Término dominante: cnklogbn T(n) (nklogbn)
kbl
cc
14
Resolución de recurrencias mediante el cambio de variable Caso General
Resumiendo T(n) = l·T(n/b) +c·nk, se comporta
Observación: En la notación asintótica no es necesario especificar la base del algoritmo por la propiedad:
logan = logab · logbn O(logan) = O(logbn)
kl
kk
kk
blsin
blsinn
blsin
nTb )(
)lg(
)(
)(lg
Recurrencias
Resolución de recurrencias, mediante transformación de intervalo.
Resolución de recurrencias mediante transformación de intervalo.
El cambio de variable transforma el dominio de la recurrencia.
Podemos transformar el intervalo para obtener una recurrencia que se pueda resolver.
Se pueden utilizar ambas transformaciones.
Cuando la recurrencia no es lineal o los coeficientes no son constantes, se debe manipular para que lo sea.
Resolución de recurrencias mediante transformación de intervalo.
Ejemplo
T(n) definida cuando n es potencia de 2
“ nT2 “ , n es coeficiente no constante y T2 es una recurrencia no lineal.
12
13
1
)(
2 nsin
nT
nsi
nT
Resolución de recurrencias mediante transformación de intervalo.
Cambio de variable: ti=T(2i), n=2i i=lg n
ti = T(2i) = 2iT2(2i-1) = 2iti-12
donde, no lineal y 2i no cte Transformar el intervalo o rango:
Creamos otra recurrencia ui=lg ti ti=2ui
ui=lg ti = log (2iti-12 ) = log (2i) + log (ti-1
2 )
ui= i + 2lg ti-1; ui= i +2ui-1
Por tanto: ui – 2ui-1 = i Cuyo pol. caract. es (x-2)(x-1)2
Resolución de recurrencias mediante transformación de intervalo.
ui = c12i + c21
i + c3i1i
obtengo las ctes (...) sustituyendo la sol. general en la recurrencia para ui
i=ui – 2·ui-1
i=c1·2i + c2·1
i + c3·i·1i –
2(c1·2i-1+c2·1
i-1+c3(i-1)·1i-1)
i= c2+ c3·i – 2 c2 –2·c3(i-1)
i= - c2+ c3·(i – 2(i-1)) = -c2 + c3( -i +2)
i= 2·c3 – c2 – c3·i
Resolución de recurrencias mediante transformación de intervalo.
Igualando coeficientes en i= 2·c3 – c2 – c3·i
1= - c3 y 0 = 2c3 – c2
Resolviendo c3 = -1 y c2 = 2c3 = - 2
De c1 no tenemos información
Por tanto: ui = c12i –i –2
Deshacemos los dos cambios para determinar la complejidad de la recurrencia
Resolución de recurrencias mediante transformación de intervalo.
Deshacer el 2º cambio:
Deshacer el 1er cambio: (i=log2n)
icui
iit 22122
2lg2lg2lg2lg
12lg
1lg
1 222)( nncnncncn
n
tnT
nnT
nc
n
c
n
ncnnc
4
2
22
2
2
22)(
111
1
2lg2lg)2(lg
Resolución de recurrencias mediante transformación de intervalo.
Como tenemos una condición inicial podemos conocer la constante c1
T(1) =1/3; T(1)= 2c1
·1 / (4·1) =1/3
Despejando c1=lg2 (4/3); c1 = lg 4 – lg3 = 2 - lg3
Despreciando el 4 (cte)
n
n
n
n
n
n
nnnnnT
34
2
34
2
24
2
4
2)(
2
2lg
2
3lg
2)·3lg2(
n
nT
n
34
)(