Lenguajes decidibles y semidecidibles. Elvira Mayordomo, Universidad de Zaragoza

Documentos relacionados
Máquinas de Turing, programas y tesis de Turing-Church

Autómatas de Pila y Lenguajes Incontextuales

Departamento de Tecnologías de la Información. Tema 5. Decidibilidad. Ciencias de la Computación e Inteligencia Artificial

13.3. MT para reconocer lenguajes

NP-completos. Elvira Mayordomo Universidad de Zaragoza

El lema de bombeo y los lenguajes no regulares

Lenguajes (gramáticas y autómatas)

Autómatas finitos no deterministas (AFnD)

Introducción a la indecidibilidad

Máquinas de Turing, recordatorio y problemas

MÁQUINAS DE TURING Y LENGUAJES ESTRUCTURADOS POR FRASES

Máquinas de Turing IIC3242. IIC3242 Máquinas de Turing 1 / 45

5. Propiedades de los Lenguajes Recursivamente Enumerables y de los Lenguajes Recursivos.

Problemas de Decisión

Problemas fáciles, difíciles e imposibles

Demostración del problema del paro (Halting problem)

ANÁLISIS LÉXICO AUTÓMATAS FINITOS

LENGUAJES Y COMPILADORES

Teoría de la Computación puesta en Práctica

Computabilidad y Lenguajes Formales: Teoría de la Computabilidad: Máquinas de Turing

Examen. Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación. Segundo Semestre, 2003.

Máquinas de Turing Definición y descripción

Capítulo 9. Introducción a los lenguajes formales. Continuar

Entscheidungsproblem I TEORÍA DE LA COMPUTACIÓN MÁQUINAS DE TURING Y DECIDIBILIDAD. Máquinas de Turing (TM) Procedimiento efectivo

Modelos de Informática Teórica Capítulo 2 - Clases de Complejidad

Departamento de Tecnologías de la Información. Tema 4. Máquinas de Turing. Ciencias de la Computación e Inteligencia Artificial

Las Gramáticas Formales

Una matriz es un arreglo rectangular de números. Los números en el arreglo se llaman elementos de la matriz. ) ( + ( ) ( )

7. Máquinas de Turing.

Máquinas de Turing IIC3242. IIC3242 Máquinas de Turing 1 / 42

Máquinas de Turing. 18 de junio de 2015

TIPOS DE GRAMATICAS JERARQUIAS DE CHOMSKY

1. Probar pertenencia a Lenguajes libres de contexto

Problemas Insolubles Ejemplos

Lenguajes Incontextuales

SSL Guia de Ejercicios

Tema I. Capítulo 5. Equivalencia, congruencia y semejanza de matrices.

ÁLGEBRA LINEAL I Algunas soluciones a la Práctica 3

1. Cadenas EJERCICIO 1

Coordinación de Ciencias Computacionales INAOE. Teoría de Autómatas y Lenguajes Formales. Temario detallado para examen de ingreso 2012

Ciencias de la Computación I

LENGUAJES Y GRAMÁTICAS

Cardinalidad IIC1253. IIC1253 Cardinalidad 1 / 23

Teoría de la Computación Lenguajes Regulares (LR) - Propiedades

Cardinalidad IIC1253. IIC1253 Cardinalidad 1 / 23

TEORIA DE AUTOMATAS.

PROGRAMACIÓN II AÑO 2009 TALLER 3: TEORÍA DE LENGUAJES Y AUTÓMATAS

TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES Grado en Ingeniería Informática Online, Curso Universidad Rey Juan Carlos

Tema 6: Máquina de Turing

Máquinas de estado finito y expresiones regulares

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

TAREA 1 ALGEBRA ING. AMBIENTAL UNIVERSIDAD DE CÒRDOBA Vanessa Aldana, Cristian Gonzales, María De La Ossa

La máquina de Turing

Universidad de Valladolid

Máquinas Secuenciales, Autómatas y Lenguajes. Tema 4: Expresiones Regulares. Luis Peña

ESTALMAT-Andalucía Actividades 06/07

a. no (si A entonces B)

LENGUAJES Y GRAMÁTICAS

Tema 4: Determinantes

Introducción. Máquinas de Turing. Turing restringidas. Turing y Computadoras INAOE (INAOE) 1 / 49

Teoría de Lenguajes. Gramáticas incontextuales

TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES Práctica 5 - Simplificación de gramáticas incontextuales

Teoría de Autómatas y Compiladores [ICI-445] Capítulo 2: Autómatas Finitos

!MATRICES INVERTIBLES

Temas. Objetivo. Que el estudiante logre: 1) Identificar conceptos constructivos de la Teoría de la Computabilidad. 2) Definir autómatas de pila.

