Está en la página 1de 5

Tema 10. Resumen de las ecuaciones.

La regla del lmite: Nos permite comparar dos funciones en cuanto a la


notacin asinttica se refiere. Tendremos que calcular el siguiente lmite:
lim
n
](n)
g(n)
.
Al resolver el limite se nos darn 3 posibles resultados:
1. lim
n
](n)
g(n)
=c R



_
(n) 0(g(n)) (n) 0(g(n)) (n) 0(g(n))
g(n) 0((n)) g(n) 0((n)) g(n) 0((n))
_.
Estas funciones se comportan igual, diferencindose en una constante
multiplicativa.

2. lim
n
](n)
g(n)
=



_
(n) 0(g(n)) (n) 0(g(n)) (n) 0(g(n))
g(n) 0((n)) g(n) 0((n)) g(n) 0((n))
_.
Por muy alta que sea la constante multiplicativa de g(n) nunca superar a
(n).

3. lim
n
](n)
g(n)
=0



_
(n) 0(g(n)) (n) 0(g(n)) (n) 0(g(n))
g(n) 0((n)) g(n) 0((n)) g(n) 0((n))
_.
g(n) crece ms exponencialmente que (n), por lo que sera su cota superior.













Tendremos dos tipos:
- Reduccin por sustraccin:
La ecuacin de la recurrencia es la siguiente:

c n
k
si 0 n <b
I(n) =
o I(n b) +c n
k
si n b

La resolucin de la ecuacin de recurrencia es:

0(n
k
) si o <1
I(n) = 0(n
k+1
) si o =1
0(o
n d b
) si o >1

- Reduccin por divisin:
La ecuacin de la recurrencia es la siguiente:


c n
k
si 1 n <b
I(n) =
o I(n/ b) +c n
k
si n b

La resolucin de la ecuacin de recurrencia es:

0(n
k
) si o <b
k

I(n) = 0[n
k
log(n) si o =b
k

0(n
Iog
b
u
) si o >b
k


siendo:
a: Nmero de llamadas recursivas.
b: Reduccin del problema en cada llamada.
c n
k
: Todas aquellas operaciones que hacen falta adems de las de
recursividad.








El esquema voraz es el siguiente:
funcion voraz (C: Conjunto): conjunto
{ C es el conjunto de candidatos }
S { Construimos la solucin en el conjunto S }
mientras C 0 y solucin (S) hacer
x sclcccionor (C)
C C\ {x};
si factible (S {x}) entonces S S {x}
si solucin (S) entonces devolver S
si no devolver no hay solucin

Los esquemas de vuelta atrs:
fun vuelta-atrs (ensayo)
si valido (ensayo) entonces
devolver ensayo
si no
para cada hijo en compleciones (ensayo) hacer
si condiciones-de-poda (hijo) entonces
vuelta-atrs (hijo)
fsi
fpara
fsi
ffun

fun vueltaatrs (:[1..k])
{ v es un vector k-prometedor }
si v es una solucin entonces escribir v
si no
para cada vector (k+1)-prometedor w
tal que w[1..k] =:[1..k] hacer
vueltaatrs (w[1..k +1])




El de ramificacin y poda (problemas de maximizacin):
fun ramificacin-y-poda (ensayo)
m montculo-vaco
cota-superior inicializar-cota-superior
solucin solucin-vaca
aadir-nodo (ensayo, m)
mientras no vaco (m) hacer
nodo extraer-raz (m)
si valido (nodo) entonces
si coste (nodo) < cota-superior entonces
solucin nodo
cota-superior coste (nodo)
fsi
si no { Nodo no es vlido (solucin) }
si cota-inferior (nodo) cota-superior entonces
devolver solucin
si no { cota-inferior (nodo) < cota-superior }
para cada hijo en compleciones (nodo) hacer
si condiciones-de-poda (hijo) y
cota-inferior (hijo) < cota-superior entonces
aadir-nodo (hijo, m)
fsi
fsi
fpara
fsi
fmientras
ffun

El esquema de divide y vencers:
fun divide-y-vencers (problema)
si suficientemente-simple (problema) entonces
dev solucion-simple (problema)
si no { No es solucin suficientemente simple }
{p
1
..p
k
} decomposicion (problema)
para cada p

hacer
s

divide-y-vencers (p

)
fpara
dev combinacion (s

s
k
)
fsi
ffun

También podría gustarte