You are on page 1of 30

Matemtica Discreta FISI

Daniel A. Quinto Pazce

RECURSIVIDAD

A) RELACIN RECURSIVA:

Es un proceso repetitivo en el que cada trmino se puede expresar en trminos


de los anteriores hasta llegar a sus condiciones iniciales y retornar hacia el punto
de partida; la asignacin es dinmica de memoria a los procesos.
Sn = C1Sn-1 + C2Sn-2 + + Ck Sn-k, Donde: (S0, S1 .. ) son condiciones iniciales
(como base del clculo),

y C1, C2, C3, . Ck son coeficientes recursivos.

Sn Se puede expresar en trminos de los anteriores como podemos observar:


Ejemplo:
1)

Sn = 2Sn-1 + 1, S0 =0
Sn-1 = 2Sn-2 +1
Sn = 2(2Sn-2 + 1) + 1
Sn = 2 2 Sn-2 + 21 + 1
Sn-2 = 2Sn-3+1
Sn = 23Sn-3 + 22 + 2 + 1
Generalizando:
Sn = 2nSn-n + 2n-1 + 2n-2 + + 22 + 2 + 1
Sn = 2n-1 + 2n-2 + + 22 + 2 + 1
Sn =

2n 1 1 1
2 1

Sn =

2n 1

Significa la cantidad de movimiento

de la torre de Hanoi.

2)

Sea Sn = 3 Sn-1

S0 = 1

Halle S5
S5 = 3S4
S5 = 3(3S3)
S5 = 3(3(3S2))
S5 = 3(3(3(3S1)))
Recursividad

Semestre 2016-1

Matemtica Discreta FISI

Daniel A. Quinto Pazce

S5 = 3(3(3(3(3S0))))

S5 = 35S0
S5 =243 (1)
S5 =243

3)

n
2

Sn = S

+ S

n
3

=0

S0 = 0 y S1 = 1

Hallar S16
S1
S2
S0

S4
S1
S8

S1
S2

S16
S2

S0

S16 = 3S0 + 5S1

S1

S16 = 3*0 + 5*1


S16 = 5

S0

S5
S1
4)

Ejemplo Dada la relacin recursiva


Sn = 2,47 Sn-1

con S0 = 2,47

Hallar su forma iterativa.


Solucin:
Sn = 2,47 Sn-1
Sn-1 = 2,47 Sn-2
Sn = (2,47)2 Sn 2
Sn-2 = 2,47 Sn-3
Sn

= (2,47)3 Sn 3

generalizando
Sn = (2,47)n Sn n
= (2,47)n . S0 = (2,47)n . (2,47)
Sn = (2,47)n+1
Recursividad

Semestre 2016-1

Matemtica Discreta FISI

Daniel A. Quinto Pazce

5.Resolver la recurrencia

CN

2C N

N , C.I.

C1 =0 , N

Cuando

CN

se puede expresar N = 2n

N es una potencia de 2

N como N=2n

2C N
2

2C

2C

2n

2n

2n
n

2
C n
2
n

2n

2n
2

2n 1

2C

2n 1
n

2n
n

2
C

2n 1
n 1

2
C

2n 1
n 1

2n

2
C n

2n 2
n 2

2 2
n 2

1 1
2
2
Generalizando.....
C n n
= 2
1 1 ... 1
2n n
C n
2
C1 n
2n
C n
2
0 n
2n
C n
2
n
2n
C

2n

Ejercicio.

Resolver C N

n 2n

CN

N2 , .

C1 =1 , N

Cuando

N es una potencia de 2
B) CASO DE RECURRENCIA (Orden Superior)

Dada la relacin recursiva de orden

Recursividad

superior

Semestre 2016-1

Matemtica Discreta FISI

Daniel A. Quinto Pazce

Si la ecuacin caracterstica, asociada a una relacin de recurrencia


lineal, tiene t races reales distintas, y C0, C1, C2, . Ct-k

coeficientes

recursivos entonces la solucin es de la forma:


Sn = C0Sn-1 + C1Sn-2 + + Ct-k Sn-k, Donde: C0, C1 .. condiciones iniciales.
Si alguna de las races reales ( ti ) aparece repetida, ti veces mi de mp
tal como (ti

k)mi la solucin general es de multiplicidad, la forma:

