Algoritmos y estructuras de datos II Inducción estructural

Documentos relacionados
Tecnología de la Programación

MEL* Ejercicios - Inducción 1

Recurrencias y cómo resolverlas

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

Resumen ANÁLISIS LÓGICO INDUCCIÓN Y RECURSIÓN. Conjuntos inductivos. Definiciones circulares

Álgebra. Curso

Análisis de Algoritmos

Análisis de Algoritmos

Recursión avanzada y TADs con comportamiento automático

Resumen LÓGICA COMPUTACIONAL INDUCCIÓN Y RECURSIÓN. Conjuntos inductivos. Definiciones circulares

Sistema Axiomático para el Cálculo Proposicional

Introducción TEORÍA DE LA COMPUTACIÓN INTRODUCCIÓN. Lógica

Introducción a la indecidibilidad

Tema 4: Recursión e inducción en ACL2

Matemática computable

LógicaS Modales. Ricardo Oscar Rodríguez Departamento de Computación, Fac. Ciencias Exactas y Naturales, Universidad de Buenos Aires, Argentina.

Algoritmos y Estructuras de Datos II

Multiplicación de matrices simétricas

Algoritmos en teoría de números

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

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

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

UNIVERSIDAD SIMÓN BOLÍVAR Dept. Computación y Tecnología de la Información Estructuras Discretas II CI de Diciembre de 2013.

Grupos libres. Presentaciones.

Una pregunta pendiente

El problema de satisfacción

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

Funciones continuas. Definición y propiedades

COMPLEMENTO DEL TEÓRICO

Recursividad Definición

LENGUAJES Y COMPILADORES

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

Teoremas de Tonelli y Fubini

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

Programación dinámica

Espacios compactos. 7.1 Espacios compactos

Aprendizaje Computacional y Extracción de Información

Los números naturales. Definición y propiedades

Análisis y Diseño de Algoritmos

Teorema de Compacidad

Ejercicios Resueltos del Práctico 3 - Recursión

Introducción TEORÍA DE LA COMPUTACIÓN INTRODUCCIÓN. Lógica

Algoritmos Secuenciales y Recursivos

Algoritmo de Kruskal

Aritmética Entera MATEMÁTICA DISCRETA I. F. Informática. UPM. MATEMÁTICA DISCRETA I () Aritmética Entera F. Informática.

Fundamentos de Ciencias de la Computación Trabajo Práctico N 2 Lenguajes Libres del Contexto y Sensibles al Contexto Segundo Cuatrimestre de 2002

Análisis y Diseño de Algoritmos

Memo Garro. A n F. n=1

Transformaciones lineales

3 Propiedades de los conjuntos regulares 3.1 Lema de Bombeo para conjuntos regulares

Metodología de la Programación II. Recursividad

Números primos y compuestos

Complejidad computacional. Algoritmos y Estructuras de Datos I. Complejidad computacional. Notación O grande

1. Sucesiones y redes.

Transformaciones Lineales y Espacio Dual

Tema 3.2: Eficiencia de algoritmos recursivos. Diseño y Análisis de Algoritmos

Un tercer ejemplo: verificación de primalidad

11 Secuencias, Series y Probabilidad

Tema 2: Bases de Gröbner

Relaciones IIC1253. IIC1253 Relaciones 1 / 32

Definiciones generales. Alfabeto de la lógica proposicional. Conectivos. Conectivos

Estructuras Discretas. Conjuntos. Conjuntos & Funciones. Especificación de Conjuntos.

Algebra Lineal y Geometría.

Matemáticas Discretas

Cardinalidad IIC1253. IIC1253 Cardinalidad 1 / 23

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

Cardinalidad IIC1253. IIC1253 Cardinalidad 1 / 23

Cardinalidad. Pablo Verdes. 9 de marzo de 2016 LCC. Pablo Verdes (LCC) Cardinalidad 9 de marzo de / 18

ÁRBOLES CRISTIAN ALFREDO MUÑOZ ÁLVAREZ JUAN DAVID LONDOÑO CASTRO JUAN PABLO CHACÓN PEÑA EDUARDO GONZALES

La lógica de segundo orden: Sintaxis

Cardinalidad. Teorema 0.3 Todo conjunto infinito contiene un subconjunto infinito numerable.

Semana 14 [1/19] Polinomios. 8 de junio de Polinomios

El Algoritmo de Euclides

AMPLIACIÓN DE MATEMÁTICAS

Números naturales y recursividad

1) Diga si los siguientes problemas son resolubles o no. Debe demostrar formalmente su respuesta.

Propiedades de números enteros (lista de problemas para examen)

Algebra Lineal. Gustavo Rodríguez Gómez. Verano 2011 INAOE. Gustavo Rodríguez Gómez (INAOE) Algebra Lineal Verano / 21

sup si A no es acotado.

Curso Básico de Computación

Funciones recursivas

Espacios de una Matriz

Tema 2. Códigos sin prefijos

Ejercicios de Teoría de conjuntos

El sistema de Hilbert: Lógica de Primer Orden

Clase Práctica 1 - Inducción estructural, conectivos adecuados y consecuencia - Viernes 23 de marzo de 2012

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

Divisibilidad y congruencia

Teorema de Carathéodory

Propiedades de lenguajes independientes del contexto

