unidad v decibilidad teoria de la computacion

11
1 Introducción En el desarrollo del siguiente trabajo abordaremos temas como Lenguajes decidibles los problemas de Halting, y a decibilidad de teorías lógicas los cuales nos permitirán reforzar nuestros conocimientos en el área de Lenguajes y teoría de autómatas, además el contenido nos permitirá profundizar en el tema de la maquina de Turing abordando diferentes aspectos de los comportamientos que se nos podrían presentar en el desarrollo de un autómata o de una maquina de Turing.

Upload: selene-alvarez

Post on 05-Jul-2015

981 views

Category:

Documents


8 download

TRANSCRIPT

Page 1: Unidad v Decibilidad Teoria de La Computacion

1

Introducción

En el desarrollo del siguiente trabajo abordaremos temas como Lenguajes decidibles los problemas de Halting, y a decibilidad de teorías lógicas los cuales nos permitirán reforzar nuestros conocimientos en el área de Lenguajes y teoría de autómatas, además el contenido nos permitirá profundizar en el tema de la maquina de Turing abordando diferentes aspectos de los comportamientos que se nos podrían presentar en el desarrollo de un autómata o de una maquina de Turing.

Page 2: Unidad v Decibilidad Teoria de La Computacion

2

Unidad V Decibilidad

5.1 Lenguajes Decidibles

 Existen problemas que no pueden ser resueltos por una computadora, dado que las computadoras solamente pueden ejecutar algoritmos, esto es secuencia de instrucciones universalmente precisas y entendibles que resuelven cualquier instancia de problemas computacionales definidos rigurosamente.

La teoría de computabilidad tiene como objetivo el estudio de problemas de decisión, con el fin de determinar si los mismos son teóricamente decidibles.Los problemas se pueden clasificar desde el punto de vista de la teoría de computabilidad en resolubles y no resolubles. Los problemas resolubles son objeto de estudio de la teoría de complejidad computacional. Decimos que un lenguaje L es decidible si L= (M) para una maquina de Turing M tal que:

1.- Si w pertenece a L, entonces M acepta (y por lo tanto se para).

2.- Si w no pertenece a L, entonces M termina parándose, aunque nunca llega a un estado de aceptación.

Los lenguajes decidibles son cadenas de palabras calculables mediante funciones recursivas por lo cual también se les llamas lenguajes recursivos.

Un posible alfabeto sería, {a, b} , y una cadena cualquiera sobre este alfabeto sería, ababba.

Esos son algunos ejemplos de problemas de decisión expresados como lenguajes:

Las frases sobre el alfabeto {a, b} que contienen alternadas las letras a y b. Las frases sobre el alfabeto {a, b, c} que contienen igual número de letras a y b. Las frases que describen un grafo con aristas etiquetadas con números naturales que

indican su longitud, dos vértices del grafo y un camino en el grafo que es el camino más cortó entre esos dos vértices.

Las frases que describen una máquina de Turing y una cinta de entrada para esta máquina tal que la máquina se para en un tiempo finito al procesar esa entrada.

Lenguaje decidible

La máquina dice si una cadena pertenece al lenguaje o no. Implica reconocer el complemento del lenguaje. Existen lenguajes aceptables que no son decidibles, Un lenguaje es aceptable pero su complemento no.

Una MT de este tipo se corresponde con nuestro concepto informal de “algoritmos”, una secuencia bien definida de pasos que siempre termina y genera una respuesta. Si pensamos en el lenguaje L como en un “problema”, lo que será frecuente, entonces se

Page 3: Unidad v Decibilidad Teoria de La Computacion

3

dice que el problema L es decidible si es un lenguaje recursivo, y se dice que es indecidible si no es un lenguaje recursivo.