Sn = C0Sn-1 + C1Sn-2 + ... C i n(t

k1)n + ...+ Cimi nmi-1( ti k2)n

siendo 1

Ejemplo 1: dada la ecuacin recursiva


a(n) = 3a(n-1)+4a(n-2)
si n>1, con condiciones iniciales a(0)=0 y a(1)=1, hallar la
solucin general.
Solucin:
A) Ecuacin Caractersticas
De la Ecuacin dada a(n), pasamos al primer miembro
a(n)-3a(n-1)-4a(n-2)=0
La ecuacin caracterstica es de la forma: t2-3t-4=0
Solucin (t + 1)( t- 4) = 0

t1=-1 y t2 = 4

B) Ecuacin General
a(n)=c1(t1)n + c2(t2)n
a(n)=c1(-1)n + c2(4)n
resolviendo con las condiciones inciales tenemos:
para CI:

a(0)=0

se tiene

c1 + c2= 0
Para CI:

a(1)=1

se tiene

- c1 + 4 c2 = 1
Resolviendo; se tiene c1 = -1/5 y c2 = 1/5, la solucin general es :
a(n)=(-1/5) (-1)n + (1/5) (4)n = 1/5[4n - (-1)n]
Escribiendo en forma de funcin recursiva, la ecuacin a(n):
a(n) = 3a(n-1)+4a(n-2) se tiene:

Recursividad

Semestre 2016-1

Matemtica Discreta FISI

a(n)

0
1
3a(n-1)-4a(n-2)

Daniel A. Quinto Pazce


5

,para n = 0
,Para n = 1
,para n > 1

Ejemplo 2
Dada

an = 6an-1 9an-2

; (CI): a0 = 1, a1 = 6

Hallar la solucin General?


Solucin:
A) Ecuacin Caractersticas
De la Ecuacin dada como an , hacemos
an 6an-1 + 9n-2 = 0
t2 6t + 9 = 0
(t - 3)2 = 0
Existe solucin de multiplicidad par de races:
t1 = 3

t2 = 3

B) Ecuacion General
an = C1(t1)n + C2 n (t2)n
Reemplazando la solucin de multiplicidad par:
an = C13n + C2n3n

(1)

resolver C1, C2 con las condicin iniciales


* Para Ci a0 = 1

30 C1 + 0.30 C2

=1

C1 = 1
* Para Ci a1 = 6

31C1 + 1.31 C2

=6

3 + 3 C2

=6

C2

=1

Luego: reemplazando en (1) la solucin general es:


an = C13n + C2n3n

an = 3n + n3n

Solucin General:

an = 3n (n + 1)

Ejercicio 3: dada la relacin recursiva

an 7an 1 16an 2 12an 3 0 , n 4, a1 3, a2 11, a3 29


Hallar la solucin no recursiva
Solucin:
Recursividad

Semestre 2016-1

Matemtica Discreta FISI

Daniel A. Quinto Pazce

A) Ecuacin Caractersticas

Pasando al primer miembro:


3

-7

+ 16 - 12 = 0

- 2)2 ( - 3) = 0

Cuyas races son:

= 2, de multiplicidad par y

= 3

La solucin general ser


B) Ecuacin General
an = A1 ( 1)n + A2 n ( 2)n + A3( 3)n
an = A1 (2)n + A2 n (2)n + A3(3)n
Por las condiciones iniciales:
Para 3 =a1 , 11 = a2, y 29 = a3

se tiene

3 2A1 2A 2 3A 3
11 4A 1 8A 2 9A 3
29= A
1 124A
2 A27A
29
8A
+24
2 + 327 A3
Cuya solucin es A1 = 1, A2 = 2 y A3 = -1, por lo
que reemplazando, la solucin no recursiva, ser:
an = 2n + n 2n + 1 3n
Ejercicio 4: dada la expresin:

a(n)

0
4
8a n 1

si 0
si 1
15a(n 2) sino

Hallar la solucin general.


A)