1. Problemas de inducción.

Clases de complejidad

Propiedades de Lenguajes Regulares

Teorema de incompletitud de Gödel

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

Godel y la Crisis de los Fundamentos Andres Abeliuk

Introducción a las Ciencias de la Computación

ÁLGEBRA LINEAL I Algunas soluciones a la Práctica 3

Matrices, Determinantes y Sistemas Lineales.

a ij x i x j = [x] t B A+At ) t = At +(A t ) t = At +A x i x j + a ij + a ji x j x i = s ij x i x j + s ji x j x i 2

Matemáticas Discretas L. Enrique Sucar INAOE. Inducción y Recursión

Modelos De Computación. Guía Modelos de Computación. Tema I: Lenguajes y Gramáticas

Procesadores de Lenguaje

Teoría de Autómatas y Lenguajes Formales Equivalencia de Conjuntos Pruebas por Inducción

Tema 4. Autómatas Finitos

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

Matrices Inversas. Rango Matrices Elementales

Relaciones. Estructuras Discretas. Relaciones. Relaciones en un Conjunto. Propiedades de Relaciones en A Reflexividad

AMPLIACIÓN DE MATEMÁTICAS. a = qm + r

Máquinas Secuenciales, Autómatas y Lenguajes Tema 5: Propiedades de los Lenguajes Regulares. Luis Peña

Matemática 2 MAT022. Clase 6 (Complementos) Departamento de Matemática Universidad Técnica Federico Santa María. Determinante de una matriz

Método de eliminación de Gauss Utilidad del método. Transformaciones elementales. Teorema Rouché-Frobenius

Escribir la expresión regular de un número entero que no acepte que el primer dígito sea cero salvo el número 0. Solución: 0 [1-9][0-9]*

Complejidad - Problemas NP-Completos. Algoritmos y Estructuras de Datos III

Aprendizaje Computacional y Extracción de Información

autómatas finitos y lenguajes regulares LENGUAJES FORMALES Y

RESOLUCIÓN DE SISTEMAS MEDIANTE DETERMINANTES

R no es enumerable. Por contradicción, supongamos que existe una biyección f : N! R. diagonalización de Cantor. Para cada i 2 N:

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

AUTÓMATAS DE PILA Y LENGUAJES INDEPENDIENTES DEL CONTEXTO

CONJUNTOS REGULARES. Orlando Arboleda Molina. 19 de Octubre de Escuela de Ingeniería de Sistemas y Computación de La Universidad del Valle

Autómatas Finitos Deterministicos (DFA)

Problemas computacionales, intratabilidad y problemas NP completos. Febrero Facultad de Ingeniería. Universidad del Valle

Autómatas Finitos Deterministicos (DFA)

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

Transcripción:

Lenguajes decidibles y semidecidibles Elvira Mayordomo, Universidad de Zaragoza 1

Hoy 1. Lenguaje semidecidible y lenguaje decidible (repaso) 2. Todo decidible es semidecidible 3. Ejemplos de decidibles 4. Más ejemplos de semidecidibles: el problema de parada 5. Los decidibles son cerrados por complemento 6. Primer ejemplo de no decidible 7. Ejemplos de no decidibles 2

Recordad: Programas Consideramos programas sintácticamente correctos El único añadido es que la memoria es ilimitada (es decir no hay nunca errores por overflow ) Luego si probamos que algo no se puede resolver con ningún programa es un resultado muy general 3

