3. Definiciones Recursivas. Recursión - 2

Documentos relacionados
Definiciones recursivas Lógica 2017

INDUCCIÓN. Inducción - 2

LOGICA Y ALGORITMOS. Profesores: Raúl Kantor Ana Casali. Año LyA-2003 / Inducción 1

Lógica - Conjuntos inductivos

Capítulo 2: Inducción y recursión Clase 3: Definiciones recursivas e Inducción estructural

Funciones recursivas

RECURSIVIDAD. Ángeles Martínez Sánchez Curso 2016/2017 DMATIC ETSISI

Algoritmos y programas. Algoritmos y Estructuras de Datos I

Divisibilidad y congruencia

Euclides Extendido y Teorema Chino del Resto

Ejercicio. Usando la formulación del principio de inducción mostrada en la transparencia anterior, demuestre que: 2 2 n 1esdivisiblepor3. =2 n.

Listas y Recursión. Taller de Álgebra I. Primer Cuatrimestre de 2015

Números naturales y recursividad

Semana04[1/17] Funciones. 21 de marzo de Funciones

Complejidad de algoritmos recursivos

Tema 5: Recursión. de la siguiente forma: Recursión (Sustantivo) Ver recursión. n Qué es la recursión? Cierto diccionario malévolo la define

ÁLGEBRA MODERNA. Índice 1. El grupo de permutaciones y el grupo alternante 1

(n, a)(m, b) = (nm, ma + nb) (a, b) + (c, d) = (a + c, b + d) y (a, b)(c, d) = (ac, bd)

Lenguaje de programación S (Davis/Sigal/Weyuker) Lógica y Computabilidad. Ejemplo 1. Ejemplo 2

x i yi (2M 1) i (3) i

Tipos de datos algebraicos

Una función f con dominio D y co-dominio o rango R es una función uno-a-uno si satisface al menos una de la siguientes condiciones equivalentes.

Guía 2: Listas, recursión e inducción

Programación Dinámica

Análisis de algoritmos. Recursividad

Tipos algebraicos y abstractos. Algoritmos y Estructuras de Datos I. Tipos algebraicos

Bloque 1. Conceptos y técnicas básicas en programación

Sucesiones. Una sucesión de números reales es una tira, o una lista, de nḿeros reales que generalmente denotamos como

Práctico 2: Especificación, derivación y verificación de programas funcionales

Departamento de Ingeniería Matemática - Universidad de Chile

Semana03[1/17] Funciones. 16 de marzo de Funciones

Funciones primtivas recursivas y clases PRC (parte I)

Principio de inducción y Sumatorias

Inducción en definiciones y demostraciones AUTÓMATAS Y LENGUAJES FORMALES PRELIMINARES MATEMÁTICOS. Números naturales. Inducción matemática

Tipos paramétricos y recursivos

Es claro que es una relación de equivalencia. Para ver que tener la misma cardinalidad y la cardinalidad están bien definidas queremos ver que

Sección 2.3. # 27. Evalúa el límite, si es que existe. lim

Teorema de incompletitud de Gödel

Terminaremos el capítulo con una breve referencia a la teoría de cardinales.

Tema 7: Recursividad

Clase práctica 8: Funciones Primitivas Recursivas

Solución Primer Parcial Matemática

Manos a la obra: Recursión, división y listas

Introducción a la Matemática Discreta

Cálculo Diferencial: Enero 2016

COMPLEMENTO DEL TEÓRICO

Conjuntos. Un conjunto es una colección de objetos. Si a es un objeto y R es un conjunto entonces por. a R. se entiende que a pertenece a R.

Álgebra Lineal. Tema 4. Espacios vectoriales de dimensión infinita

Sumatorias y productorias (desde 0) Lógica y Computabilidad. Sumatorias y productorias (desde 1)

Guardas y Tipos de datos

Continuidad y monotonía

Práctico Preparación del Examen

Lógica Proposicional. Significado de una Fórmula Proposicional

Lógica Proposicional

Clase 2: Algoritmo de Euclídes

1. El Teorema de Rolle Generalizado.

Continuidad y monotonía

Autómata de Pila (AP, PDA) Tema 18