Ecuacin Caractersticas
tenemos:
a(n) = 8 a(n-1) 15 a(n-2) con a0 = 0, a1 = 4
a(n) - 8 a(n-1) + 15 a(n-2) = 0
(t2 8t + 15) = 0
(t 5) (t 3) = 0 t1 = 5, t2 = 3

B)

Ecuacin General

Recursividad

Semestre 2016-1

Matemtica Discreta FISI

Daniel A. Quinto Pazce

a(n) = c15n + c23n

para a(0) = 0
a(0) = c150 + c230
0 = c1 + c2
para a(1) = 4
a (1) = c151 + c231
4 = 5c1 + 3c2
c1 = 2 y c2 = - 2
a(n) = 2 . 5n 2. 3n

solucin general.

Ejemplo 5: Sea la ecuacin de recurrencia

an =

n
5an

, n= 0,1,2
8an 2 4an 3 ; n

De condiciones iniciales: a0 = 0, a1 = 1, a2 = 2
Cual es la Solucin General?
Solucin:
A) Ecuacin caracterstica.
Sea an = 5an-1 - 8an-2 + 4an-3
Hacemos:

an - 5an-1 + 8an-2 - 4an-3 =0

Ecuacin caracterstica.
t3 5t2 + 8t 4 = 0
(t1) (t 2)2 = 0
Existe una raz y otra raz de multiplicidad par.
t1 =1, t2 =2, t3 =2
Solucin general
an = C1(t1)n + C2(t2)n + C3 n (t3)n
Reemplazando las races se tiene:
an = C1 + C2.2n + n2nC3

Recursividad

Semestre 2016-1

Matemtica Discreta FISI

Daniel A. Quinto Pazce

Resolviendo con las Condicin iniciales


CI:

a0 = 0
c1 + c2 = 0

CI:

a1 = 1
c1 + 2c2 + 2c3 = 1

CI:

a2 = 2
c1 + 4c2 + 8c3 = 2
C1 = -2 ; C2 = 2 ; C3 = -1/2
Reemplazando:
an = -2(1)n + 2(2)n -

1
n.2n
2

Ejemplo 6: Sea la relacin recursiva


Con las condiciones iniciales:
g(1)=2, g(2)=4 y g(3) = 12.
Halle la solucin general o relacin no recursiva de la ecuacin:
g(n)=2g(n-1) +4g(n-2) - 8g(n-3)
Solucin:
A) Ecuacin Caracterstica
Hacemos: g(n)-2g(n-1)-4g(n-2)+8g(n-3) = 0
Representamos cada uno como sigue:
t3 2t2 4t + 8 = 0, que tiene por races:

(t+2)(t-2)2 = 0 tiene

solucin simple : t = -2, y solucin de multiplicidad par t = 2. t = 2


B) Ecuacin General
g(n)=c1(t1)n + c2(t2)n + c3 n(t3)n
g(n)=c1(-2)n + c2(2)n + c3 n(2)n
Por las condiciones iniciales se resuelven el sistema de ecuaciones
lineales para los parmetros c1, c2 y c3.
g(1)=2,

g(2)=4

Recursividad

g(3) = 12.
Semestre 2016-1

Matemtica Discreta FISI

Daniel A. Quinto Pazce

g(1) = 2 => c1(-2) + (c1 + a2)2 = 2

primera ecuacin

g(2) = 4 => c1(-2)2 + (c1 + c2(2))22 =4

segunda ecuacin

g(3) = 12 => c1(-2)3 + (c1 + c2(3))23 =12

tercera ecuacin

Resolviendo, se obtiene c1 = -1/8, c2 = 5/8, c3 = , y por tanto


la solucin general es:
g(n) =

1
5
( 2)n (
8
8

1
n)2n.
4

Ejemplo7 : Sea la Ecuacin Recursiva


g(n) = 6g(n-1) - 11g(n-2) + 6g(n-3)
con CI: g(1) = 1 ;

g(2) = 6

g(3) = 20

Hallar la solucin no recursiva o solucin General.