Nos interesan especialmente tipo tpresultado = (acepta,rechaza) procedimiento ejemplo (ent w:cadena; sal z:tpresultado) 4

Aceptar Aceptar Entrada Si el programa para y devuelve acepta Rechazar Entrada Si el programa para y no devuelve acepta o Si el programa no para nunca 5

Para un programa p El lenguaje aceptado L( p) = w : el programa p con entrada para y devuelve acepta w Definición: Un lenguaje es semidecidible si es el aceptado por un programa 6

Programas que paran siempre Una programa p para siempre si para cualquier cadena w, p con entrada w para Estos son los programas realmente útiles 7

Lenguajes decidibles Definición: Un lenguaje L es decidible si es el aceptado por un programa que para siempre w w L L p para y devuelve acepta p para y no devuelve acepta 8

Lenguajes decidibles Un lenguaje L es decidible si es el aceptado por un programa que para siempre En otras palabras: Un lenguaje L es decidible si existe un algoritmo que resuelve completamente el problema de pertenencia a L 9

a n b Lenguajes semidecidibles (aceptados por programas) n c n Lengs. indeps. del contexto n b n a Lenguajes regulares a * a *b* ww R ww 10

Hoy 1. Lenguaje semidecidible y lenguaje decidible (repaso) 2. Todo decidible es semidecidible 3. Ejemplos de decidibles 4. Más ejemplos de semidecidibles: el problema de parada 5. Los decidibles son cerrados por complemento 6. Primer ejemplo de no decidible 7. Ejemplos de no decidibles 11

Resultado elemental Teorema Si A es un lenguaje decidible entonces es semidecidible Demostración. Mirar las definiciones: Semidecidible: existe un programa que acepta A Decidible: existe un programa que acepta A y para siempre 12

Teorema Dicho de otra forma Si A no es semidecidible entonces A no es decidible 13

Lenguajes semidecidibles a n b n c n Lenguajes decidibles Lengs. indeps. del contexto n b n a R ww ww Lenguajes regulares a * a *b* 14

?? Hay lenguajes semidecidibles pero no decidibles? Veremos que sí utilizando la famosa técnica de diagonalización 15

Hoy 1. Lenguaje semidecidible y lenguaje decidible (repaso) 2. Todo decidible es semidecidible 3. Ejemplos de decidibles 4. Más ejemplos de semidecidibles: el problema de parada 5. Los decidibles son cerrados por complemento 6. Primer ejemplo de no decidible 7. Ejemplos de no decidibles 16

Ejemplos de decidibles Cualquier lenguaje para el que sepamos hacer un algoritmo que pare siempre y resuelva el problema de pertenencia: n n n { a b c n N } { ww w { a, b }*} Todos los regulares y todos los incontextuales 17

Ejemplos de decidibles A= { (M, N) M y N son AFDs que aceptan el mismo lenguaje} Un algoritmo que acepta A y para siempre: Entrada N, M N = minimizar(n) M = minimizar(m) Comparar (N, M ) si N M entonces acepta sino rechaza 18

Ejemplos de decidibles A= { (M, N) M y N son AFDs que aceptan el mismo lenguaje} B= { (M, N) M y N son AFnDs que aceptan el mismo lenguaje} C= {(e,f) e y f son dos expresiones regs. que representan el mismo leng.} 19

Hoy 1. Lenguaje semidecidible y lenguaje decidible (repaso) 2. Todo decidible es semidecidible 3. Ejemplos de decidibles 4. Más ejemplos de semidecidibles: el problema de parada 5. Los decidibles son cerrados por complemento 6. Primer ejemplo de no decidible 7. Ejemplos de no decidibles 20

Ejemplos de lenguajes semidecidibles Todos los lenguajes decidibles que hemos visto (todos los decidibles son semidecidibles) El que vamos a ver a contiuación 21

El problema de parada 22

El problema de parada Dado un programa p y una cadena w p con entrada w para? 23