La existencia o no existencia de un algoritmo para resolver un problema a menudo tiene más importancia que la existencia de una MT que resuelva el problema. Las maquinas de Turing que no garantizan la parada no pueden proporcionarnos la suficiente información como para concluir que una cadena no pertenece al lenguaje, por lo que en cierto sentido no “resuelven el problema”. Por tanto, dividir los problemas entre los lenguajes decidibles (aquellos que se resuelven mediante un algoritmo) e indecidibles, a menudo es mas importante que la división entre lenguajes recursivamente e numerables (aquellos para los que existen maquinas de Turing de alguna clase) y lenguajes no recursivamente e numerables (aquellos para los que no existe ninguna MT).relación entre estas tres clases de lenguajes.

1. Los lenguajes recursivos2. Los lenguajes que no son recursivamente e numerables.

Lenguajes recursivos y recursivamente e numerables. Los lenguajes aceptados por la maquina de Turing son recursivamente e numerables (RE) y el subconjunto de los lenguajes RE que son aceptados por una MT que siempre se para se denominan lenguajes recursivos.Decibilidad e indecibilidad. “Decidible” es sinónimo de “Recursivo”, aunque se suele decir que los lenguajes son recursivos y los problemas (que son los lenguajes interpretados como una cuestión) son decidibles. Si un lenguaje no es recursivo, entonces decimos que el problema expresado por dicho lenguaje es indecidible.

5.2 Los Problemas de Halting (Indecidible)

El problema de “Halting” es el primer problema indecidible mediante maquinas de Turing. Equivale a construir un programa que te diga si un problema de ordenador finaliza alguna vez o no (entrando a un bucle infinito, por ejemplo).

Para el problema de Halting no existe un algoritmo que pueda decidir si un programa arbitrario se detendrá o no. Su demostración se realiza por contradicción/absurdo.

Suponemos que existe una función Halt (En nuestro caso particular, escrita en Pascal) que resuelve el problema de Halting:○ True: Cuando el programa analizado termina.○ False Cuando el programa analizado no termina.

Suponemos:○ Está escrita en Pascal○ Da respuesta en un tiempo finito○ Sus respuestas son True y False○ El código que analiza “Halt” está guardado en el archivo “dato_p”.Pseudo-Código de nuestro programa:

Page 4: Unidad v Decibilidad Teoria de La Computacion

4

Veamos qué ocurre si en dato. p se coloca el código del programa test...Se pueden analizar los siguientes dos casos:

1. Si Halt es TRUE, entonces, de acuerdo a lo supuesto, el programa analizado (TEST) termina luego, TEST termina. Por otro lado, mirando el código de test, si halt es true entra en ciclo infinito, por lo que test NO termina (Contradicción)2. Si Halt es False, entonces, de acuerdo a lo supuesto, el programa analizado (TEST) no termina; luego, Test NO termina. Por otro lado, mirando el código de test, test escribe un mensaje y termina; esto significaría que Halt termina (Contradicción)

Ya que en ambos casos se producen contradicciones, se asegura que la función HALT NO EXISTEEl problema de Halting enfocado a las maquinas de Turing.

Turing definió las bases de las computadoras modernas y planteo un problema sobre ellas, llegando a la conclusión de que no hay ningún algoritmo que lo resuelva. Es el problema de la detención (Halting problem); el problema de saber si un problema se cuelga cuando corre en la computadora. Turing demostró que el problema de la detención es indecidible, es decir, demostró que había problemas que una maquina no podía resolver.

Por todo esto el problema de Halting es un diagnostico que indica que un problema de decisión no es decidible.

Al problema de Halting también se le puede llamar   problema de la parada   o   problema de la detención   para máquinas de Turing es el ejemplo de problema irresoluble más conocido. Este fue el primer problema que se demostró formalmente que no tenía solución.

¿Cuál es la diferencia entre un problema resoluble y uno irresoluble?

Se dice que los problemas de decisión son resolubles si existe un algoritmo que es capaz de responder si o no a cada uno de dichos casos.

El concepto de problema indecidible o irresoluble se aplica a problemas de decisión, es

program test;Var siempre: Boolean;Function Halt: Boolean;Begin...End;BeginSiempre:= False;If Halt ThenRepeatSiempre:= falseUntil siempreelseWriteln (“Este programaTermina”)End.

Page 5: Unidad v Decibilidad Teoria de La Computacion

5