Solucin:
Sea g(n) = 6g(n-1) - 11g(n-2) + 6g(n-3)
g(n) - 6g(n-1) + 11g(n-2) - 6g(n-3) = 0
A) Ecuacin caracterstica
t3 6t2 + 11t 6 = 0
(t-1) (t-3) (t-2) = 0
B) Ecuacin general
g(n) = C1(t1)n + C2(t2)n + C3(t3)n
g(n) = C1(1)n + C2(2)n + C3(3)n
Condicin inicial
g(1)=1
1 = C1 + 2C2 + 3C3
g(2) = 6
6 = C1 + 4C2 + 9C3
g(3) =20
20 = C1 + 8C2 + 27 C3
Resolviendo:
Recursividad

Semestre 2016-1

Matemtica Discreta FISI

Daniel A. Quinto Pazce

1
2
, C3 =
, C1 = -2
2
3

C2 =

10

Reemplazando, tenemos la solucin general:


g(n) =

2
1
(3)n + (2)n 2(1)n
3
2

Ejercicos:
Dadas las relaciones recursivas, encontrar la solucin general.

1. an

2. an

3. a(n)

0
, n=0
5
, n=1
3an 1 4an 2 , otro caso

1
, n=0
6
, n=1
6an 1 9an 2 , otro caso

0
4

,si n 0
,si n 1

8a n 1
4. an

15a(n 2) otro caso

n
, n=0,1,2
5an 1 8an 2 4an 3 , otro caso

5, an

1
6
20
6an 1 11an 2 6an

6. an

0
, n=0
-9
, n=1
-1
, n=2
21
, n=3
5an 1 8an 2 4an 3 , otro caso

7.

Sn = S

Recursividad

n
2

+ S

n
5

, n=1
, n=2
, n=3
3 , otro caso

=0

S0 = 0 y S1 = 1 hallar S73
Semestre 2016-1

Matemtica Discreta FISI

Daniel A. Quinto Pazce


11

8.

CN

CN

N , C.I.

C1 =1 , N

Cuando

N es una potencia de 2

N = 2n

FUNCIN RECURSIVA:
Las Funciones recursivas son aquellas que pueden ser calculadas por mquinas o
programas, teniendo cantidades de tiempo y memoria inicialmente muy grandes a su
disposicin. Existen varias definiciones de funciones recursivas. Una de las ms sencillas
es la siguiente
La recursividad es un concepto fundamental en ciencias de la computacin definido como
cuando un procedimiento incluye una llamada a s mismo varias veces hasta llegar a
sus condiciones iniciales ( o base), y retornar a su punto de partida para devolver la
respuesta, se llama funcin recursiva.

NOTA: Cuando una funcin llama recursivamente a si mismo varias veces, en cada
llamada se crean copias independientes de las variables declaradas en el procedimiento
que se llama asignaciones de las variables en memoria.
Los pasos que siguen la funcin recursiva es la siguiente:
a) El procedimiento se llama a si mismo.
b) La base no es recursivo, pero es el punto de partida como el punto de terminacin
de la definicin de la funcin recursiva.
c) Es importante determinar un caso base, es decir un punto en el cual existe una
condicin por la cual no se requiera volver a llamar a la misma funcin.

Recursividad

Semestre 2016-1

Matemtica Discreta FISI

Daniel A. Quinto Pazce

FUNCION DE LLAMADA

LLAMADA

12

RESPUESTA

VENTAJAS:
a) Ayuda a comprender mejor, para escribir algoritmos iterativos.
b) Es ms fcil escribir algoritmos recursivos.
c) Cualquier algoritmo recursivo se puede escribir en su forma iterativa.
DESVENTAJAS:
a) La rapidez de su procedimiento es lento.
b) La capacidad de su almacenamiento es alto.
c) El seguimiento de su ejecucin es ms difcil.

Por qu escribir funciones recursivos?

Son ms cercanos a la descripcin matemtica.

Generalmente son ms fciles de analizar

Se adaptan mejor a las estructuras de datos.

Los algoritmos recursivos ofrecen soluciones estructuradas, modulares y muy


simples.

Recursividad

Semestre 2016-1

Matemtica Discreta FISI

Daniel A. Quinto Pazce

Recursin vs. Iteracin

13

Repeticin
Iteracin:

ciclo explcito o bucle

Recursin: invocaciones repetidas a mtodo