El problema de parada H= { (p, w) : p es un programa que para con entrada w} Cada programa es una cadena, y codificamos (p,w) como p#w H es el lenguaje que representa el problema de parada 24

Qué sabemos sobre H? Hoy vamos a ver que H es semidecidible: existe un programa que acepta H H no es decidible: NO existe un programa que acepta H y para siempre Es decir, no existe un programa que resuelva el problema de parada, aunque sí un programa que acepta H (aunque en caso de rechazo se suele colgar) 25

Para ver que H es semidecidible H= { (p, w) : p es un programa que para con entrada w} Necesitamos un programa que simule la ejecución de otro programa Empezamos con un caso más fácil, un programa que simule una máquina de Turing 26

Simulando máquinas de Turing Podemos simular una máquina M con entrada w durante T pasos Procedimiento SimulaMT (ent M:cadena; ent w:cadena; ent T:natural; sal ha_parado:booleano; sal resultado:tpresultado) {Simula T pasos de la ejecución de M con entrada w} {ha_parado=true cuando ha parado en tiempo<=t} {resultado=acepta si ha parado en estado final} 27

Simulando máquinas de Turing Procedimiento SimulaMT (ent M:cadena; ent w:cadena; ent T:natural; sal ha_parado:booleano; sal resultado:tpresultado) Variables... {Simula T pasos de la ejecución de M con entrada w} principio ha_parado:= False tiempo:=0 entrada:= concatena( $,w) {seguido de blancos} memoria:= {$ seguido de blancos} cabeza_ent:=2; cabeza_mem:=2 q:=q0; a:=w(1); b:=blanco 28

Simulando máquinas de Turing MientrasQue (Not ha_parado) AND (tiempo<t) hacer Si hay una transición desde (q,a,b) seguirla { aplicar transición actualizando q,a,b y cabezas } tiempo:=tiempo+1 sino ha_parado:= True Fsi Fmq Si esfinal(q) entonces resultado:= acepta sino resultado:=rechaza; Fsi fin 29

Simulando programas Podemos simular un programa p con entrada w durante T pasos (como hacen los intérpretes o los debuggers) Procedimiento Simula (ent p:cadena; ent w:cadena; ent T:natural; sal ha_parado:booleano; sal resultado:cadena) {Simula T pasos de la ejecución de p con entrada w} {ha_parado=true cuando ha parado en tiempo<=t} {resultado= resultado de p con entrada w si ha parado} 30

Teorema H es semidecidible H= { (p, w) : p es un programa que para con entrada w} 31

H es semidecidible H= { (p, w) : p es un programa que para con entrada w} Procedimiento aceptah(ent p:cadena; ent w:cadena; sal z:tpresultado) Variable res:tpresultado Principio T:=1; ha_parado:=false MientrasQue NOT ha_parado simula(p,w,t,ha_parado,res) T:=T+1 Fmq Si ha_parado entonces z:=acepta Fin 32

H es semidecidible Si (p,w) H el programa aceptah acepta (p,w) Si (p,w) H el programa aceptah con entrada (p,w) se cuelga!!! 33

Hoy 1. Lenguaje semidecidible y lenguaje decidible (repaso) 2. Todo decidible es semidecidible 3. Ejemplos de decidibles 4. Más ejemplos de semidecidibles: el problema de parada 5. Los decidibles son cerrados por complemento 6. Primer ejemplo de no decidible 7. Ejemplos de no decidibles 34

Los decidibles son cerrados por complemento Sea A decidible: hay un algoritmo que acepta A y para siempre Un algoritmo para A es como el algoritmo para A pero cambiando devuelve acepta por devuelve rechaza y viceversa 35

Los decidibles son cerrados por complemento Si A es decidible entonces A es decidible Si A no es decidible entonces A no es decidible 36

Importante: Los semidecidibles NO son cerrados por complemento Por ejemplo, H no es semidecidible 37

Hoy 1. Lenguaje semidecidible y lenguaje decidible (repaso) 2. Todo decidible es semidecidible 3. Ejemplos de decidibles 4. Más ejemplos de semidecidibles: el problema de parada 5. Los decidibles son cerrados por complemento 6. Primer ejemplo de no decidible 7. Ejemplos de no decidibles 38