Sea la definición de la función f dada en Discusión 4: f: N -> N -> Bool f(n) = f1 donde f1: N -> Bool f1(m) = (odd mod1) (n,m).

El lenguaje P. Lógica y Computabilidad ( ) símbolos p. Verano convenciones. Lógica Proposicional - clase 1

Parte 5: Integración en espacios producto.

Problemas tipo examen

Teoría axiomática de conjuntos. E. Casanovas

Recursividad Definición

Números naturales, principio de inducción

4.3 Recursión en Scheme

Conjuntos, relaciones y funciones Susana Puddu

Álgebra básica Soluciones del examen de segunda convocatoria Curso 2016/ de septiembre de 2017

INAOE. Gramáticas Libres de Contexto. Definición formal de CFGs. Derivaciones usando. Derivaciones. izquierda y. derecha.

Tipos de datos en Haskell

4.2. El número de combinaciones de m objetos entre un conjunto de n, denotado por n, para n 1 y 0 m n, se puede definir recursivamente por: m

Extensión de medidas

No es otra cosa, que la representación de los resultados de una función sobre el plano carteciano.

Sesión del día 11 de Marzo del 2011 y tutoría del día 12 de Marzo del 2011

Capítulo III. Inducción y Recursión

La recursividad forma parte del repertorio para resolver problemas en Computación y es de los métodos más poderosos y usados.

SUCESIONES. sucesiones 1

10. Series de potencias

5.3. Distribuciones Derivadas de la Normal

Definición 1 Un semigrupo es un conjunto E provisto de una operación binaria asociativa sobre E, se denota por (E, ).

Capítulo 2: Inducción y recursión Clase 1: El principio de Inducción

Guía 2: Funciones, listas, recursión e inducción

la matriz de cambio de base de B 1 en B 2. = M 1 B 2,B 1 [1 + x + x 2 ] B1 = M B2.

Matriz tranpuesta Matriz inversa

Clases de complejidad computacional: P y NP

Inducción Matemática Conjuntos Funciones. Matemática Discreta. Agustín G. Bonifacio UNSL. Repaso de Inducción, Conjuntos y Funciones

Conjuntos finitos y conjuntos numerables

Divisibilidad y congruencia

Para entender la recursividad primero tenemos que entender la recursividad

Matemática Discreta. Números, inducción y recursión. Números, inducción y recursión: principio de inducción

1. Cadenas EJERCICIO 1

NOT. Ejemplo: Circuito C1

Determinantes. Capítulo Definición y ejemplos básicos Funciones multilineales alternadas

Clase práctica 3: Consecuencia Lógica

5 Autómatas de pila 5.1 Descripción informal. 5.2 Definiciones

Autómatas de Pila. Descripciones instantáneas o IDs. El Lenguaje de PDA. Equivalencia entre PDAs y CFGs INAOE (INAOE) 1 / 50

Propiedades de Lenguajes Regulares

DE LOS NÚMEROS NATURALES Y ENTEROS

Números naturales y recursividad

Funciones: Aspectos básicos

Transcripción:

3. Definiciones Recursivas Recursión - 1 Recursión Dado un conjunto inductivo, sabemos exactamente cómo se construyen sus elementos. Esta información sirve para: Probar propiedades de sus elementos (inducción) Definir funciones sobre sus elementos (recursión) Recursión - 2 1

Qué es una función? Una función es una relación que: Asocia efectivamente un único elemento del codominio a cada elemento del dominio. Una función es un mecanismo de cómputo tal que: Cada vez que se le da un valor del dominio como entrada devuelve efectivamente el mismo valor del codominio. Efectivamente significa: Para cualquier elemento del dominio hay una imagen. El cómputo termina para cualquier elemento del dominio. Ningún elemento del dominio tienen más de una imagen. Recursión - 3 Recursión Ejemplo: definir una función f que calcula la cantidad de símbolos de una palabra de {a,b}* Para asegurarse de cubrir todo el dominio se puede explotar conocimiento de cómo se generan los objetos de {a,b}*: i. f(ε)=0 ii. f(aw)= 1+ f(w) iii.f(bw) = 1+ f(w) Recursión - 4 2

