• No se han encontrado resultados

FUNCIONES RECURSIVAS. exp(x,y) = x y. x y = x x... x,

N/A
N/A
Protected

Academic year: 2021

Share "FUNCIONES RECURSIVAS. exp(x,y) = x y. x y = x x... x,"

Copied!
35
0
0

Texto completo

(1)

FUNCIONES RECURSIVAS exp(x,y) = xy. Dónde: x0 = 1, x1 = x, x2 = x•x, • • • xy = x•x•...•x, y veces xy+1 = x•x• ... •x•x = x•xy y+1 veces

Primera y última ecuaciones: 1) x0 = 1,

2) xy+1 = x•xy,

son suficientes para evaluar toda la función. (eq. 2) 53=52+1 =5•52 (x=5 y y=2),

(eq. 2) 52=51+1 =5•51 (x=5 y y=1), (eq. 2) 51=50+1 =5•50 (x=5 y y=0), (eq. 1) 50=1

(2)

Recusión = Descomponer una función en sus componentes básicos.

Recursión = Reducir una función a sus funciones constitutivas.

Recursión = Eliminar una función a favor de sus funciones constitutivas.

Ejemplo:

53 = 5•5•5•1 = 1 + 1 + . . . + 1 125 “1”s

Reduce Reduce

Exp Producto Suma

Recursión: Re-Escribir una expresión Expresiones más simples.

(3)

FUNCIÓN SUCESOR

Recordemos que la “SUMA” no es una operación fundamental: Puede descomponerse en “Quitar y Poner”.

Definamos como básico:

número cero ‘0’

función sucesor ‘S’ (1 argumento) s: 0 0 1 1 2 2 3 • • • • • • n n+1 tomando en cuenta ‘+’ y ‘s’ : x + 0 = x x + s(y) = s(x+y) Recordar:

(4)

RELACION ENTRE FUNCIONES “+” y “S” + x+y y• • • s • x• x+s(y) •s • • • s(y) + x + s(y) = s(x + y)

La ley de la conservación de las CANICAS:

x canicas y canicas s(y)canicas x+s(y)

@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ x = 3 y = 4 s(y) = 5 x + s(y) = 8 x+s(y) s(x + y) @ @ @ @ @ @ @ @ = @ @ @ @ @ @ @ @

(5)

Ejemplo Evaluar 2 + 3 : s(s(0))) + s(s(s(0))) (eq. 1) x + 0 = x (eq. 2) x + s(y) = s(x + y) x = s(s(0)) = ss0 y = s(s(s(0))) = sss0 s(y) = s(s(s(s(0)))) = ssss0 (eq. 2) ss0 + sss0 = s(ss0 + ss0) más simple que (eq.2) ss0 + ss0 = s (ss0 + so) (eq. 2) ss0 + s0 = s (ss0 + 0) (eq. 1) ss0 + 0 = ss0 Reescribimos Top-Down: ss0 + sss0 = s(ss0 + ss0) Recordar ss0 + ss0 = s(ss0 + s0) ⇒ s(s(ss0 + s0)) ⇒ s(s(s(ss0 + 0))) ⇒ s(s(s(ss0 ))) ⇒ sssss0 ss0 + sss0 = sssss0

(6)

Hemos establecido claramente que toda expresión puede ser reducida eliminando los símbolos de las

funciones compuestas en favor de las funciones simples, tan solo conociendo la 1a. y la última ecuación de la reducción.

Ejemplo: En ss0 + sss0 sssss0

eliminando reescribiendo 1a. x + 0 = 0

última x + s(y) = s(x + y)

Generalizando: ¿Podemos evaluar todas las funciones de esta forma?

CLASE DE FUNCIONES RECURSIVAS PRIMITIVAS

1) Funciones Básicas (Unidades Atómicas) 2) Operaciones de Construcción:

• Composición

• Recursión Primitiva

3) Nada pertenece a la clase si no es una función primitiva o construída por medio de composición o recursión.

(7)

Conjunto Básico de Funciones Recursivas Primitivas 1) Función Cero “z” : z(x) = 0

2) Función Sucesor “s” : s(0) = 1, s(1) = 2 ... 3) Funciones Identidad Varias: n

id1 1(x) = x id1 2(x,y) = x, id 2 2(x,y) = y id1 3 (x,y,z) = x, id2 3 (x,y,z) = y, id3 3 (x,y,z) = z Proyecciones: y •(x,y) id1 2

(x,y) = proyx (x,y) = x

id2

2(x,y) = proy

y (x,y) = y •

x

Para un espacio de orden n: idi

n

( x1, ..., xi, ... xn ) = xi

Las funciones identidad varias pueden ser ordenadas id, id1 2, id 2 2, id 1 3, id 2 3, id 3 3 ...

(8)

