You are on page 1of 12

UNIVERSIDAD DON BOSCO FACULTAD DE INGENIERIA TEORIA DE LA COMPUTACION CICLO I/11

TEMA: FUNDAMENTOS TEORICOS DE LENGUAJES FORMALES Y MAQUINA DE TURING

DOCENTE: Ing.Jaime Anaya.

GRUPO TEORICO: 01 ESTUDIANTE:

Edwin Antonio Monroy Rivera MR070235 Victor Manuel Chacon Melendez

CIUDADELA DON BOSCO, 28 DE ENERO DE 2011

ndice Pg.

Introduccin Lenguaje Formal La Maquina de Turing Cmo es la Maquina de Turing? Mquinas de Turing deterministas y no deterministas Mquina Universal de Turing Mquina de Turing Cuntica Conclusiones Bibliografa Anexos

1 2 3 3 5 6 6 8 9 10

Introduccin
En matemticas, lgica, y las ciencias computacionales, un lenguaje formal es un conjunto de palabras de longitud finita formadas a partir de un alfabeto finito. Informalmente, el trmino lenguaje formal se utiliza en muchos contextos para referirse a un modo de expresin ms cuidadoso y preciso que el habla cotidiana. Hasta finales de la dcada de 1990, el consenso general era que un lenguaje formal, en el sentido que trata este artculo, era en cierto modo la versin lmite de este uso antes mencionado: un lenguaje tan formalizado que poda ser usado en forma escrita para describir mtodos computacionales. Sin embargo, hoy en da, el punto de vista de que la naturaleza esencial de los lenguajes naturales difiere de manera importante de aquella de los verdaderos lenguajes formales gana cada vez ms adeptos. Mquina de Turing (MT) es un modelo computacional que realiza una lectura/escritura de manera automtica sobre una entrada llamada cinta, generando una salida en esta misma. Este modelo est conformado por un alfabeto de entrada y uno de salida, un smbolo especial llamado blanco (normalmente b, o 0), un conjunto de estados finitos y un conjunto de transiciones entre dichos estados. Su funcionamiento se basa en una funcin de transicin, que recibe un estado inicial y una cadena de caracteres (la cinta, la cual es finita por la izquierda) pertenecientes al alfabeto de entrada. Luego va leyendo una celda de la cinta, borrando el smbolo, escribir el nuevo smbolo perteneciente al alfabeto de salida y finalmente avanza a la izquierda o a la derecha (solo una celda a la vez), repitiendo esto segn se indique en la funcin de transicin, para finalmente detenerse en un estado final o de aceptacin, representando as la salida.

LENGUAJE FORMAL
Un lenguaje formal es un conjunto de cadenas de smbolos tomados de algn alfabeto. El conjunto vaci , y el conjunto formado por la cadena vaca { } son lenguajes. Ntese que son diferentes: el ultimo tiene elemento, mientras que el primero no. El conjunto de palndromos (cadenas que se leen igual de izquierda a derecha o viceversa) sobre el alfabeto {0,1} es un lenguaje infinito. Algunos elementos de este lenguaje son 0, 1, 00, 11, 010 y 1101011. Una palabra v es subcadena de otra w cuando existen cadenas x ,y - posiblemente vacas tales que xvy = w. Por ejemplo, bora es subcadena de vibora , y es subcadena de toda palabra. Un lenguaje es un conjunto de cadenas sobre un alfabeto especfico. Ejemplo: L1={aa,aaa} L2={aba,aab} cadenas conformadas por a y b L3={ab,ba,aabb,abab,.,aaabb,.} Teniendo un lenguaje, las cadenas que pertenezcan a este se les llama oracin o frase. As aabb aL3 es una oracionde L3, mientras que abb L3 es una cadena incorrecta. La cardinalidad o el tamao de un lenguaje es el nmero de frases que contiene. Ejemplo: |L2|=|{aba,aab}|=2 Si la cardinalidad es finita, al lenguaje tambin se le denomina finito, caso contrario si el nmero de cadenas no tiene lmite al lenguaje se le denominara infinito. Para ilustrar L1 y L 2 son lenguajes finitos y L3 es lenguaje infinito. Se puede observar que un lenguaje finito es esencialmente una coleccin de palabras muchas veces llamado vocabulario. Un lenguaje infinito especial es el conjunto vaci o el lenguaje el cual no contiene frase alguna | |=0. Por lo general cuando una lengua tiene un solo elemento se omite las llaves al denotar los elementos abb={abb} Es conveniente introducir la notacin |X|b, donde b es el numero de caracteres presentes en una cadena X Ejemplo: |aab|a = 2 |aba|a = 2 |baa|c = 0 La Longitud |x| de una cadena x es el numero de caracteres que contiene. Ejemplo: |ab| = 2 |abaa| = 4 Sean dos Cadenas x=a1a2ah y=b1b2bk Son iguales si se cumple que h=k y a1=b2, para todo i=1,2,.,h En palabras, al examinar las cadenas de izquierda a derecha sus respectivos caracteres coinciden. Asi se obtendr: aba baa baa ba