Es fácil definir No Funciones. Dado Z definido inductivamente como: 0 Z n + 1 Z n 1 Z f: Z N f(0)=0 f(n+1)=f(n)+1 f(n-1)=f(n)+1 Tiene más de un valor Cuánto vale f(1)? f(0)=0 f(n+1)=f(n+2) f(n-1)=f(n-2) Conclusión: Conviene seguir un esquema de definición que garantice que se define una función. Calcular f(1) necesita f(2),f(3), Nunca se termina de calcular. Recursión - 5 Esquema de Recursión Primitiva para N N definido inductivamente por: i. 0 N ii. Si n N entonces S(n) N Esquema de Recursión Primitiva para N (informal) Sea B un conjunto cualquiera. Entonces un conjunto de ecuaciones como sigue basta para definir una única función F: N B i. F(0) =... ii. F(S(n)) =..F(n)..n.. Recursión - 6 3

Aplicación del Esquema de Recursión Esquema de recursión primitiva para N: Método que se aplica para definir funciones sobre objetos de N Usa el conocimiento de cómo se generan los objetos de N Justificación: Recordar que al dar una definición inductiva decimos que la única forma de construir los objetos del conjunto es mediante las cláusulas dadas Aplicaciones: Definir + ; x ; Σ 1 k n k ; k n, para k,n N ; fact : N N Recursión - 7 Esquema de Recursión Primitiva para un Conjunto Inductivo Sea A un conjunto definido inductivamente Para definir una función f :A B, alcanza con definir a f mediante ecuaciones que determinen: El valor de f para los objetos de A obtenidos de aplicar cláusulas base El valor de f para los objetos de A obtenidos de aplicar cláusulas inductivas, utilizando el valor de f en el (los) objeto(s) anterior(es) y también el (los) objeto(s) anterior(es) (llamadas recursivas) Recursión - 8 4

Esquema de Recursión Primitiva para Σ* Sea B un conjunto arbitrario. Entonces un conjunto de ecuaciones como sigue basta para definir una única función F: Σ* B i. F(ε) =... ii. F(xw) =..F(w)..w..x.. Aplicaciones: Definir longitud: Σ* N ; inversa: Σ* Σ*; palindromo: Σ* Bool ; espejo: Σ* Σ*... Recursión - 9 Esquema de Recursión Primitiva para L1 Sea B un conjunto arbitrario. Entonces un conjunto de ecuaciones como sigue basta para definir una única función F: L1 B i. F(a) =... ii. F(bwb) =..F(w)..w.. Recursión - 10 5

Esquema de Recursión Primitiva para N -Formalización- H) Sea B un conjunto y sean f 0 B f s : N x B B T) Entonces existe una única función F: N B tal que: i. F(0) = f 0 ii. F(S(n)) = f s (n,f(n)) Recursión - 11 Esquema de Recursión Primitiva -Formalización- Ejemplo: fact(0) = 1 f 0 = 1 ( B) fact(s(n)) = S(n) x fact(n) f s (n,r) = S(n) x r (N x B B) Recursión - 12 6

Esquema de Recursión Primitiva -Formalización- Esquema de Recursión Primitiva para Σ* Sea B un conjunto y sean f ε B f 1 : Σ x Σ* x B B Entonces existe una única función F: Σ* B tal que: i. F(ε) = f ε ii. F(xw) = f 1 (x,w,f(w)) Ejemplo: espejo(ε) = ε f ε = 1 ( Σ*) espejo(xw) = x espejo(w) x f 1 (x,w,r) = xrx ( Σ x Σ*x Σ* Σ*) Recursión - 13 Otros Esquemas de Recursión Dado A definido inductivamente. Para definir f :A Β se debe: definir f para los objetos base de A definir f en los objetos obtenidos de aplicar cláusulas inductivas usando el valor de f en el objeto inmediatamente anterior (recursión primitiva) Se puede cambiar el segundo punto y poner: definir f en los objetos obtenidos de aplicar cláusulas inductivas usando el valor de f objetos anteriores Recursión - 14 7