Terminacin
Iteracin: el ciclo termina o la condicin del ciclo falla
Recursin: se reconoce la condicin base, y la funcion termina.
En ambos casos podemos tener ciclos infinitos, considerar que resulta ms apropiado
para cada problema, la eleccin entre eficiencia o una buena ingeniera de software, La
recursin resulta normalmente ms natural por el crecimiento exponencial.

CREACION DE FUNCIONES RECURSIVAS

1) Caso FACTORIAL

N! =

N!

N=0 (base)

N(N-1)!

N>0 (recursin)

Funcin Recursiva
1

N=0

FACT(N) =
N*FACT(N-1)

Validamos mediante la
Caso real

TRAZA

Asumimos que queremos hallar

Ahora por la funcin

N>0

para N=5 5!

5! = 5*4*3*2*1 = 120

FACT(5) = 5*FACT(4) = 5( 24) = 120


FACT(4) = 4 FACT(3) = 4(6) = 24
FACT(3) = 3 FACT(2) = 3(2) = 6
FACT(2) = 2 FACT(1) = 2(1) = 2
FACT(1) = 1 FACT(0) = 1(1) = 1, al retornar
Por la CI. cumple

Recursividad

Semestre 2016-1

Matemtica Discreta FISI

Daniel A. Quinto Pazce


14

ALGORITMO RECURSIVO

Funcin FACT (N)


Inicio
Si N>0
FACT = N*FACT(N-1)
Sino
FACT = 1
Fin
Retornar (FACT);
Fin

Un razonamiento recursivo tiene dos partes: la base y la regla recursiva de


construccin. La base no es recursiva y es el punto tanto de partida como de
terminacin de la definicin.
CASO ESPECIAL 3!
Representacin Grfica en Memoria

Recursividad

Semestre 2016-1

Matemtica Discreta FISI

Daniel A. Quinto Pazce


15

Recursividad

Semestre 2016-1

Matemtica Discreta FISI

2) POTENCIA

Daniel A. Quinto Pazce


16

bx

Relacin Recursiva

bx =

x=1

b bx-1

x>1

Funcin Recursiva

Pot(b,x) =

CASO

base b=2

Traza

x=1

b Pot(b,x-1)

x>1

exponente x=5 25 = 32

b=2 x=5, 25 = 32

Pot (2, 5) = 2*Pot (2, 4) = 2*16 = 32


Pot (2, 4) = 2*Pot (2, 3) = 2*8 = 16
Pot (2, 3) = 2*Pot(2.2) = 2*4 = 8
Pot(2, 2 ) = 2*Pot(2, 1) = 2*2 =4
O de otra manera Pot(2, 5) = 2*Pot(2, 4)
= 2*2*Pot(2, 3)
= 2*2*2*Pot(2, 2)
= 2*2*2*2*Pot(2, 1)
= 2*2*2*2*2 = 25 = 32

Recursividad

Semestre 2016-1

Matemtica Discreta FISI

Daniel A. Quinto Pazce

Algoritmo Recursivo:

17

Funcin Potencia (b, x)


Inicio
Si (x = 1)
Potencia b
Sino
Potencia b*Potencia (b, x-1)
FinSi
Return(potencia)
Fin
3) Nmero de Fibonacci
0

13

21

34

F0 = 0
F1 = 1
F2 = F1 +F0
F0 = F1
F2 =
Generacin

F2 =

F1 = F2

Recursiva

f0

,n = 0

f1
f1 + f0

,n = 1
,n > 1

Relacin Recursiva
Fn = Fn-1 + Fn-0, F0=0, F1=1
Fn = Fn-1 + Fn-0, F0=0, F1=1

Recursividad

Semestre 2016-1

Matemtica Discreta FISI

Daniel A. Quinto Pazce

Funcin Recursiva:

18
0

fibonacci (n)

,n = 0

1
fibonacci (n-1)+ fibonacci (n-2)

,n = 1
,n > 1

Traza Algoritmo recursivo


Traza para n = 6
fibonacci (6) = fibonacci (5) + fibonacci (4) = 8

fibonacci (5) = fibonacci (4) + fibonacci (3)= 5