No decidibles Para cualquier aplicación práctica sólo nos interesan los programas que paran siempre Resolver un problema es encontrar un programa que lo resuelva y pare siempre Los decidibles son los que podemos resolver Hay no decidibles interesantes? No decidible = Indecidible 39

Primer ejemplo de indecidible Vamos a utilizar diagonalización para ver nuestro primer ejemplo de indecidible o no decidible No decidible = Indecidible 40

Diagonalización 41

Diagonalizar una tabla b1 b2 b3 b4 b5 b6 b7 b8 R1 0 1 1 0 0 1 0 1 R2 1 1 1 0 0 1 0 0 R3 0 0 0 1 1 1 0 1 R4 0 1 0 1 0 1 0 1 R5 1 1 1 0 1 1 0 0 R6 1 0 1 0 1 1 0 1 R7 1 0 0 1 1 1 0 1 R8 0 0 1 1 1 1 0 1 Cómo encontrar una fila distinta a todas? 42

Diagonalizar una tabla b1 b2 b3 b4 b5 b6 b7 b8 R1 0 1 1 0 0 1 0 1 R2 1 1 1 0 0 1 0 0 R3 0 0 0 1 1 1 0 1 R4 0 1 0 1 0 1 0 1 R5 1 1 1 0 1 1 0 0 R6 1 0 1 0 1 1 0 1 R7 1 0 0 1 1 1 0 1 R8 0 0 1 1 1 1 0 1 1 0 1 0 0 0 1 0 43

Un enunciado curioso Cada programa p lo codificamos como una cadena Luego si un programa p tiene como entrada una cadena, podemos considerar como entrada de p el propio p No es tan raro, podemos escribir un compilador de Java en Java Y el compilador se puede compilar a sí mismo 44

Un lenguaje no decidible A= { p : p es un programa que acepta la entrada p} 45

Demostración: Teorema: A no es decidible Sea la siguiente tabla (infinita): para cada programa p hay una fila, y para cada programa p hay una columna El la posición p,q escribimos 1 si el programa p acepta q y escribimos 0 si no 46

Demostración p1 p2 p3 p4 p5 p6 p7 p8 p1 0 1 1 0 0 1 0 1 p2 1 1 1 0 0 1 0 0 p3 0 0 0 1 1 1 0 1 p4 0 1 0 1 0 1 0 1 p5 1 1 1 0 1 1 0 0 p6 1 0 1 0 1 1 0 1 p7 1 0 0 1 1 1 0 1 p8 0 0 1 1 1 1 0 1 Si L es semidecidible una de las filas es L 47

Demostración p1 p2 p3 p4 p5 p6 p7 p8 p1 0 1 1 0 0 1 0 1 p2 1 1 1 0 0 1 0 0 p3 0 0 0 1 1 1 0 1 p4 0 1 0 1 0 1 0 1 p5 1 1 1 0 1 1 0 0 p6 1 0 1 0 1 1 0 1 p7 1 0 0 1 1 1 0 1 p8 0 0 1 1 1 1 0 1 Qué es la diagonal? 48

Demostración En la diagonal hay 1 si p acepta p y 0 si no Esto es 1 si p A y 0 si p A Qué pasa si diagonalizamos? 49

Demostración En la diagonal hay 1 si p acepta p y 0 si no Esto es 1 si p A y 0 si p A Qué pasa si diagonalizamos? Obtenemos una fila que no está en la tabla Obtenemos el complementario de la diagonal (1 si p A y 0 si p A) 50

Demostración Si hay un programa Q que acepte A, tenemos que la fila de Q en la tabla tiene 1 si p A y 0 si p A Pero eso es imposible porque hemos visto que una fila así no está en la tabla (es el complementario de la diagonal) Luego no hay un programa que acepte A 51

Demostración Luego no hay un programa que acepte A Luego A no es semidecidible (decidible semidecidible) Por tanto A no es decidible (decidible cerrado por complemento) Por tanto A no es decidible Fin de la demostración 52