Ejemplo de Recursión no Primitiva en N fib : N N fib (0) = 1 fib (1) = 1 fib (n+2) = fib(n) + fib(n+1) Para que estas ecuaciones definan una función hay que probar que: son exahustivas no hay superposición de casos la definición termina Recursión - 15 Ejemplo de Recursión no Primitiva en N fib : N N fib (0) = 1 fib (1) = 1 fib (n+2) = fib(n) + fib(n+1) Exhaustividad: ver que todo natural es 0, 1 o de la forma n+2 Superposición: ver que 0 1 n+2 Terminación: 1) ver que para todo n N: n < n+2 y n + 1 < n+2 2) en N toda cadena decreciente según la relación < tiene mínimo (el orden < de N es bien fundado). Recursión - 16 8

Ejemplo de Recursión no Primitiva en N div : NxN + Ν div(n, m) = 0 div(n, m) = div(n-m, m)+1 si n < m si m n Exhaustividad: ver que para todos n, m Ν se cumple que n < m o m n. Superposición: ver que para todos n, m Ν no puede pasar que n < m y m n. Terminación: ver que para todos n, m Ν, si 0 < m n entonces n-m < n y ver que < es bien fundado en N Recursión - 17 Definición inductiva de NxN i. (0,0) NxN ii. Si (n,0) NxN entonces (n+1,0) NxN iii. Si (n, m) NxN entonces (n,m+1) NxN Principio de inducción primitiva para NxN Sea P una propiedad que cumple: P(0,0) Si P(n,0) entonces P(n+1,0) Si P(n, m) entonces P(n,m+1) Entonces, P(n,m) para todo (n, m) NxN Recursión - 18 9

Esquema de Recursión Primitiva para NxN Sea B un conjunto y H 0, H 1 y H 2 tales que: H 0 B H 1 : N x B B H 2, : NxN x B B Entonces existe una única función f : NxN B tal que: f (0,0) = H 0 f (n+1,0) = H 1 (n, f (n,0)) f (n,m+1) = H 2 (n, m, f (n,m)) Ejemplo: prod : NxN Ν (el producto de dos números Naturales) Recursión - 19 Ejemplos de Recursión no Primitiva en NxN mcd : N + xn + Ν + mcd(n, m) = n mcd(n, m) = mcd (n,m-n) si n = m si n < m mcd(n, m) = mcd(n-m, m) si m < n Exhaustividad:??? Superposición:??? Terminación:?? EJERCICIO!!! Recursión - 20 10

Más ejemplos de Recursión en NxN suma : NxN Ν suma(n, 0) = n suma (n, m+1) = suma (n, m) +1 Corrección? resta : NxN N resta (0, n) = 0 resta (n+1, 0) = n +1 resta (n+1, m+1) =??? Corrección? Recursión - 21 Definiciones Inductivas Libres Definimos Z inductivamente con las siguientes cláusulas: i. 0 Z ii. si x Z entonces x+1 Z iii. si x Z entonces x -1 Z Cómo justificar que 3 Z? 0 ii 1 ii 2 ii 3 0 iii -1 iii -2 ii -1 ii 0 ii 1 ii 2 ii 3 0 ii 1 ii 2 ii 3 ii 4 ii 5 iii 4 iii 3 Recursión - 22 11

Definiciones Inductivas Libres (cont.) Definición: [definición inductiva libre] Una definición inductiva de un conjunto es libre cuando cada elemento del conjunto admite una sola secuencia de formación. Las definiciones que no son libres traen problemas para definir funciones usando esquemas de recursión Ejemplo: f : Z Z definida por f (0) = 1 f (n+1) = 2 + f (n) f (n -1) = 3 + f (n) Cuánto vale f (3)? Recursión - 23 Definiciones no Libres: moraleja Las definiciones inductivas no libres son problemáticas para definir funciones usando el esquema de recursión primitiva. Igual se pueden usar, pero hay que verificar que se está definiendo una función (o sea, un único resultado para cada elemento del conjunto) No hay problemas con el principio de inducción (salvo que probamos más de una vez la misma cosa) Recursión - 24 12

Definiciones Recursivas: moraleja Sea A un conjunto definido inductivamente Si la definición de A es libre entonces se puede aplicar el esquema de recursión primitiva sin problemas Si se quieren usar otros esquemas entonces hay que probar exhaustividad,, no superposición y terminación Si la definición de A no es libre, no alcanza el esquema de recursión, dado que hay superposición. Hay que probar unicidad de la definición (los casos repetidos dan el mismo resultado) Recursión - 25 13