decir, problemas a los que podemos decir si tienen solución o no. Dentro de estos problemas, existe un conjunto al que no le podemos asignar una respuesta, ni afirmativa ni negativa: no existe un algoritmo que nos permita determinar si el problema tiene solución.

Ejemplo #1: Problema de HaltingSuponemos que tenemos una máquina llamada HM, que recibe como entrada el código de una máquina m y una cadena w. HM aceptara cuando m se detiene y acepta a w, caso contrario HM rechaza. Para probar la reducción al absurdo, supondremos que HM es decidible.

Ahora bien, supongamos que tenemos otra máquina llamada BM, esta máquina contiene a HM y lo único que hace es aceptar si HM ha rechazado y entrar en un ciclo infinito cuando HM ha aceptado. O sea que nuestra máquina BM solo negará la salida de HM. Diremos también que HM es representado por la diagonal principal de la tabla donde hay una cantidad infinita de máquinas de Turing.La diagonalización radica en que HM es la diagonal de nuestra tabla y aseguramos que en nuestra tabla existe la negación de HM, o sea que hay una máquina que contiene los valores dela negación de HM. En esta tupla hay un valor que concuerda con la diagonal principal, este elemento representa la aceptación o rechazo del código de BM.

Una vez hechas todas estas afirmaciones, proponemos darle a BM su propio código

como

Entrada. ¿Qué sucederá cuando HM revise el código? Pueden suceder dos cosas:

1. HM determina que BM se detendrá, por lo tanto acepta.

2. HM determina que BM entrará en un ciclo infinito, por lo tanto rechaza.En el primer caso HM acepta, por lo tanto BM entra en un ciclo infinito. ¿Cómo pude ser posible que BM entre en un ciclo infinito si HM determinó que se detendría? Para tener una respuesta certera analicemos el segundo caso: HM determina que BM entra en un ciclo infinito y rechaza, dado que HM ha rechazado, entonces BM no entra en un ciclo infinito y solo acepta. Ahora si podemos afirmar que lo que tenemos frente a nosotros es una contradicción.

De esta manera hemos probado que HM en realidad es indecidible.

Page 6: Unidad v Decibilidad Teoria de La Computacion

6

5.3 Decibilidad de Teorías lógicas.

¿A partir de que se define una teoría lógica?

Una teoría lógica (TL) se define a partir de un conjunto de enunciados dados llamados axiomas, unas reglas de inferencia y un esquema de derivación. A partir de los axiomas y aplicando las reglas de inferencia y el esquema de derivación se infieren los teoremas de la teoría. El conjunto de teoremas de la teoría forman un lenguaje formal.

Si es posible definir una máquina de Turing tal que reconozca al lenguaje de los teoremas, este lenguaje es decidible y la teoría también lo es en consecuencia. Dicho en otras palabras, si el conjunto de teoremas visto como un lenguaje es reconocido por una máquina de Turing, entonces la TL es decidible. Y viceversa.

Puede hablarse entonces de manera indistinta de teorías lógicas o de lenguajes decidibles, como aquellos para los que existe una máquina de Turing capaz de reconocerlos. Luego, la correspondencia entre la sintaxis de una teoría lógica (lenguaje formal) y el reconocimiento simbólico del mismo por parte de un autómata queda establecida.

Desde el punto de vista semántico, las interpretaciones de las cadenas del lenguaje se realizan ya sea por el intérprete ó bien por el compilador del lenguaje de programación en el cual se dan las instrucciones. Las cadenas que resultan en instrucciones realizadas por la computadora pueden considerarse interpretadas como verdaderas y por tanto tienen, al menos, un modelo de la Teoría Lógica formada por tales cadenas.

En particular, los axiomas se consideran teoremas de la teoría, los cuales se derivan aplicando cero veces las reglas de inferencia.