Construcción de Funciones Composición: (Cn) g f • • x• •g(x) •f(g(x)) • h f (g(x)) = h(x)

Sea F es el conjunto de todas las funciones, definamos la función aridad de una función “a”

a: F N

dónde si f ∈ F , a(f) = r dónde r es el número de elementos (componentes) de los argumentos de f.

(9)

Composición: Considere: A: N x N, B: N x N y C:N Considere Funciones: h:N x N N g1, g2, g3:N x N N y f: N x N x N N P1 f g1 0 1 g2 P2 2 . g3 . . P3 n h

h(x,y) = f(g1(x,y), g2(x,y), g3(x,y))

y

a(h) = a(gi) a(f) = número de g´s

Generalizando:

h(x1, ..., xn) = f(g1(x1, ... xn), ..., gn (x1, ..., xn))

Abreviando:

(10)

Ejemplos de Composición 1) f = s g = id3 3 h(x1, x2, x3) = s(id3 3(x 1, x2, x3)) = x3 + 1 h = Cn

[

s, id3 3

]

2) Calcula h(x) = x + 2 f = s g = s h(x) = s(s(x)) = Cn

[

s, s

]

(x) h = Cn

[

s, s

]

nombre argumento de función 3) Calcula h(x) = x + 3 f = s g = Cn

[

s, s

]

h(x) = s(Cn

[

s, s

]

(x))

h = Cn

[

s, Cn

[

s, s

]]

(11)

Construcción de funciones Recursión Primitiva: (Pr) Ecuación Inicial: h(x, o) = f(x) h x Ÿ Ÿ o Ÿ Ÿ f

Última Ecuación: h(x, s(y)) = g (x, y, h(x, y)) h • x Ÿ •h(x, y) h y Ÿ • s(y)Ÿ • g • Ciclo de Recursión h = Pr

[

f, g

]

(12)

Otra forma de ver la recursividad: h h(x,s(y))=g(x,y,h(x,y)) g • (x,s(y)) h(x,y) h (x,y) h • h(x,s(0))=g(x,y,h(x,0)) g (x,s(0)) h h(x,0)=f(x) (x,0) x • f

(13)

Ejemplos de recursión primitiva Suma: Sum(x,0) = x Sum(x,s(y)) = s(sum(x,y)) (Pr ) h (x,0) = f(x) h(x,s(y)) = g(x,y,h(x,y)

n = sum: El problema es construir “sum” para lo cual hay que encontrar las funciones “f” y “g” 1) f = id1 1 ê f(x) = x; “condición inicial” 2) sum(x,s(y)) = s(id3 3 ( -, -, sum(x,y))) g = Cn

[

s, id3 3

]

sum = Pr

[

id1 1

,

Cn[s, id3 3

]]

(14)

“SUM”

o• 2 sum •x sum(x, o) = id(x) = x

1 h x• • id f = id x + s(y) = s(x + y) sum • x Ÿ •x + y sum y Ÿ • s(y)=y+1Ÿ • x + s(y) 1 2 C n s , i d

[

33

]

número de argumento 3 g = Cn[s,id3 3

]

= s(id3 3 ( _, _, sum(x,y)))

(15)

prod 1) prod (x, 0) = 0 prod 0• 2 • •0 1 x• z • f = z función cero z(0) =0, z(1) =0, ... 2) prod (x,s(y)) = x + prod(x,y)

prod • x Ÿ • x •• y prod y Ÿ • s(y) = y+1Ÿ • x••(y + 1) 1 sum(x,x••y) 2 • 3 g = Cn[sum, id1 3, id 3 3

]

prod = Pr [z, Cn [sum, id1 3, id 3 3

]]

(16)

Exp: Xy 1) x0 = 1 2) xy+1 = x•xy 1) Exp (x,0) = 1 0• Exp •1 • x• • f(x) =1 f = Cn[s,z

]

⇒ f(x) = s(z(x)) 2) exp • x Ÿ • xy exp y Ÿ •

s(y) = y+1Ÿ • xy+1

prod(x,xy) • g = Cn[prod, id1 3, id 3 3

]

Exp = Pr[Cn[s, z

]

, Cn[prod, id1 3, id 3 3

]]

(17)

Super Exponenciación x x y veces x Sup (x,y) = x Sup (x,0) = 1 Sup (x, y + 1) = xsup (x, y) 1) Sup (x, 0) = 1 0• sup •1 f(x) = 1 • x• • f f = Cn[s,z

]

f(x) = s(z(x))

(18)

2) Sup(x, y +1) = xsup(x,y) sup • x Ÿ • sup(x,y) sup y Ÿ • s(y) Ÿ • sup(x,s(y) • Exp(x,sup(x,y)) g = Cn[Exp, id1 3, id 3 3

]

Sup = Pr[Cn[s, z

]

, Cn[Exp, id1 3, id 3 3

]]

(19)

Fact

1) 0! = 1 fact(0) = 1

