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

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

Lógica y Computabilidad

Tipos de datos en S. Lógica y Computabilidad. Codificación de variables y etiquetas de S. Codificación de programas en S

1. Programas y funciones computables

Tema 5: Procedimientos para obtener funciones computables

Tema 5: Programas Universales

a partir de otras funciones. Entonces C es la menor clase de funciones que contiene a las funciones básicas y es cerrada por los p. d.

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

UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA SUR AREA DE CONOCIMIENTO DE CIENCIAS DEL MAR DEPARTAMENTO DE SISTEMAS COMPUTACIONALES

Ejercicios resueltos. Computación. Tema 3

PROYECTO DOCENTE ASIGNATURA: "Computabilidad y Complejidad"

Clase práctica 8: Funciones Primitivas Recursivas

Divisibilidad y congruencia

Resolución en lógica de primer orden

Departamento de Tecnologías de la Información. Tema 6. Funciones recursivas. Ciencias de la Computación e Inteligencia Artificial

Isabelle como un lenguaje funcional

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

Programación imperativa. Algoritmos y Estructuras de Datos I. Ciclos

Algoritmos de Búsqueda

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

Carrera: SCM Participantes. Representantes de la academia de sistemas y computación de los Institutos Tecnológicos.

3. Definiciones Recursivas. Recursión - 2

Aritmética en Haskell

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

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

Definiciones recursivas Lógica 2017

Especificación de programas. Algoritmos y Estructuras de Datos I. Correctitud de ciclos

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

COMPLEMENTO DEL TEÓRICO

Programación Entera. Nelson Devia C. IN Modelamiento y Optimización Departamento de Ingeniería Industrial Universidad de Chile

Introducción a la complejidad computacional

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

Coordinación de Matemática I (MAT021) 1 er Semestre de 2013 Semana 2: Lunes 18 Viernes 22 de Marzo. Contenidos

Análisis de algoritmos

Sintaxis y Propiedades. Estructuras

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

Introducción a las Ciencias de la Computación

Capítulo V: CONJUNTOS RECURSIVAMENTE ENUMERABLES

Arreglos. Algoritmos y Estructuras de Datos I. Arreglos en C++ Arreglos y listas

UNIVERSIDAD DE BUENOS AIRES FACULTAD DE FILOSOFIA Y LETRAS

Teorema de incompletitud de Gödel

INDUCCIÓN. Inducción - 2

Funciones primtivas recursivas y clases PRC (parte I)

Lógica - Conjuntos inductivos

Teorema de Compacidad

MODELOS AVANZADOS DE COMPUTACIÓN

Capítulo IV. Divisibilidad y Primalidad. Algoritmo de la División

Funciones recursivas

Análisis y Diseño de Algoritmos

Límite superior y límite inferior de una sucesión

Algoritmos y programas. Algoritmos y Estructuras de Datos I

Ordenamiento de un arreglo. Algoritmos y Estructuras de Datos I. Demostración. Cota inferior de complejidad tiempo para sorting

CÁLCULO INTEGRAL. HOJA 1. v(q) = Π n i=1(b i a i ). Definimos también el volumen de un rectángulo cerrado como el volumen de su interior.

Trabajo Práctico 1 - Programación Funcional Fecha de entrega: Jueves 20 de abril, hasta las 21 hs.

Paradigma lógico Lógica proposicional Resolución. Programación Lógica. Eduardo Bonelli. Departamento de Computación FCEyN UBA. 10 de octubre, 2006

Carlos A. Rivera-Morales. Precálculo 2

Máquinas de estado finito y expresiones regulares

Ciencias de la Computación I

Estructuras Algebraicas

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

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

Cálculo Diferencial: Enero 2016

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

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERÍA PROGRAMA DE ESTUDIO

n! = 1 2 n 0! = 1 (n+1)! = (n + 1) n!

Matemáticas Discretas

NP-Completeness: Universidad Autónoma de Nuevo León Facultad de Ingeniería Mecánica y Eléctrica División de Posgrado en Ingeniería de Sistemas

Funcionamiento de las computadoras

LOGICA Y ALGORITMOS. Módulos

Teoría de Lenguajes. Clase Teórica 7 Autómatas de Pila y Lenguajes Independientes del Contexto Primer cuartimestre 2014

Notación Asintótica 2

La máquina de Turing

Nombre de la asignatura : Lenguajes y Autómatas. Carrera : Ingeniería en Sistemas Computacionales. Clave de la asignatura : SCB- 9324

Tipos de datos algebraicos

Divisibilidad de un número real entre otro

TEMA VI DISEÑO DEL PROCESADOR

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