La Mquina de Turing

La mquina de Turing es un modelo computacional introducido por Alan Turing en el trabajo On computable numbers, with an application to the Entscheidungsproblem, publicado por la Sociedad Matemtica de Londres, en el cual se estudiaba la cuestin planteada por David Hilbert sobre si las matemticas son decidibles, es decir, si hay un mtodo definido que pueda aplicarse a cualquier sentencia matemtica y que nos diga si esa sentencia es cierta o no. Turing construy un modelo formal de computador, la mquina de Turing, y demostr que existan problemas que una mquina no poda resolver. La mquina de Turing es un modelo matemtico abstracto que formaliza el concepto de algoritmo.

Cmo es la Mquina Turing?


La mquina de Turing consta de un cabezal lector/escritor y una cinta infinita en la que el cabezal lee el contenido, borra el contenido anterior y escribe un nuevo valor. Las operaciones que se pueden realizar en esta mquina se limitan a: avanzar el cabezal lector/escritor hacia la derecha. avanzar el cabezal lector/escritor hacia la izquierda. El cmputo es determinado a partir de una tabla de estados de la forma: (estado, valor) (nuevo estado, nuevo valor, direccin) Esta tabla toma como parmetros el estado actual de la mquina y el carcter ledo de la cinta, dando la direccin para mover el cabezal, el nuevo estado de la mquina y el valor a ser escrito en la cinta. Con este aparato extremadamente sencillo es posible realizar cualquier cmputo que un computador digital sea capaz de realizar. Mediante este modelo terico y el anlisis de complejidad de algoritmos, fue posible la categorizacin de problemas computacionales de acuerdo a su comportamiento, apareciendo as, el conjunto de problemas denominados P y NP, cuyas soluciones en tiempo polinmico son encontradas segn el determinismo y no determinismo respectivamente de la mquina de Turing. De hecho, se puede probar matemticamente que para cualquier programa de computadora es posible crear una mquina de Turing equivalente. Esta prueba resulta de la Tesis de ChurchTuring, formulada por Alan Turing y Alonzo Church, de forma independiente a mediados del siglo XX. La idea subyacente es el concepto de que una mquina de Turing es una persona ejecutando un procedimiento efectivo definido formalmente, donde el espacio de memoria de trabajo es ilimitado, pero en un momento determinado slo una parte finita es accesible. La memoria se divide en espacios de trabajo denominados celdas, donde se pueden escribir y leer smbolos. Inicialmente todas las celdas contienen un smbolo especial denominado blanco. Las instrucciones que determinan el funcionamiento de la mquina tienen la forma, si estamos en 3

el estado x leyendo la posicin y, donde hay escrito el smbolo z, entonces este smbolo debe ser reemplazado por este otro smbolo, y pasar a leer la celda siguiente, bien a la izquierda o bien a la derecha. La mquina de Turing puede considerarse como un autmata capaz de reconocer lenguajes formales. En ese sentido es capaz de reconocer los lenguajes recursivamente enumerables, de acuerdo a la jerarqua de Chomsky. Su potencia es, por tanto, superior a otros tipos de autmatas, como el autmata finito, o el autmata con pila, o igual a otros modelos con la misma potencia computacional.