Hoy 1. Lenguaje semidecidible y lenguaje decidible (repaso) 2. Todo decidible es semidecidible 3. Ejemplos de decidibles 4. Más ejemplos de semidecidibles: el problema de parada 5. Los decidibles son cerrados por complemento 6. Primer ejemplo de no decidible 7. Ejemplos de no decidibles 53

El problema de parada H= { (p, w) : p es un programa que para con entrada w} H no es decidible (por diagonalización) Luego H es semidecidible pero no es decidible 54

El problema diagonal de parada K= { p : p es un programa que para con entrada p} K no es decidible 55

Indecidibles famosos no decidibles 56

Recordad Resolver un problema es encontrar un programa que lo resuelva y pare siempre Un indecidible es un problema que no podemos resolver con ningún algoritmo 57

Indecidible ya visto El problema de parada Dado un programa p y una cadena w p con entrada w para? 58

Casi visto El problema de pertenencia Dado un programa p y una cadena w p acepta w? 59

Otro problema indecidible El problema de parada para MT Dada una máquina de Turing M y una cadena w La máquina M con entrada w para? 60

Otro problema indecidible La detección de virus Dado un programa p Es p un virus? Un virus es un programa que puede infectar otros programas modificándolos incluyendo una copia (que puede estar modificada) de sí mismo 61

Unos cuantos más Dados dos programas, calculan lo mismo? Dado un programa p, p para con alguna entrada? 62

Algunos problemas indecidibles sobre gramáticas: Dadas G 1,G 2 gramáticas independientes de contexo, L G ) = L( )? ( 1 G2 63

Algunos problemas indecidibles sobre gramáticas: Dadas G 1,G 2 gramáticas independientes de contexo, L( G ) ( ) =? 1 L G2 Dada una gramática independiente de contexo G, es G ambigua? 64

Y otro: Wang tiles Dado un conjunto finito de baldosas, con un color en cada lado Ejemplo: puede embaldosarse con ellos el plano, de forma que los lados contiguos tengan el mismo color? (se pueden hacer tantas copias como se quiera, no se pueden girar ni invertir) 65

Wang tiles Ejemplos fáciles: periódicos Datos: Embaldosado ampliable: 66

Wang tiles Ejemplos fáciles: Datos: Respuesta: No se puede embaldosar el plano 67

Wang tiles Ejemplos difíciles: aperiódicos Datos: Respuesta: Se puede embaldosar el plano de forma no periódica (Ejercicio: intentarlo) Muy aplicados para construir imágenes y texturas 68

Wang tiles El problema es indecidible: no hay un algoritmo que lo resuelva Al principio Wang presentó un algoritmo que lo resuelve pero suponiendo que todos los embaldosados son periódicos (falso) 69

Y otro más El problema de correspondencia de Post Dadas dos listas de palabras x 1, x 2,, x k y 1, y 2,, y k existen a1, a2,, an para los cuales x a1 x a2 x an = y a1 y a2 y an? 70

El problema de Post Ejemplo: u 1 =aba u 2 = bbb u 3 =aab u 4 =bb, v 1 =a v 2 =aaa v 3 =abab v 4 =babba Datos: aba bbb aab bb a aaa abab babba aba bb aab aba a babba abab a 71

Ejemplo: El problema de Post Datos: abb bb abb a aaa abab Respuesta: No 72

Ejemplo: El problema de Post Datos: I IPP IS M S PPI I I M SS M IS S IS S IPP I M I SS I SS I PPI 73

Uno de matemáticas El décimo problema de Hilbert Dada una ecuación con coeficientes enteros, existe una solución entera? Ejemplos: x 2 +y 2 =13 2x-11=0 74

Lenguajes semidecidibles H a n b n c n Lenguajes decidibles Lengs. indeps. del contexto n b n a R ww H ww Lenguajes regulares a * a *b* 75

Referencias (para este tema y el anterior) Sipser, capítulos 3 y 4 Kelley, capítulos 4, 5 y 6 76