2) s(y)! = s(y)•y! fact(s(y)) = s(y)•fact(y) fact

0• •1 •

f = s(0) el único argumento de f es cero fact • y Ÿ fact • y! • s(y) Ÿ •s(y)! • prod(s(id1 2), id 2 2) g = Cn[prod, Cn[s, id1 2

]

, id 2 2

]

fact = Pr [s(0), Cn[prod, Cn[s, id1 2

]

, id 2 2

]]

Formato (eliminando argumento “x”) h = fact h(0) = f(0) dónde f = s

(20)

Formato General de Pr h(x1, ..., xn,0) = f(x1, ..., xn) h(x1, ..., xn,s(y)) = g(x1, ... xn, y, h(x1, ... xn, y)) 1) h • x1• • . . xn• • 0 • f a(h) = n+1 n 0 a(f) = n 2) h • x1• • h(x1,...,xn,y) . . xn y• • h(x1,...,xn,s(y)) • h s(y)

g

(21)

Funciones Recursivas son Abacus A R Si x ∈ R entonces x ∈ A x ⊆ A ∀x R(x) A(x)

La Historia Hasta Ahora

u h T

A

(22)

Método para comprobar que R ⊆ A

a) Establecer programas Abacus para las funciones recursivas básicas 1) z(x) = 0 2) s(x) = x + 1 3) id1 1 , id 1 2, id 2 2, ...

b) Establecer programa Abacus que implementa: 1) Composición

2) Recursión Método:

Dada una función recursiva primitiva sustituir cada término constituyente por su programa abacus respectivo.

(23)

PROGRAMAS ABACUS DE FUNCIONES BÁSICAS

Formato de argumentos y valor de la función R1 R2 . . . Rn Rn+1

n argumentos valor de la función 1) Los registros R1 ... Rn no se modifican.

2) Al inicio [Rm

]

= 0 para todo m > n.

3) Al final [Rn+1

]

= valor función

1) Función z z(1) = 0, z(2) = 0 ... z(n) = 0

El programa que no hace nada para evaluar z(x) = 0.

Al inicio y al final

[1

]

= x

(24)

PROGRAMAS ABACUS DE FUNCIONES BÁSICAS 2) s(x) = s+1 Inicialmente [1

]

= x [2

]

= 0 al final: [2

]

= s(x) [1

]

+ [2

]

2 copia el contenido de R1 a R2 2+ incrementa en 1 el cont. de R2 3) idm n Inicialmente [1

]

= x1, . . . , [n

]

= xn y [n + 1

]

= 0 Finalmente [n + 1

]

= xm, 1 ≤ m ≤ n [m

]

+[n + 1

]

n + 1 copia el cont. de Rm a Rn + 1

(25)

COMPOSICION DE FUNCIONES 1) Composición: h = Cn[f, g1, . . . gm

]

n = a(h) = a(gi) 1 ≤ i ≤ m

dados m + 1 programas

f(ŠŠ1‹‹, ..., ŠŠm‹‹) m + 1 g1(ŠŠ1‹‹, ..., ŠŠn‹‹) n + 1 . . . gm (ŠŠ1‹‹, ..., ŠŠn‹‹) n + 1

Queremos construir un solo programa:

f(g1 (ŠŠ1‹‹, ..., ŠŠn‹‹), ..., gm (ŠŠ1‹‹, ..., ŠŠn‹‹)) n + 1

1) Considere que el programa buscado tiene n argumentos.

2) Considere que un valor intermedio será necesario para almacenar el valor de cada g

3) Considere que los argumentos se encuentran inicial y finalmente en el formato estándard

4) La composición requiere de n + m registros no usados por ninguno de los m + 1 programas

(26)

Composición n = 3, m = 4 (1) g1 ([1]], [2]], [3]]) P1 g2 ([1]], [2]], [3]]) P2 [1]] [2]] [3]] [1]] [2]] [3]] es posible paralelizar •• •• g1 g2 P1 P2 2) Vacia n registros posible [1]] q1 -m e paralelizar [2]] q2 [3]] q3 +n s[n]] = 0 [m]] + [n]] n [m]] = 0 3) Calcula f([P1]], [P2]]) [P1]] + [1]] 1 [1]] [2]] Es posible [P2]] + [2]] 2 paralelizar f [3

]

4) Finaliza: (1) [3]] 4 (Es posible (2) [q1]] 1, [q2]] 2, [q3]] 3 paralelizar)

(27)

Programa abacus para recursión primitiva h • x• 0• • •• f h x h(x, y) h y h(x,s(y)) s(y) • • g h = Pr[f, g

]

Dados: f([x

]

)

2 g([1

]

, [2

]

, [3

]

) 4 Obtener: h ([1

]

, [2

]

) 3 Inicialmente: [1

]