Definicin
Una mquina de Turing con una sola cinta puede ser definida como una 6-tupla M=(Q,T,s,b,F,S) , donde: Q es un conjunto finito de estados. T es un conjunto finito de smbolos de cinta, el alfabeto de cinta. s E Q es el estado inicial. b E L es un smbolo denominado blanco, y es el nico smbolo que se puede repetir un nmero infinito de veces. F _C Q es el conjunto de estados finales de aceptacin. S : Q x L Q x L x {L,R} es una funcin parcial denominada funcin de transicin, donde L es un movimiento a la izquierda y R es el movimiento a la derecha. Existen en la literatura un abundante nmero de definiciones alternativas, pero todas ellas tienen el mismo poder computacional, por ejemplo se puede aadir el smbolo S como smbolo de no movimiento en un paso de cmputo o el smbolo para indicar el alfabeto de entrada. Ejemplo Definimos una mquina de Turing sobre el alfabeto {0,1}, donde 0 representa el smbolo blanco. La mquina comenzar su proceso situada sobre un smbolo 1 de una serie. La mquina de Turing copiar el nmero de smbolos 1 que encuentre hasta el primer blanco detrs de dicho smbolo blanco. Es decir, situada sobre el 1 situado en el extremo izquierdo, doblar el nmero de smbolos 1, con un 0 en medio. As, si tenemos la entrada 111 devolver 1110111, con 1111 devolver 111101111, y sucesivamente. El conjunto de estados es {s1,s2,s3,s4,s5} y el estado inicial es s1. La tabla que describe la funcin de transicin es la siguiente: ESTADO s1 s2 s2 s3 s3 s4 s4 s5 s5 S.LEIDO 1 1 0 0 1 1 0 1 0 S.ESCRITO 0 1 0 1 1 1 0 1 1 MOV. R R R L R L L L R ESTADO SIG. s2 s2 s3 s4 s3 s4 s5 s5 s1

El funcionamiento de una computacin de esta mquina se puede mostrar con el siguiente ejemplo (en negrita se resalta la posicin de la cabeza lectora/escritora): PASO 1 2 ESTADO s1 s2 CINTA 11 01 4

3 4 5 6 7 8 9 10 11 12 13 14 15 PARADA

s2 s3 s4 s5 s5 s1 s2 s3 s3 s4 s4 s5 s1

010 0100 0101 0101 0101 1101 1001 1001 10010 10011 10011 10011 11011

La mquina realiza su proceso por medio de un bucle, en el estado inicial s1, reemplaza el primer 1 con un 0, y pasa al estado s2, con el que avanza hasta la derecha, saltando los smbolos 1 hasta un 0 (que debe existir), cuando lo encuentra pasa a ser s3, con este estado avanza saltando los 1 hasta encontrar otro 0 (la primera vez no habra ningn 1). Una vez en el extremo derecho, aade un 1. Despus comienza el proceso de retorno; con s4 vuelve a la izquierda saltando los 1, cuando encuentra un 0 (en el medio de la secuencia), pasa a s5 que contina a la izquierda saltando los 1 hasta el 0 que se escribi al principio. Se reemplaza de nuevo este 0 por 1, y pasa al smbolo siguiente, si es un 1, se pasa a otra iteracin del bucle, pasando al estado s1 de nuevo. Si es un smbolo 0, ser el smbolo central, con lo que la mquina se detiene al haber finalizado su cmputo.

Mquinas de Turing deterministas y no deterministas


La entrada de una mquina de Turing viene determinada por el estado actual y el smbolo ledo, un par [estado, smbolo], siendo el cambio de estado, la escritura de un nuevo smbolo y el movimiento las acciones a tomar en funcin de una entrada. En el caso de que para cada par estado y smbolo posible exista a lo sumo una posibilidad de ejecucin, se dir que es una mquina de Turing determinista, mientras que en el caso de que exista al menos un par [estado, smbolo] con ms de una posible combinacin de actuaciones se dir que se trata de una mquina de Turing no determinista. La funcin de transicin en el caso no determinista, queda definida como sigue: S: Q X T P(QX T X {L,R}) Cmo sabe una mquina no determinista cul de las varias actuaciones tomar? Hay dos formas de verlo: una es decir que la mquina es el mejor adivino posible, esto es, que siempre elige la transicin que eventualmente la llevar a un estado final de aceptacin. La otra es imaginarse que la mquina se clona, bifurcndose en varias copias, cada una de las cuales sigue una de las posibles transiciones. Mientras que una mquina determinista sigue un solo camino computacional, una mquina no determinista tiene un rbol computacional. Si cualquiera de las ramas del rbol finaliza en un estado de aceptacin, se dice que la mquina acepta la entrada. La capacidad de cmputo de ambas versiones es equivalente; se puede demostrar que dada una mquina de Turing no determinista existe otra mquina de Turing determinista 5

equivalente, en el sentido de que reconoce el mismo lenguaje, y viceversa. No obstante, la velocidad de ejecucin de ambos formalismos no es la misma, pues si una mquina no determinista M reconoce una cierta palabra de tamao n en un tiempo O(t(n)), la mquina determinista equivalente reconocer la palabra en un tiempo O(2t(n)). Es decir, el no determinismo permitir reducir la complejidad de la solucin de los problemas, permitiendo resolver, por ejemplo, problemas de complejidad exponencial en un tiempo polinmico.

Mquina Universal de Turing