Algoritmos y solución de problemas. Fundamentos de Programación Otoño 2008 Mtro. Luis Eduardo Pérez Bernal

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

Introducción a la Matemática Discreta

La transformada rápida de Fourier (FFT) y otros algoritmos para la implementación de la DFT

Números naturales y recursividad

Introducción a los códigos compresores

Semana02[1/23] Conjuntos. 9 de marzo de Conjuntos

Esquema de Dividir y Vencer

Índice La División Entera El Máximo Común Divisor Algoritmo de Euclides Ecuaciones Diofánticas Factorización. Aritmética I.

Formulando con modelos lineales enteros

Tema 4.- Recursión e iteración

UNIDAD II. INTEGRAL DEFINIDA Y LOS MÉTODOS DE INTEGRACIÓN. Tema: LA INTEGRAL DEFINIDA

Complejidad computacional (Análisis de Algoritmos)

Análisis de Algoritmos

ALGEBRA 1- GRUPO CIENCIAS- TURNO TARDE- Enteros

Principio de inducción y Sumatorias

Verificación de programas. Algoritmos y Estructuras de Datos I. Semánticas formales: Primer cuatrimestre de 2016

Divide & Conquer. Herman Schinca. Clase de Junio de 2011

Análisis de algoritmos. Recursividad

Maquina de Turing. 5. Fundamentos de algoritmos. Turing TURING TURING 10/08/2010. MI Elizabeth Fonseca Chávez

Producto de matrices triangulares superiores

Números naturales y recursividad

Hacia las Gramáticas Propias II

Transcripción:

Lógica y Computabilidad Verano 2011 Departamento de Computación - FCEyN - UBA Computabilidad - clase 3 Sumatorias y productorias, cuantificadores acotados, minimización acotada, codificación de pares y secuencias Sumatorias y productorias (desde 0) Sea C una clase PRC. Si f : N n+1 N está en C entonces también están las funciones g(y, x 1,..., x n ) = h(y, x 1,..., x n ) = y t=0 y t=0 g(0, x 1,..., x n ) = f (0, x 1,..., x n ) g(t + 1, x 1,..., x n ) = g(t, x 1,..., x n ) + f (t + 1, x 1,..., x n ) 1 Idem para h con en lugar de +. Observar que no importa la variable en la que se hace la recursión: podemos definir g (x, t) como la clase pasada y luego g(t, x) = g (u 2 2 (t, x), u2 1 (t, x)) = g (x, t). 2 Sumatorias y productorias (desde 1) Sea C una clase PRC. Si f : N n+1 N está en C entonces también están las funciones g(y, x 1,..., x n ) = y t=1 Cuantificadores acotados Sea p : N n+1 {0, 1} un predicado. ( t) y p(t, x 1,..., x n ) es verdadero sii p(0, x 1,..., x n ) es verdadero y. p(y, x 1,..., x n ) es verdadero h(y, x 1,..., x n ) = y t=1 ( t) y p(t, x 1,..., x n ) es verdadero sii p(0, x 1,..., x n ) es verdadero o (como siempre, sumatoria vacía = 0, productoria vacía = 1) g(0, x 1,..., x n ) = 0 g(t + 1, x 1,..., x n ) = g(t, x 1,..., x n ) + f (t + 1, x 1,..., x n ). p(y, x 1,..., x n ) es verdadero Lo mismo se puede definir con < y en lugar de y. Idem para h con en lugar de + y 1 en lugar de 0 en el caso base. 3 ( t) <y p(t, x 1,..., x n ) y ( t) <y p(t, x 1,..., x n ) 4