= x, [2

]

= y [3

]

= [4

]

= ... = 0

(28)

¿Cómo Funciona la Recursión? h • x• 0• • •• f h x h(x, y) h y h(x,s(y)) s(y) • • g

(29)

Computo de h: x, y p=y, y=0 f(x) = h(x,0) si p = 0 h(x, 0) = f(x) no g(x, 0, h(x, 0)) = h(x, 1) g(x,1,h(x,1)) = h(x, 2) y = y + 1 etc p = p - 1 p veces si no h(x, y ) p = 0

(30)

Inicialmente [1

]

= x, [2

]

= y, [3

]

= 0 Programa 6.2 vaciar [2

]

en P p = y, y = 0 Programa 6.2 f([1

]

) 2 f(x) = h(x,0) Registro 2 Programa 6.2 vacia [2

]

en 3 h(x, 0) R3 e p- termina g([1

]

,[2

]

,[3

]

) 4 g(x,y,h(x,y)) = h(x,s(y)) R4

2+ y = y + 1 (para 2o. Argumento)

3- vacia R3

e

vacia R4 en R3 h(x,s(y))anterior h(x,y)actual

(31)

MINIMIZACION Abacus ≥≥ PR funciones recursivas miniminización Funciones -básicas recursivas - Composición primitivas - Recursivas Primitivas

Hay mas programas Abacus que funciones recursivas primitivas Minimización h • x1• •y . . . • xn• f y• •0

la y más pequeña para la cual f(x1,...,xn,y) = 0

h(x1, ..., xn) =

indefinido si no existe y tal que f(x1,...,xn,y) = 0

(32)

Considere Mn[sum

]

Sum Pr[id1

1

, Cn[s, id3 3

]]

Número de argumentos de sum = 2

h = Mn[f

]

si f = sum

f(x,y) = sum(x,y) = 0 si y sólo si x = y = 0 h = Mn[sum

]

(0) = 0 dado sum(0, 0) = 0

Mn[sum

]

0• •0 1• 2• 3• . . . etc.

(33)

Mn[Prod

]

prod(x, y) = x • y prod(x, y) = 0 si x = 0 & y = 0 o x ≠ 0 & y = 0 o x = 0 & y ≠ 0 Mn[prod

]

(x) = 0 (x•0 = 0) h = Mn[prod

]

0• •0 1• 2• 3• . . .

(34)

En general

Mn[f

]

(x1,...,xn) = y

Si f(x1,...,xn,y) = 0

& f(x1,...,xn, t) es definida y positiva

para t < y Ejemplo f(0) = N f(1) = 0 y = 1 pero no existe t f(t) 0• •0 t • 1• Mn[f

]

no está definida

(35)

Abacus para Mn

y si f(x1,...,xn, y) = 0 cuando

Mn[f

]

(x1, ..., xn) exista f(x1,...,xn,t) & ∀∀t, t<y

Si no existe y Mn[f

]

(x1,...,xn) =

φ

* Minimización de funciones totales y pariciales Abacus de Mn, para n = 1, (a(f) =2)

f([1

]

, [2

]

) = ? Mn[f

]

R3 Inicialmente: [1

]

= x [2

]

= 0 [3

]

= 0 Secuencia: f(x,0) 3 f([1

]

,[2

]

) 3 f(x,1) 3 ≠ 0 f(x,2) 3 3- 3- 2+ f(x,y) = 0 [2

]

= y e e Mn[f

]

(x) = [2

]

Referencias

Documento similar

Modelo OAIS (Open Archival Information System) Preservación de objetos digitales.. Estructura de interfaz de

El primer bucle controla desde el origen del eje x (x=0) hasta la anchura máxima de la pantalla (x=100), incrementando cada vez el valor de x en 10 pixeles, a su vez se ejecute

Pasamos ahora a examiner el contentdo de la present e memoria.. El objetivo principal de esta seccién es re coger algunos de estos resultados para dlsponcr de

4 o. Finalmente, existe una amplia jurisprudencia del Tribunal Supremo contraria a esta opinión doctrinal 34. CUBILLAS RECIO, &#34;El ajuste al derecho español de determiandas

B ajo un ambiente cálido y festi- vo se desarrolló durante la se- gunda semana de agosto una nueva edición de SAGSE Miami 2022 que reunió a los principales actores del sector

As an application of the main tool for the above result, we also prove that associativeness can be removed in (1) whenever A is either a nondegenerate non-commutative Jordan

Así varios autores como Agterberg y Divi (1978), Harris, Ortiz-Vértiz y Chávez (1981), han empleado el modelo lognormal de distribución, como medio para estimar el potencial minero

Se trata de la misma situación que ocurre para las funciones, donde un mínimo relativo en el punto x requiere la anulación de la diferencial dfx en x como condición suficiente,