Una mquina de Turing computa una determinada funcin parcial de carcter definido, y unvoca, definida sobre las secuencias de posibles cadenas de smbolos de su alfabeto. En este sentido se puede considerar como equivalente a un programa de ordenador, o a un algoritmo. Sin embargo es posible realizar una codificacin de la tabla que representa a una mquina de Turing, a su vez, como una secuencia de smbolos en un determinado alfabeto; por ello, podemos construir una mquina de Turing que acepte como entrada la tabla que representa a otra mquina de Turing, y, de esta manera, simule su comportamiento. En 1947, Turing indic: Se puede demostrar que es posible construir una mquina especial de este tipo que pueda realizar el trabajo de todas las dems. Esta mquina especial puede ser denominada mquina universal. Esta fue, posiblemente, la idea germinal del concepto de Sistema Operativo, un programa que puede, a su vez, ejecutar en el sentido de controlar otros programas, demostrando su existencia, y abriendo camino para su construccin real. Con esta codificacin de tablas como cadenas, se abre la posiblidad de que unas mquinas de Turing se comporten como otras mquinas de Turing. Sin embargo, muchas de sus posibilidades son indecidibles, pues no admiten una solucin algortmica. Por ejemplo, un problema interesante es determinar si una mquina de Turing cualquiera se parar en un tiempo finito sobre una determinada entrada; problema conocido como Problema de la parada, y que Turing demostr que era indecidible. En general, se puede demostrar que cualquier cuestin no trivial sobre el comportamiento o la salida de una mquina de Turing es un problema indecidible.

Mquina de Turing Cuntica

En 1985, Deutsch present el diseo de la primera Mquina Cuntica basada en una mquina de Turing. Con este fin enunci una nueva variante la tesis de Church dando lugar al denominado Principio de Church-Turing-Deutsch. La estructura de una mquina de Turing cuntica es muy similar a la de una mquina de Turing clsica. Est compuesta por los tres elementos clsicos: Una cinta de memoria infinita en que cada elemento es un Qu Bit Un procesador finito Un cursor

El procesador contiene el juego de instrucciones que se aplica sobre el elemento de la cinta sealado por el cursor. El resultado depender del Qu Bit de la cinta y del estado del procesador. El procesador ejecuta una instruccin por unidad de tiempo. La cinta de memoria es similar a la de una mquina de Turing tradicional. La nica diferencia es que cada elemento de la cinta de la mquina cuntica es un Qu Bit. El alfabeto de esta nueva mquina est formado por el espacio de valores del Qu Bit. El cursor es el elemento que comunica la unidad de memoria y el procesador. Su posicin se representa con una variable entera.

Conclusiones
En matemticas, lgica, y ciencias de la computacin, un lenguaje formal es un lenguaje cuyos smbolos primitivos y reglas para unir esos smbolos estn formalmente especificados. Al conjunto de los smbolos primitivos se le llama el alfabeto (o vocabulario) del lenguaje, y al conjunto de las reglas se lo llama la gramtica formal (o sintaxis). A una cadena de smbolos formada de acuerdo a la gramtica se la llama una frmula bien formada (o palabra) del lenguaje. Estrictamente hablando, un lenguaje formal es idntico al conjunto de todas sus frmulas bien formadas. A diferencia de lo que ocurre con el alfabeto (que debe ser un conjunto finito) y con cada frmula bien formada (que debe tener una longitud tambin finita), un lenguaje formal puede estar compuesto por un nmero infinito de frmulas bien formadas. Con el desarrollo del documento concluimos que la mquina de Turing consta de un cabezal lector/escritor y una cinta infinita en la que el cabezal lee el contenido, borra el contenido anterior y escribe un nuevo valor. Las operaciones que se pueden realizar en esta mquina se limitan a: avanzar el cabezal lector/escritor para la derecha; avanzar el cabezal lector/escritor para la izquierda. Una mquina de Turing con una sola cinta puede ser definida como una 6-tupla M = (Q,,s,b,F,), donde Q es un conjunto finito de estados es un conjunto finito de smbolos de cinta, el alfabeto de cinta s es el estado inicial b es un smbolo denominado blanco, y es el nico smbolo que se puede repetir un nmero infinito de veces F es el conjunto de estados finales de aceptacin es una funcin parcial denominada funcin de transicin, donde L es un movimiento a la izquierda y R es el movimiento a la derecha

Bibliografa

http://www.scribd.com/doc/16184681/Compiladores-Lenguajes-Formales-yGramatica http://www.mitecnologico.com/Main/LaMaquinaDeTuring

Anexos

Imgenes de mquina de Turing

10

You might also like