Cuantificadores acotados (con ) Sea p : N n+1 {0, 1} un predicado perteneciente a una clase PRC C. Los siguientes predicados también están en C: ( t) y p(t, x 1,..., x n ) ( t) y p(t, x 1,..., x n ) ( t) y p(t, x 1,..., x n ) sii y t=0 p(t, x 1,..., x n ) = 1 ( t) y p(t, x 1,..., x n ) sii y t=0 p(t, x 1,..., x n ) 0 la sumatoria y productoria están en C la comparación por = está en C Cuantificadores acotados (con <) Sea p : N n+1 {0, 1} un predicado perteneciente a una clase PRC C. Los siguientes predicados también están en C: ( t) <y p(t, x 1,..., x n ) ( t) <y p(t, x 1,..., x n ) ( t) <y p(t, x 1,..., x n ) sii ( t) y (t = y p(t, x 1,..., x n )) ( t) <y p(t, x 1,..., x n ) sii ( t) y (t y p(t, x 1,..., x n )) 5 6 Más ejemplos de funciones primitivas recursivas y x sii y divide a x. Se define como ( t) x y t = x Notar que con esta definición 0 0. primo(x) sii x es primo. 7 Minimización Sea p : N n+1 {0, 1} un predicado de una clase PRC C. y u g(y, x 1,..., x n ) = α(p(t, x 1,..., x n )) u=0 t=0 Qué hace g? supongamos que existe un t y tal que p(t, x 1,..., x n ) es verdadero sea t0 el mínimo tal t p(t, x1,..., x n ) = 0 para todo t < t 0 p(t0, x 1,..., x n ) = 1 { u t=0 α(p(t, x 1 si u < t 0 1,..., x n )) = y+1 veces {}}{ g(y, x 1,..., x n ) = 1 + 1 + + 1 +0 + 0 + + 0 = t }{{} 0 t 0 veces entonces g(y, x1,..., x n ) es el mínimo t y tal que p(t, x 1,..., x n ) es verdadero si no existe tal t, g(y, x 1,..., x n ) = y + 1 8

Minimización Notamos mín p(t, x 1,..., x n ) = t y mínimo t y tal que p(t, x 1,..., x n ) es verdadero Sea p : N n+1 {0, 1} un predicado de una clase PRC C. La función mín t y p(t, x 1,..., x n ) también está en C. si existe tal t Más ejemplos de funciones primitivas recursivas x div y es la división entera de x por y x mín((t + 1) y > x) t x Notar que con esta definición 0 div 0 es 0. mód y es el resto de dividir a x por y p n es el n-ésimo primo (n > 0). Se define p 0 = 0, p 1 = 2, p 2 = 3, p 3 = 5,... p 0 = 0 p n+1 = mín t K(n) (primo(t) t > p n) Necesitamos una cota K(n) que sea buena, i.e. suficientemente grande y primitiva recursiva K(n) = p n! + 1 funciona (ver que p n+1 p n! + 1). 9 10 Codificación de pares Definimos la función primitiva recursiva Notar que 2 x (2 y + 1) 0. x, y = 2 x (2 y + 1) 1 Hay una única solución (x, y) a la ecuación x, y = z. x es el máximo número tal que 2 x (z + 1) y = ((z + 1)/2 x 1) div 2 Observadores de pares Los observadores del par z = x, y son l(z) = x r(z) = y Los observadores de pares son primitivas recursivas. Como x, y < z + 1 tenemos que l(z) = mín x z (( y) z z = x, y ) r(z) = mín y z (( x) z z = x, y ) Por ejemplo, 2, 5 = 2 2 (2 5 + 1) 1 = 43 l(43) = 2 r(43) = 5 11 12

Codificación de secuencias El número de Gödel de la secuencia es el número a 1,..., a n [a 1,..., a n ] = donde p i es el i-ésimo primo (i 1). n i=1 p a i i, Por ejemplo el número de Gödel de la secuencia es 1, 3, 3, 2, 2 [1, 3, 3, 2, 2] = 2 1 3 3 5 3 7 2 11 2 = 40020750. Propiedades de la codificación de secuencias Si [a 1,..., a n ] = [b 1,..., b n ] entonces a i = b i para todo i {1,..., n}. Por la factorización única en primos. Observar que pero [a 1,..., a n ] = [a 1,..., a n, 0] = [a 1,..., a n, 0, 0] =... [a 1,..., a n ] [0, a 1,..., a n ] 13 14 Observadores de secuencias Los observadores de la secuencia x = [a 1,..., a n ] son x[i] = a i x = longitud de x Los observadores de secuencias son primitivas recursivas. x[i] = mín t x ( p t+1 i x) x = mín i x (x[i] 0 ( j) x (j i x[j] = 0)) Por ejemplo, [1, 3, 3, 2, 2][2] = 3 = 40020750[2] [1, 3, 3, 2, 2][6] = 0 = 40020750[6] [1, 3, 3, 2, 2] = 5 = 40020750 [1, 3, 3, 2, 2, 0] = [1, 3, 3, 2, 2, 0, 0] = 5 = 40020750 x[0] = 0 para todo x 0[i] = 0 para todo i 15 En resumen: codificación y decodificación de pares y secuencias (Codificación de pares) l( x, y ) = x, r( x, y ) = y z = l(z), r(z) l(z), r(z) z la codificación y observadores de pares son p.r. (Codificación de secuencias) { a i si 1 i n [a 1,..., a n ][i] = si n x entonces [x[1],..., x[n]] = x la codificación y observadores de secuencias son p.r. 16

Para leer Computability, Complexity and Languages, fundamentals of theoretical computer science. Capítulo 3. Martin Davis, Ron Sigal, Elaine Weyuker, Elsevier, 1994 17