fibonacci (4) = fibonacci (3) + fibonacci (2) = 3

fibonacci (3) = fibonacci (2) + fibonacci (1) = 2


fibonacci (2) = fibonacci (1) + fibonacci (0) = 1
1

Recursividad

Semestre 2016-1

Matemtica Discreta FISI

Daniel A. Quinto Pazce


19

Algoritmo Recursivo
Funcin fibonacci (n)
Inicio
Si (n>2)
fibonacci fibonacci(n-1) + fibonacci (n-2)
Sino
Si (n = 2)
fibonacci 1
sino
fibonacci 0
FinSi
FinSi
Retornar( fibonacci)
Fin
Traza Clculo de fibonacci(5) :

Traza para n = 6
FIBO(6) = FIBO(5) + FIBO (4) = 5
FIBO(5) = FIBO (4) + FIBO (3)
FIBO (4) = FIBO (3) + FIBO (2)
FIBO (3) = FIBO (2) + FIBO (1)
1

Recursividad

Semestre 2016-1

Matemtica Discreta FISI

Daniel A. Quinto Pazce

Representacin Grafica

Recursividad

20

Semestre 2016-1

Matemtica Discreta FISI

Daniel A. Quinto Pazce

Determine una formula explicita para los nmeros de fibonacci


Fn = Fn-1 + Fn-2, F0=0, F1=1
Fn = Fn-1 + Fn-0, F0=0, F1=1
Se sabe en general que una relacin recursiva es:
Fn = c1Fn-1 + c2Fn-2 + + ckFn-k
Para nuestro caso Fn = Fn-1 + Fn-2 ,
A)

F0 =0, F1 =1

Obtener la solucin caracterstica


Fn - Fn-1 - Fn-0 = 0
Ecuacin caracterstica
t2 - t -1 = 0

t1
t2
B)

5
2

5
2

Obtener la solucin general


Fn = c1 t1
Fn = c1

+ c2 t2

+ c2

, reemplasando

Resolviendo con las condiciones iniciales


Para n =0, F0 = 0 c1 + c2 = 0
C1 = - c2
Para n =1 F1 = 1 c1

5
2

(1)
+ c2

5
2

=1

(2)

Resolviendo (1) y (2)

C1
C2

Recursividad

1
5
1
5

Semestre 2016-1

21

Matemtica Discreta FISI

Daniel A. Quinto Pazce

Reemplazando
Fn =

1
5

5 1
2

22

1 1 5
2
5

frmula no recursiva

5) Algoritmo de Euclides

a
sia b,
mcd (a, b) = mcd(a,b a) sia b,
mcd(a b,b) sia b
Algoritmo Recursivo:
Funcin MCD (int a, int b)
Inicio
Si (a=b) /* condicin de parada */
m a
Sino
Si (a<b)
m MCD(a, b-a) /* llamada recursiva */
Sino
m MCD (a-b, b) /* llamada recursiva */
FinSi
FinSi
Retornar( m )
Fin

n
1, Ejercicio Obtener el algoritmo
k

Recursividad

, k=1

n n-1
k k-1

, k>1

Semestre 2016-1

Matemtica Discreta FISI

Daniel A. Quinto Pazce

De la serie de Fibonacci
Valores: 0, 1, 1, 2, 3, 5, 8, 13, 21, ..
Cada trmino de la serie suma los 2 anteriores.
fib(n) = fib (n - 1) + fib (n - 2)
Caso base: Fib (0)=2; Fib (1)=3
Caso recursivo: Fib (i) = Fib (i -1) + Fib(i -2) formule la relacin no recursiva.

Serie fibonacci Iteracin vs recursin

iteraciones
recursividad

70
60
50
40
30
20
10
0
0

10

20

30

40

50

60

-10

Recursividad

Semestre 2016-1

23

Matemtica Discreta FISI

Daniel A. Quinto Pazce

TORRES DE HANOI

H (n, A, B, C), n=3


Modelo para obtener

24

los movimientos

Tenemos tres postes A, B y C, y un conjunto de cinco discos, todos de distintos