Decibilidad de las teorías lógicas. El desarrollo de la teoría de la computabilidad ha ido íntimamente ligado al desarrollo de la lógica matemática. Esto ha sido así porque la decibilidad de los distintos sistemas lógicos es una cuestión fundamental. Es bastante fácil ver que el cálculo proposicional es decidible. Church y Turing demostraron en 1936 que el cálculo de predicados no era decidible. Por otro lado, para cada una de las distintas teorías se ha ido estudiando su posible decibilidad. Como ejemplo más ilustrativo, Tarski demostró que la teoría de los números reales era decidible.

Por otro lado, son muchos los problemas interesantes que se han demostrado computables. Todas las funciones construidas por recursividad primitiva o minimalización a partir de funciones calculables resultan ser calculables como consecuencia de los trabajos de Church y Turing. Pero además, otras funciones más complejamente definidas también son computables, siendo el resultado más significativo en relación con esta cuestión el dado por el siguiente teorema:

Page 7: Unidad v Decibilidad Teoria de La Computacion

7

Primer teorema de Recursión. Todo operador entre funciones calculables que sea recursivo (esto es que se defina la imagen de f mediante una función calculable en términos de una parte finita de f), tiene una función parcial computable que es el menor punto fijo, es decir, esta función es un punto fijo y cualquier otro punto fijo del operador es una extensión de esa función.

Este teorema recibe su nombre porque podemos definir una función mediante una ecuación recursiva más general que la permitida por la recursividad primitiva, a saber donde es un operador recursivo. El primer teorema de recursión nos dice que esta definición es posible; hay una función recursiva que satisface esta ecuación. Como en matemáticas se requiere que la definición sea unívoca, se dice que dicha ecuación define el menor punto fijo del operador. Así, y de acuerdo al primer teorema de recursión, la clase de las funciones calculables es cerrada bajo una muy general forma de definición por recursión.

A menudo se utiliza la técnica de reducir un problema a otro para comprobar si tiene o no solución efectiva. La estrategia en el caso de la respuesta negativa es la siguiente, si se reduce de forma efectiva un problema sin solución efectiva a otro problema (mediante una función calculable), entonces este nuevo problema tampoco tendrá solución efectiva. La razón es muy simple, si tuviese solución efectiva, componiendo el algoritmo solución con el algoritmo de transformación obtendríamos una solución para el problema efectivamente irresoluble. En sentido inverso, si se reduce un problema a otro para el que se conoce una solución efectiva, entonces componiendo se obtiene una solución para el primer problema. Esta técnica es muy útil y se utiliza a menudo. Por otro lado, esta misma técnica es muy empleada en el campo de la complejidad algorítmica. Para asegurarse de que un problema está en una clase de complejidad, basta reducir el problema a otro de dicha clase sin más que asegurarse que la reducción se realiza en la correspondiente clase de complejidad.

Conclusión

En este documento se hablo acerca de decibilidad, esta se refiere a la existencia de un método efectivo para determinar si un objeto es miembro de un conjunto. Un sistema es decidible si el conjunto de todas las formulas validas pertenecen al conjunto, es decir, existe un algoritmo tal que para cada formula del sistema es capaz de decidir en un cierto numero de pasos, si la formula es valida o no .

Pudimos observar que la decibilldad no es un tema aparte del de la Maquina de Turing, sino que se complementan. Este es un tema importante para conocer al momento de estudiar el lenguaje de una computadora para nosotros como Ingenieros en Sistemas, ya que en un momento dado hasta podríamos mejorar la forma de comunicarnos con las maquinas (computadora), tal como lo han hecho todos aquellos quienes en su tiempo revolucionaron la tecnología al desarrollar los lenguajes existentes.

Asi que en resumen, la decibilidad solo se refiere a la toma de decisiones acerca de si es o no es un objeto, basándose en algo ya preestablecido.

Page 8: Unidad v Decibilidad Teoria de La Computacion

8

Bibliografía:

“Introducción a la teoría de autómatas lenguajes y computación”

Tercera edicion

John E. hopcroft

Cornell university

Rajeev Montawani

Stanford University

Jeffrey D. Ullman

Stanford University

..Ed Prearson

http://www.mitecnologico.com/Main/DecidibilidadTeoriasLogicas

http://sistemas.itlp.edu.mx/tutoriales/teoriadelacomputacion/t53.htm