Esquema. Condicionales. Ejemplo de condicional. Demostración. P { if (B) uno else dos } Q. P { while (B) cuerpo } Q

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

Teoría de la Dimensión

Análisis de algoritmos. Recursividad

ALGEBRA LINEAL - Práctica N 1 - Segundo cuatrimestre de 2017 Espacios Vectoriales

8 Indecibilidad. 8.1 Problemas

Transcripción:

Algoritmos y estructuras de datos II Inducción estructural Carlos Gustavo Lopez Pombo (Charlie) Departamento de Computación, Facultad de ciencias exactas y naturales, Universidad de Buenos Aires

Qué es la inducción? Desde un punto de vista histórico es un método científico que se basa en derivar reglas generales a partir observaciones particulares.

Qué es la inducción? Desde un punto de vista matemático es un método de prueba que se basa en derivar reglas generales a partir probar que: Si una propiedad vale para un elemento, entonces esto implica que vale para todo otro que lo contenga estrictamente. (aprox)

Qué es la inducción? Repasemos inducción sobre los naturales à la Algebra I (8n : nat) n i=0i = n (n + 1) 2

Qué es la inducción? Cómo sería con nuestras axiomatizaciones? (8n : nat)(prod(suc(suc(0)), sumatoria(0, n)) = prod(n, suc(n)))

Qué es la inducción? suma: nat x nat -> nat (su_1) suma(n, 0) = n (su_2) suma(n, suc(m)) = suc(suma(n,m)) prod: nat x nat -> nat (prod_1) prod(n, 0) = 0 (prod_2) prod(n, suc(m)) = suma(prod(n,m),n) sumatoria: nat n x nat m -> nat (n <= m) (suma_1) sumatoria(n, 0) = 0 (suma_2) sumatoria(n, suc(m)) = if (n = m) then n else suma(sumatoria(n, m), suc(m)) fi

Qué es la inducción? Vamos con una más fácil... (8n, m, p : nat)(suma(n, suma(m, p)) = suma(suma(n, m),p))

Y por qué funciona? Si una propiedad vale para un elemento, entonces esto implica que vale para todo otro que lo contenga estrictamente. (aprox) Para que esto funcione debe tratarse de un conjunto bien ordenado

Y por qué funciona? Se dice que un conjunto S esta bien ordenado si existe una relación binaria R sobre S tal que: (a) ordena totalmente a los elementos, y (b) es una relación bien fundada

Y por qué funciona? Se dice que una relación binaria sobre un conjunto S es bien fundada si para todo subconjunto S de S existe un elemento mínimo o tal que para todo otro elemento t de S, el par <t, o> no está en la relación.

Y por qué funciona? Tomemos entonces cualquier tipo definido usando el lenguaje de TADs con el que trabajamos definido sobre los generadores g1,... gn, > un orden arbitrario entre ellos de forma que los generadores no recursivos sean menores que los recursivos, la relación > entre términos se define como: g_ik(...(g_i1 (args_i1),..., args_ik) > g _i j( (g _i 1 (args_i 1),..., args_i j) sii k >= j y existe i 1<=t<=i j tal que para todo i 1<=l<t, g_il = g _i l y g_i(l+1) > g _i (l+1) En pocas palabras, dado un orden entre los generadores, extendemos ese orden a secuencias finitas de generadores, es decir, si pensamos a los generadores como letras, construimos el orden lexicográfico de términos.

Y por qué funciona? Lema: para todo par de términos t, t distintos, o bien t > t o bien t > t.

Y por qué funciona? Lema: existe un elemento mínimo. Demo: trivial pues se toma como dicho elemento al generador no recursivo que sea menor bajo la relación >.

Y por qué funciona? Teorema: los conjuntos de términos construidos con el lenguaje de TADs con el que trabajamos son conjuntos bien ordenados.

Y por qué funciona? Corolario: los conjuntos bien ordenados no poseen cadenas (respecto de >) descendentes infinitas.

Y por qué funciona? Copado: (a) las recursiones terminan siempre que tengan bien definidos los casos base y que los casos recursivos que toman un término t se resuelvan en función de un término t tal que t>t, y (b) tiene sentido pensar que si demuestro que una propiedad vale para los casos base, y que si vale para un término, entonces vale para los términos que lo contienen.

Esquema de inducción Sea P una fórmula con una única variable libre x de tipo T, luego, si queremos ver que P vale para todo elemento de T, debemos probar: (8x : T)P(x)

) Inducción Esquema de inducción Sea T un tipo con generadores: c1: args -> T r1: T t x args -> T... cn: args -> T rm: T t x args -> T y P una propiedad con una variable libre t de tipo T n^ (8args)P(c i (args)) ^ i=1 (8t : T)P(t)! m^ (8t : T)(P(t) ) (8args)P(r i (t, args))) i=1

Esquema de inducción En el caso de los números naturales obtenemos: P(0) ^ (8n : nat)(p(n) ) P(suc(n)) ) (8n : nat)p(t)

Esquema de inducción En el caso de las listas de números naturales obtenemos: P([ ]) ^ (8l : lista[nat])(p(l) ) (8n : nat)p(n l) ) (8l : lista[nat])p(l)

Repaso Presentamos el concepto de inducción generalizando el método conocido desde Algebra I Básicamente sólo eso :-)

Es todo por hoy!