tamaos.
El problema comienza con todos los discos colocados en el poste A de tal forma
que ninguno de ellos debe estar sobre uno ms pequeo a l; es decir, estn
apilados, uno sobre el otro, con el ms grande hacia abajo, encima de l, el
siguiente en tamao menor y as sucesivamente.
El propsito del problema es lograr apilar los cincos discos, en el mismo orden, al
pasarlos hasta poste C.

Cmo se resolvera el caso en que hubiera un disco?

Cmo se resolvera el caso en que hubiera Un discos?

H (n, A, B, C), n=2


n=1
H (1, A, B, C) primer nivel.
AC

Recursividad

Semestre 2016-1

Matemtica Discreta FISI

Daniel A. Quinto Pazce


25

Cmo se resolvera el caso en que hubiera DOS discos?

H (n, A, B, C), n=2

1, y 2 nivel

H (2, A, B, C)
H (1, A, C, B)

H (1, B, A, C)

AB

AC

AB

AC

BC

BC
3

Cmo se resolvera el caso en que hubiera TRES discos?

H (n, A, B, C), n=3

1, 2, y 3 nivel, Obtener todos los movimientos

H(3, A, B, C)
H(2, A, C, B)
H(1, A, B, C)

AC

AC
1
Recursividad

H(1, C, A, B) H(1, B, C, A)

AB

AB
2

H(2, B, A, C)

CB

AC BA

BC

CB AC BA
3

H(1, A, B, C)

AC

BC AC
6

7
Semestre 2016-1

Matemtica Discreta FISI

Daniel A. Quinto Pazce


26

DEDUCCIONES DEL ALGORITMO R. DE LA TORRES DE HANOI


N de Discos

Relacin

N Movimientos

C0

C1

1 = 2*0 + 1

C2

3 = 2*1 + 1

C3

7 = 2*3 + 1

Cn

Cn = 2 Cn-1 + 1

Relacin Recursiva

Relacin Iterativa

Cn = 2 Cn-1 + 1

C0 =0

Cn = 2n 1 , n >=1

Movimientos de la Torre de Hanoi, para n=3 DISCOS

Secuencia para el caso anterior:

AC
Recursividad

AB

CB AC BA

BC AC
Semestre 2016-1

Matemtica Discreta FISI

Daniel A. Quinto Pazce


27

Recursividad

Semestre 2016-1

Matemtica Discreta FISI

Daniel A. Quinto Pazce


28

MOVIMIENTOS DE LA TORRE DE HANOI

H (n, A, B, C), para n=3

1. Ejercicio:
De la torre de Hanoi, inicialmente los n discos estn en el poste
A. Me propongo a mover los n-1 discos del poste A al poste B.
El nico disco restante del poste A muevo al poste C y los n-1
discos del poste B muevo al poste C.
Diga Ud cuantos movimientos se realizo?
AB

Recursividad

AC

BC

Semestre 2016-1

Matemtica Discreta FISI

Daniel A. Quinto Pazce

Solucion:

29
n discos

0 discos

0 discos

n-1
discos

1 disco

0 discos

Recursividad

0 discos

n-1 discos

n-1 discos

1 disco

Semestre 2016-1

Matemtica Discreta FISI

Daniel A. Quinto Pazce

Movimientos :

30
n

1 : Cn = 2 1 = Total de movimientos.
2 : Para n= 2 3 movimientos.
3 : Cuales mov. AB

AC

B C

TAREA
ELABORE EL ALGORITMO RECURSIVO:
DE ACKERMAN
ACK(0, n) = n+1;

n>= 0

ACK(m, 0) = ACK(m-1, 1);

m>0

ACK(m, n) = ACK(m-1, ACK(m, n-1)); m>0, n>0

DE BACKTRAKING
LAS OCHO REINAS
SUDOKU
El backtracking o vuelta atrs es una tcnica algortmica de resolucin general de
problemas mediante una bsqueda sistemtica de soluciones.
Se descompone la tarea a realizar en tareas parciales y se prueba sistemticamente cada
una de estas, que a su vez se descompondrn en subtareas
Cuando al elegir una tarea se comprueba que no lleva a una solucin, se debe volver
atrs, y probar con otra.

FIN DE CLASE

Recursividad

Semestre 2016-1

You might also like