You are on page 1of 83

Teora de la Computacin

INSTITUTO TECNOLOGICO DE DURANGO

DEPARTAMENTO DE SISTEMAS Y COMPUTACION

ANTOLOGIA PARA LA MATERIA DE TEORIA DE LA COMPUTACION (Ingeniera en Sistemas Computacionales)

I.S.C Elda Rivera Saucedo

AGOSTO-DICIEMBRE 2008

____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo

Teora de la Computacin

I introduccin 1.1 Autmatas, computabilidad y complejidad. 1.2 Nociones matemticas. 1.2.1 Conjuntos 1.2.2 Funciones y Relaciones 1.2.3 Cadenas y Lenguajes 1.3 Induccin matemtica. 1.1 Autmatas, computabilidad y complejidad. Un autmata es: Una maquina (mecanismo) de naturaleza formal (solo existe como un mecanismo matemtico) Que acepta una informacin de entrada (input), La procesa (La somete a transformaciones simblicas que pueden adoptar la forma de un calculo o computacin ) y genera un resultado o salida (output) Definir un autmata equivaldra a definir el proceso de transformacin del input en un output, lo que equivale a definir una funcin cuyos argumentos son el input y cuyo valor es el output TIPOS DE AUTOMATAS(1) Hay muchos tipos de autmatas, cada tipo de autmata se asocia a una potencia computacional determinada, es decir a una capacidad dada de resolucin de problemas, de hecho, podemos clasificar los problemas algortmicamente solubles asocindolos al tipo de autmata que resuelve, estos tipos se ordenan en jerarqua de menor a mayor potencial computacional Jerarqua de autmatas: Autmatas finitos (Redes Lgicas) Autmatas intermedios: Autmatas de memoria de pila Autmatas de memoria linealmente limitada Maquinas de Turing TIPOS DE AUTOMATAS (2) Adems, podemos clasificar los autmatas: Por el tipo de proceso que ejecutan Aceptacin o reconocimiento Generacin Por su tipo de causalidad: Determinista ____________________________________________________________________ 2 _ I.S.C. Elda Rivera Saucedo

Teora de la Computacin No Determinista Por el tipo de su almacenamiento de informacin: De tamao fijo De tamao creciente De tamao infinito Por el tipo de la informacin que manejan Discreta Continua

TIPOS DE AUTOMATAS (3) Autmatas aceptadores o reconocedores: Resuelven problemas con respuestas si- no que se modeliza normalmente como la identificacin de dos estados finales uno de aceptacin y otro de rechazo. Autmatas generadores o transductores: Construyen una respuesta especfica (una salida) para el problema planteado Autmatas determinista: La solucin del problema viene unvocamente determinada por las entradas y los estados internos del autmata Autmatas no-deterministas: La respuesta no esta unvocamente determinada

1.1 NOCIONES MATEMTICAS 1.1 CONJUNTOS Un conjunto es una coleccin de objetos llamados elementos del conjunto. Si A es un conjunto y a es un elemento de A utilizaremos la notacin a A (se lee a es un elemento de A). Se usa la notacin b A cuando b no es un elemento de A. Si A contiene exactamente los elementos a1, a2, . . . . ., an, lo indicamos escribiendo A={a1,a2, . . . . ., an}. Un conjunto solo se caracteriza por sus elementos y no por el orden en el cual se listan. ____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo 3

Teora de la Computacin Los conjuntos A y B son iguales si contienen los mismos elementos. Por lo tanto si, A={1,2,3} y B={2,1,3} se puede escribir que A=B. Algunas veces es conveniente describir el contenido de un conjunto en trminos de un propiedad que sea caracterstica de todos los elementos del conjunto. Sea P(x) una proposicin sobre x. La notacin {xP(x)}, que se interpreta como el conjunto de todas las x tales que P(x) , denota el conjunto de todos los x para los cuales P(x) es una proposicin verdadera. (Todas las x tienen la propiedad P). Notacin de Conjuntos P = { x | P(x)}. See lee x tal que P(x) es verdadero. A= { x | x es una letra del alfabeto}. A= { a, b, c, d, e, . . . . . . . . . z}. Los conjuntos se representan de dos formas: Por extensin A={a, b, c, d, e, f, g, h, i, j, k, l, m, n, , o, p, q, r, s, . . . . . . . . . . . . } Por comprensin A={x | x es una letra del alfabeto} Conjunto Finito A={a, b, c, d, e, f, g, h, i, j, k, l, m, n, , o, p, q, r, s, t, u, w, x, y, z } Conjunto Infinito B={1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, . . . . . . . . . . . . . . . . . . . . }

1.2 OPERACIONES CON CONJUNTOS Las operaciones habituales que se definen sobre los conjuntos son: El conjunto 0 llamado conjunto vaco o nulo, no tiene elementos. El conjunto vaci es un subconjunto de todos los conjuntos.

____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo

Teora de la Computacin La unin de conjuntos A y B se denota por A B y es un conjunto formado por los elementos que aparecen en A, en B o en ambos. Por lo tanto A B={x A o x B}. x Por ejemplo, si A={1,2,3} y B={a,b}, entonces A B={1,2,3,a,b}. La interseccin de A y B es el conjunto de todos los elementos que aparecen simultneamente en A y tambin en B. Por lo tanto A B={x A y x B}. x Por ejemplo, si A={1,4,5,7} y B={2,4,7,8}, entonces A B={4,7}. El complemento relativo si Ay B son dos conjuntos cualesquiera, el complemento de B con respecto a A es el conjunto: A-B={ x A y x B}. x Por lo tanto, A-B esta compuesto por todos los elementos de A que no estn tambin, en B. Por ejemplo, si A={0,2,4,6,8,10} y B={0,1,2,3,4}, entonces AB=[6.8.10}, mientras que B-A={1,3}. A , el conjunto de potencia de A, es el conjunto formado por todos los 2 subconjuntos de A. A Por ejemplo, si A={a,b,c}. Entonces 2 ={ o, {a}, {b}, {c}, {a,b}, {a,c}, {b,c}, {a,b,c}}. Dados dos conjuntos A y B, su producto cartesiano, AxB, es el conjunto de todos los pares ordenados de los que el primer elemento proviene de A y el segundo de B. As que, AxB={(a,b) aA y bB}. Por ejemplo, si A={1,2,3} y B{5,6} entonces: AxB={(1,5), (2,5), (3,5), (1,6), (2,6), (3,6)}. Si A y B son conjuntos y todos los elementos de A son tambin elementos de B, se escribe A B y se dice que A es un subconjunto de B. Por ejemplo A={1,2,3} y B={0,1,2,3,4,5}, se tiene A B. Por otro lado B no es un subconjunto de A, porque los elementos 0,4 y 5 de B no lo son de A. Ejemplo: C ={Frutas} S = {frutas ctricas} S C <=> =Y x| x S = >X C Se lee: S es un subconjunto de C o S esta incluido en C si para todo x ( Y x). Tal que x pertenece al subconjunto de S, implica que x pertenece al conjunto C. = ____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo 5

Teora de la Computacin

La inclusin cuando cualquier elemento de A que este en B, o cualquier elemento de B que este en A, o que sean iguales. Por ejemplo si A={2,4,5,7,8} y B={2,4}, entonces B A={2,4}. La cardinalidad de un conjunto es el numero de elementos de ese conjunto. Por ejemplo si A={a,b} entonces | A | = 2. la cardinalidad del conjunto vaci es 0 porque no tiene ningn elemento. Todos los conjuntos aqu tratados se consideran subconjuntos de un conjunto universal U. Los complementos pueden ser formados con respecto a este conjunto universal. Si A es un conjunto, entonces U-A es el conjunto de todos los elementos que no estn en A. Conviene denotar tales complementos mediante A, de forma que U-A=A. Obsrvese que 0=U y U=0. 1.3 ALFABETOS ( ) Un alfabeto es un conjunto no vaci y finito de smbolos. En el caso del alfabeto ingles, la coleccin definida es el conjunto de las letras del alfabeto junto con los smbolos que se usan para construir palabras en ingles (tales como el guin, el apostrofe y otros por el estilo). Cada smbolo de un alfabeto es una cadena sobre dicho alfabeto. La cadena vaca, la cual se denota por el smbolo , es una palabra sobre cualquier alfabeto.

1.4 PROPIEDADES DE LAS CADENAS O STRINGS Una cadena (o palabra) es una secuencia finita de smbolo. Por ejemplo: a, b y c son smbolos y abcd es una cadena. 1.4.1 Cadena Vaca

La cadena vaca, denotada por , es la cadena que consiste en cero smbolos. Por tanto, tiene longitud | | = 0. 1.4.2 Longitud

Si w es una cadena sobre cualquier alfabeto, su longitud se denota como | w | . La longitud de w es el nmero de smbolos que tiene la cadena. Por ejemplo: abcd tiene longitud | w | = 4. ____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo 6

Teora de la Computacin

1.4.3

Concatenacin

La concatenacin de dos cadenas es la cadena que se forma al escribir la primera seguida de la segunda, sin que haya espacio entre ellas. Por ejemplo: si w=banana y z=rama, la concatenacin de w con z es la cadena bananarama. La concatenacin de las cadenas w y z se denota como wz o w.z. La cadena vaca es la identidad para el operador de concatenacin. Es decir, = w ||= z x= para cada cadena x=casa z=vacio w = roja . Xzw = casa roja xw = casaroja

1.4.4

Potencia
k

La nocin de potencia de una cadena sobre un alfabeto es dada por la notacin w que denota la concatenacin de k copias de la cadena w.

Por tanto, si W=122 sobre el alfabeto ={1,2}, se tiene: 0 W = 1 W = 122 2 W = 122122 3 W = 122122122 1.4.5 Igualdad de Cadenas Si w y z con cadenas, se dice que w es igual a z, si tienen la misma longitud y los mismos smbolos en la misma posicin. Se denota mediante w = z. 1.4.6 Prefijo Los prefijos de un cadena esta formados por los primeros smbolos de esta. Por ejemplo, la cadena 121 sus prefijos son: , 1, 12, y 121 con lo que toda palabra puede considerarse prefijo de si misma. Un prefijo de una cadena que no sea la misma cadena es u prefijo propio. 1.4.7 Sufijo 7

____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo

Teora de la Computacin Los sufijos de una cadena estn formados por los ltimos smbolos de esta. Por ejemplo, la cadena abc sus sufijos son: , c, bc, abc. Un sufijo de una cadena que no sea la misma cadena es un sufijo propio. 1.4.8 Subcadena. Una cadena w es una subcadena o subpalabra de otra cadena z si existen las cadena x e y para las cuales z = xwy. 1.4.9 Transpuestas

La inversa o transpuesta de una cadena w es la imagen refleja de w. Por ejemplo, si w = able entonces su inversa es elba. Para denotar la inversa de w se usa w`.

EJERCICIOS DE CONJUNTOs

A={1,2,3}
A B ={1,2,3,4,5,6} A B = {3} B A = {4,5,6} A B = {1,2}

B={4,5,6,3}

A 3 2 = 2 = 8 {0}, {1}, {2}, {3}, {1,2}, {1,3}, {2,3}, {1,2,3} B 4 2 =2 {4,5,6}, = 16 {0}, {4}, {5}, {6}, {3}, {4,5}, {4,6}, {4,3}, {5,6}, {5,3}, {6,3}, {4,5,3}, {5,6,3}, {4,6,3}, {4,5,6,3}

____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo

Teora de la Computacin

Producto Cartesiano

(1,4), (1,5), (1,6), (1,3), A x B = (2,4), (2,5), (2,6), (2,3), (2,4), (3,5), (3,6), (3,3) (3,4), (3,5), (3,6), (3,3) (4, 1), (4,2), (4,3) B x A= (5,1), (5,2), (5,3) (6,1), (6,2), (6,3) (3,1), (3,2), (3,3) Cardinalidad | A| =3

| B| =4

Ejercicios de Cadena

Z = {8532} Y= {Galeria} W= {Politica}


Ejercicio: Potencia

| Z| =4 | Y| =7 | W| =8

____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo

Teora de la Computacin C={15} 0 C = 1 C = 15 2 C = 1515 3 C = 151515 Ejercicio: Prefijos y Sufijos W= 475 Prefijos W=, 4, 47, 475 R=, l, lo, lop, lope, lopez L=, @, @$, @$% Sufijos W= , 5, 75, 475 R= , z, ez, pez, opez, lopez L= , &, $&, @$% Ejercicion: Longitud Z= 8532 =4 Ejercicio: Concatenacin 8532galeria2y galeriapoliticayv 8532politica2w galeria8532yz politicagaleriawy politica8532wz Ejercicio: Transpuesta ____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo 10 y= galeria =7 w =poltica =8 R= Lpez C =@$& V={Hola} 0 V = 1 V = Hola 2 V = HolaHola 3 V = HolaHolaHola

Teora de la Computacin A= anita B= roma A = atina B = amor

* Es el conjunto de todas las palabras que pueden ser construidas con letras o smbolos de + Es el conjunto de todas las palabras No vacas que pueden ser construidas por . Por ejemplo: {0,1,2} Decimos que un lenguaje es denotado por * para el alfabeto =

II Lenguajes Regulares
2.1 Expresiones regulares. 2.2 Lenguajes no regulares. 2.3 Autmatas finitos 2.3.1 Autmatas finitos No determinsticos. 2.3.2 Autmatas finitos determnisticos 2.3.2.1 Autmatas finitos no determinsticos con movimiento (afn- ). 2.3.2.2 Conversin de un afn a un afd 2.1 EXPRESIONES REGULARES Definicin: Es un metodo de representacin para cadenas de caracteres validas en un lenguaje. Una expresin regular, a menudo llamada tambin patrn, es una expresin que describe un conjunto de cadenas sin enumerar sus elementos. Por ejemplo, el grupo formado por las cadenas Handel, Hndel y Haendel se describe mediante el patrn "H(a||ae)ndel". La mayora de las formalizaciones proporcionan los siguientes constructores: una expresin regular es una forma de representar a los lenguajes regulares (finitos o infinitos) y se construye utilizando caracteres del alfabeto sobre el cual se define el lenguaje. Especficamente, las expresiones regulares se construyen utilizando los operadores unin concatenacin y clausura de Kleene.

____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo

11

Teora de la Computacin Terminologa. | Alternacin Una barra vertical separa las alternativas. Por ejemplo, "marrn|castao" casa con marrn o castao. Cuantificacin: Un cuantificador tras un carcter especifica la frecuencia con la que ste puede ocurrir. Los cuantificadores ms comunes son +, ? y *: + Mas El signo ms indica que el carcter al que sigue debe aparecer al menos una vez. Por ejemplo, "ho+la" describe el conjunto infinito hola, hoola, hooola, hoooola, etctera. ? Interrogacin El signo de interrogacin indica que el carcter al que sigue puede aparecer como mucho una vez. Por ejemplo, "ob?scuro" casa con oscuro y obscuro. * Asterisco El asterisco indica que el carcter al que sigue puede aparecer cero, una, o ms veces. Por ejemplo, "0*42" casa con 42, 042, 0042, 00042, etctera. Agrupacin: ( ) Parntesis () Los parntesis pueden usarse para definir una concatenacin con los dems operadores. Por ejemplo, "(p|m)adre" es lo mismo que "padre| madre", y "(des)?amor" casa con amor y con desamor. [ ] Corchetes Los corchetes se utilizan como opcion Por ejemplo: a[b]c, que forma las cadenas abc o ac. Los constructores pueden combinarse libremente dentro de la misma expresin, por lo que "H(ae?|)ndel" equivale a "H(a|ae|)ndel". La sintaxis precisa de las expresiones regulares cambia segn las herramientas y aplicaciones consideradas, y se describe con ms detalle a continuacin. Su utilidad ms obvia es la de describir un conjunto de cadenas, lo que resulta de utilidad en editores de texto y aplicaciones para buscar y manipular textos. Muchos lenguajes de programacin admiten el uso de expresiones regulares con este fin. Por ejemplo, Perl tiene un potente motor de expresiones regulares directamente incluido en su sintaxis. Las herramientas proporcionadas por las distribuciones de Unix (incluyendo el editor sed y el filtro grep) fueron las primeras en popularizar el concepto de expresin regular.

____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo

12

Teora de la Computacin Caractersticas de las expresiones regulares. 1.- Proporciona una notacin clara y concisa para componentes lxicos. 2.- Puede construir automticamente analizadores lxicos eficientes a partir de expresiones regulares. 3.- tiles para representar las estructuras de las construcciones o componentes lxicos de los identificadores, constantes y las palabras reservadas. Ejemplos de autmatas con sus expresiones regulares: La siguiente Expresin regular forma enteros, reales y reales con notacin cientfica. d+[. d+[ E(+ | -) dd] ] la d representa digito. Algunas cadenas formadas por la expresin son: 33 , 234.34 , 34.34E+02. El siguiente autmata representa la expresin regular anterior

d q0 d b
100

q1

q2
0

d b

q3

q4

+, -

q5

q6

d b

q7

200

300

100 200 300

Entero Real Real con Notacin Cientfica

____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo

13

Teora de la Computacin

El lenguaje del siguiente autmata, esta formado por cualquier cadena de 1s, incluyendo . 1 q0

La expresin regular del autmata es: 1*

El lenguaje del siguiente autmata esta formado por todas las cadenas de as de longitud par, incluyendo . a q0 a La expresin regular del autmata es: (aa)* El lenguaje del siguiente autmata esta formado por cadenas de cero ms as seguidas de cero ms bs. a b q0 q1 b q1

____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo

14

Teora de la Computacin

La expresin regular del autmata es: a*b*.

b
q1

a
q
0

a a b b
q2

La expresin regular del autmata es (a(a|b)+ | b+[ a(b+ | a(a|b)+)]) Existen muchas equivalencias con respecto a expresiones regulares basadas en las correspondientes igualdades de lenguajes. Por ejemplo: 1. a[ b]+ = a(b)* 2. x ( y+| z+) = ( x y+ | x z+) 3. (r*)* = r* 2.2LENGUAJES NO REGULARES Lenguaje regular Un lenguaje regular es un tipo de lenguaje formal que satisface las siguientes propiedades: ____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo 15

Teora de la Computacin

Puede ser reconocido por: un autmata finito determinista un autmata finito no determinista un autmata finito alterno una mquina de Turing de solo lectura

Es generado por: una gramtica regular una gramtica de prefijos

Es descrito por: una expresin regular

Lenguajes regulares sobre un alfabeto Un lenguaje recursivo sobre un alfabeto dado se define recursivamente como: El lenguaje vaco es un lenguaje regular El lenguaje cadena vaca {} es un lenguaje regular Para todo smbolo a {a} es un lenguaje regular

Si A y B son lenguajes regulares entonces A B (unin), AB (concatenacin) y A* (clausura o estrella de Kleene) son lenguajes regulares Si A es un lenguaje regular entonces (A) es el mismo lenguaje regular No existen ms lenguajes regulares sobre Todo lenguaje formal finito constituye un lenguaje regular. Otros ejemplos tpicos son todas las cadenas sobre el alfabeto {a, b} que contienen un nmero par de aes o el lenguaje que consiste en varias aes seguidas de varias bes. Si un lenguaje no es regular requiere una mquina con al menos una complejidad de (log log n) (donde n es el tamao de la entrada). En la prctica la mayora de los problemas no regulares son resueltos con una complejidad logartmica. ____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo 16

Teora de la Computacin Un lenguaje formal infinito puede ser regular o no regular. El lenguaje L = {an, n > 0} es regular porque puede ser representado, por ejemplo, mediante la expresin regular a+. El lenguaje L= {an bn, n > 0} es un lenguaje no regular dado que no es reconocido por ninguna de las formas de representacin anteriormente enumeradas.

Propiedades de cierre Los lenguajes regulares son cerrados con las siguientes operaciones, de modo que si L y P son lenguajes regulares los siguientes lenguajes tambin sern regulares: El complemento de L La clausura o estrella de Kleene L* de L El homomorfismo (L) de L La concatenacin L'P de L y P La unin L P de L y P La interseccin L P de L y P La diferencia L \ P de L y P El reverso LR de L

Decidir cundo un lenguaje es regular Para situar los lenguajes regulares en la jerarqua de Chomsky hay que notar que todo lenguaje regular es tambin un lenguaje independiente de contexto, aunque la afirmacin contraria no es cierta, por ejemplo: el lenguaje que contiene el mismo nmero de aes y de bes es independiente de contexto pero no regular. Para probar que un lenguaje de este tipo no es regular se usa el teorema de Myhill-Nerode, o el lema de bombeo por ejemplo. Hay dos aproximaciones puramente algebraicas para definir lenguajes regulares. Si es un alfabeto finito y * es un monoide libre consistente en todas las cadenas sobre , f: * M es un monoide simtrico donde M es un monoide finito y S es un subconjunto de M entonces el conjunto f-1(S) es regular. Todo lenguaje regular se presenta de esta manera.

____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo

17

Teora de la Computacin Si L es un subconjunto de *, se define la relacin equivalente ~ en * de la siguiente manera: u ~ v significa uw L si y solo si vw L para todo w * El lenguaje L es regular si y solo si el nmero de clases de equivalencia de ~ es finito; si este es el caso, este nmero es igual al nmero de estados del autmata determinista mnimo que reconocer L. Lenguajes finitos Un subconjunto especial de los lenguajes regulares es el de los lenguajes finitos, aquellos que solo contienen un nmero finito de palabras. Estos son lenguajes obviamente regulares y uno podra crear expresiones regulares que seran la unin de todas las palabras del lenguaje que definiran dicho lenguaje.

2.3 Autmatas finitos


El termino maquina evoca algo hecho en metal, usualmente ruidoso y grasoso, que ejecuta tareas repetitivas que requieren de mucha fuerza o velocidad o precisin. Ejemplos de estas mquinas son las embotelladoras automticas de refrescos. Su diseo requiere de conocimientos en mecnica, resistencia de materiales, y hasta dinmica de fluidos. Al disear tal mquina, el plano en que se le dibuja hace abstraccin de algunos detalles presentes en la mquina real, tales como el color con que se pinta, o las imperfecciones en la soldadura. El plano de diseo mecnico de una mquina es una abstraccin de sta, que es til para representar su forma fsica. Sin embargo, hay otro enfoque con que se puede modelar la mquina embotelladora: cmo funciona, en el sentido de saber qu secuencia de operaciones ejecuta. As, la parte que introduce el liquido pasa por un ciclo repetitivo en que primero introduce un tubo en la botella, luego descarga el lquido, y finalmente sale el tubo para permitir la colocacin de la cpsula (corcholata). El orden en que se efecta este ciclo es crucial, pues si se descarga el lquido antes de haber introducido el tubo en la botella, el resultado no ser satisfactorio. El modelado de una mquina en lo relacionado con secuencias o ciclos de acciones se aproxima mas al enfoque que adoptaremos en este tema. Las mquinas que estudiaremos son abstracciones matemticas que capturan solamente el aspecto referente a las secuencias de eventos que ocurren, sin tomar en cuenta ni la forma de la mquina ni sus dimensiones, ni tampoco si efecta movimientos rectos o curvos, etc. En esta parte estudiaremos las mquinas abstractas mas simples, los autmatas finitos, las cuales estn en relacin con los lenguajes regulares, como veremos a continuacin.

____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo

18

Teora de la Computacin

Descripcin informal del Funcionamiento de los autmatas finitos


Se le llama autmata finito, por que nos lleva a un termino o a un fin y nos sirve para representar un flujo de informacin o un estimulo, para formar cadenas pertenecientes a un lenguaje. Un lenguaje es el conjunto de cadenas aceptadas por un autmata. Sin embargo un Lenguaje no esta asociado a un nico autmata. Es mas , a un mismo lenguaje le podemos asociar siempre muchos autmatas que reconocen las cadenas en el.

Flujo de informacin q0 Estado inicial o Estimulo q1 Estado final

Nota: Los estados representados por dos crculos indican estados de aceptacin

El funcionamiento de los autmatas finitos consiste en ir pasando de un estado a otro, a medida que va recibiendo los caracteres de la palabra de entrada. Este proceso puede ser seguido fcilmente en los diagramas de estados. Simplemente hay que pasar de estado a estado siguiendo las flechas de las transiciones, para cada carcter de la palabra de entrada, empezando por el estado inicial. Por ejemplo, supngase que tenemos el autmata de la figura A la palabra de entrada bb. El autmata inicia su operacin en el estado q0 que es el estado inicia y al recibir la primera b pasa al estado q2, pues en el diagrama hay una flecha de q0 a q2 con la letra b. Luego, al recibir la segunda b de la palabra de entrada, pasara del estado q2 a el mismo, pues en la figura se puede ver una flecha que de q2 regresa al mismo estado, con la letra b. Podemos visualizar el camino recorrido en el diagrama de estados como una trayectoria recorrida de estado en estado. Por ejemplo, para el autmata finito de la figura A la trayectoria seguida para la palabra ab consiste en la secuencia de estados: q0, q1, q1. Los estados son el nico medio de que disponen los AF (Autmatas Finitos) para recordar los eventos que ocurren (por ejemplo, qu caracteres se han ledo hasta el momento); esto quiere decir que son maquinas de memoria limitada. En ltima instancia, las computadoras digitales son mquinas de memoria limitada, aunque la cantidad de estados posibles de su memoria podra ser enorme.

____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo

19

Teora de la Computacin

b
q1

a
q
0

a a b b
q2

Fig. A Notacin Grafica Definicin: Un Automata es: Una maquina (mecanismo) de naturaleza formal (solo existe como un mecanismo matemtico ) Que acepta una informacin de entrada (input), La procesa (La somete a transformaciones simblicas que pueden adoptar la forma de un calculo o computacin ) y genera un resultado o salida (output) Definir un autmata equivaldra a definir el proceso de transformacin del input en un output, lo que equivale a definir una funcin cuyos argumentos son el input y cuyo valor es el output. Definicin: Un autmata finito es un modelo matemtico formado por un quntuplo (Q, , , q0, F) donde: Q es un conjunto finito de estados. un alfabeto de entrada finito. ____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo 20

Teora de la Computacin q0 elemento de Q , el estado inicial. F Q el conjunto de estados finales o de aceptacin. es la funcin : Q x Q que determina el nico estado siguiente para el par (q1, ) correspondiente al estado actual q1 y la entrada .

2.3.1 AUTMATAS FINITOS DETERMINSTICOS (AFD).


Las caractersticas de los autmatas finitos determinsticos son: 1. Un conjunto finito de estados y un conjunto de transiciones de estado a estado, que se dan sobre smbolos de entrada tomados de un alfabeto . 2. Para cada smbolo de entrada existe exactamente una transicin a partir de cada estado (posiblemente de regreso al mismo estado). 3. Un estado, por lo general denotado como q0 es el estado inicial, en el que el autmata comienza. 4. Algunos estados (tal vez ninguno) estn designados como final o de aceptacin. 5. Un autmata finito determinstico es un quintuplo (Q, , , q0, F) donde: Q es un conjunto finito de estados. un alfabeto de entrada finito. q0 elemento de Q , el estado inicial. F Q el conjunto de estados finales o de aceptacin. es la funcin : Q x Q que determina el nico estado siguiente para el par (q1, ) correspondiente al estado actual q1 y la entrada . Generalmente el trmino autmata finito determinstico se abrevia como DFA de sus siglas en ingls Deterministic Finite Automaton. Usaremos M = (Q, , q0, F, ) para indicar el conjunto de estados, el alfabeto, el estado inicial, el conjunto de estados finales y la funcin asociadas con la M (maquina o autmata ) del AFD. Se puede construir un diagrama para que ayude a determinar los distintos miembros o cadenas del lenguaje. Tal diagrama tiene la forma de un grafo dirigido con informacin aadida, y se llama diagrama de transicin. Los nodos del grafo corresponden a los estados del AFD y se usan para sealar, en ese momento, hasta qu lugar se analiz la cadena. Por lo general q 0 es el estado inicial, marcando con una flecha (), el comienzo del autmata; algunos estados estn designados como final o aceptacin indicados por un doble crculo. Los ____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo 21

Teora de la Computacin smbolos del alfabeto son las etiquetas de los arcos del grafo. Si cuando ha sido tratada la cadena en su totalidad se termina en un estado de aceptacin entonces la cadena es aceptada por el lenguaje. Si M es un AFD, entonces el lenguaje aceptado por M es L(M)={w * es aceptada por M}. Por tanto, w L(M) es el conjunto de cadenas que hacen que M pase de su estado inicial a un estado de aceptacin. Un AFD es un caso especial de un autmata finito no deterministico (AFND) en el cual: 1.- Ningn estado tiene una transicin vaci 2.- Para cada estado q y cada smbolo de entrada a, hay a lo sumo una arista etiquetada con a que sale del estado q Un AFD tiene una transicin desde cada estado con cualquier entrada. Si se esta usando una tabla de transiciones para representar la funcin de transicin de un AFD entonces cada entrada en la tabla de transiciones es un solo estado . Como consecuencia es muy fcil determinar si un autmata finito determinista acepta o no una cadena de entrada puesto que hay un camino desde el estado de inicio con esa cadena . Ejemplo 1: El lenguaje que acepta el AFD esta formado por todas las cadenas sobre el alfabeto = {a, b}, siempre y cuando terminen con a. Q = {q0, q1}, = {a, b}, q0 = q0 , F = {q1} y se define mediante la tabla de la figura 1.1 ( Tabla de transiciones o Matriz de Transicin ). Matriz de Transicin o Tabla de Transiciones : Es una matriz bidimensional (Q \ )= en donde del lado de las columnas esta el alfabeto de entrada y los reglones representan los estados del autmata Nos sirve para representar las transiciones en el autmata. q0 q1
Q3

a q1 q1

b q0 q0

Figura 1.1. Diagrama de Transicin (Autmata). b a a

____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo

22

Teora de la Computacin q0 q1 b

Ejemplo 2 : El lenguaje que acepta el AFD esta formado por todas las cadenas sobre el alfabeto = {a, b}. En donde: Q = {q0, q1, q2}, = {a, b}, q0 = q0 , F = {q1, q2} y se define mediante la tabla de la figura 2.1 ( Tabla de transiciones o Matriz de Transicin ) o bien para una cadena en especifico como seria la cadena abb = para la cadena abb q0,a = { q1 } q1,b = { q1} q1,b = { q1} cadena aceptada, ya que el estado 1 es de aceptacin . b
q1

a
q
0

a a b b
q2

q0 q1 q2

A q1 q1 q0 Figura. 2

B q2 q1 q2

____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo

23

Teora de la Computacin

Ejemplo 3: El AFD M = {Q, , q0, F, } acepta el lenguaje L(M) = {w {a, b}* que no contiene tres bs consecutivas} y esta representada por: Q={q0, q1, q2, q3} ={a, b} q0=q0 F={q0, q1, q2} y dada por la tabla de la figura 3.1. q0 q1 q2 q3
Q3

a q0 q0 q0 q3

b q1 q2 q3 q3

Figura 3.1. El diagrama de transicin correspondiente se muestra en la figura 3.2. a b q0 a q1 b q2 b q3 a, b

____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo

24

Teora de la Computacin a Figura 3.2

Ejemplo 4 : El lenguaje que acepta el AFD esta formado por todos los nmeros tales como enteros, reales, y reales con notacin cientfica sobre alfabeto = {d(representa un digito), . , E, +,- }. En donde se utiliza el blanco como delimitador entre un numero y otro al momento de analizar En donde: Q = {q0, q1, q2, q3, q4, q5, q6, q7 } = {d, . , E, +,- } q 0= q 0 F = {200,300,400} se define mediante la tabla de la figura 4.1

d q0 d b
100

q1

q2
0

d b

q3

q4

+, -

q5

q6

d b

q7

200

300

100 200 300

Entero ( ejem. 31416 ) Real (ejem. 3.14 ) Real con Notacin Cientfica (ejem. 3.1416E-03)

b : es un Delimitador (blanco) el cual nos indica hasta donde analizar la cadena. Ejemplo: Cuando escribimos una carta, para separar entre una palabra y otra , utilizamos el espacio en blanco, igual en nuestro lenguaje podemos separar entre una cadena de caracteres y otra por medio de un ____________________________________________________________________ 25 blanco para as especificar hasta donde se analizaran nuestras _ cadenas, igual podra ser una tabulador o un enter, etc. en el diseo de I.S.C. Elda Rivera Saucedo nuestro lenguaje nosotros especificamos cual ser nuestro delimitador

Teora de la Computacin

Nota: 3.14 es una cadena de caracteres la cual forma un Entero

Definicin : Token: A una secuencia de caracteres que tiene un significado colectivo se le conoce con el nombre de Token. Es el resultado final de analizar una cadena de caracteres dentro de un lenguaje a la cual se le asigna un nombre. Es el resultado generado por el Analizador Lxico para un determinado lenguaje el cual definir cuando se ha llegado a un estado de terminacin valido o incorrecto. Definicin: Analizador Lxico Llamado tambin anlisis lineal, es el proceso de exploracin en el cual la cadena de caracteres que constituye el programa fuente se lee de izquierda a derecha y se agrupa en componentes lxicos .

Q\ 0 1 2 3 4 5 6 7

d 1 1 3 3 error 6 7 error

. error 2 error error error error error error

E error error error 4 error error error error

+ error error error error 5 error error error

Error Error Error error 5 error error error

blanco error 100 error 200 error error error 300

Nota: Los estados 100,200,300 son los estados de Aceptacin

Figura 4.1

____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo

26

Teora de la Computacin

2.3.2 AUTMATAS FINITOS NO DETERMINISTICOS (AFN) Definicin: Un AFN se puede representar diagramticamente mediante un grafo de transiciones en el que los nodos son los estados y las aristas etiquetadas representan la funcin de transicin. Este grafo se parece a un diagrama de transiciones que para el mismo carcter puede etiquetar 2 o mas transiciones fuera de un estado y las aristas pueden etiquetarse con el smbolo especial vaci ( o ) y con smbolos de entrada. Definicin: Un autmata finito no determinstico es un quintuplo ( Q, , q0, , F) en donde Q, , q0 y F (estados, entradas, estado inicial y estados finales) poseen el mismo significado que para un AFD, pero en este caso es una transformacin de Q x a 2Q. (Recurdese que 2Q es el conjunto de potencias de Q, el conjunto de todos los subconjuntos de Q). Obsrvese que puesto que es una relacin para todo par (q, ) compuesto por el estado actual y el smbolo de la entrada, (q, ), es una coleccin de cero o ms estados [es decir, (q, )Q]. Esto indica que, para todo estado q1 se pueden tener cero o ms alternativas a elegir como estado siguiente, todas para el mismo smbolo de entrada. Generalmente el trmino autmata finito no determinstico se abrevia como NFA de sus siglas en ingls Nondeterministic Finite Automaton. Si M es un NFA, definiremos el lenguaje aceptado por M por medio de L(M)={w es una w cadena aceptada por M} donde una cadena w es aceptada por M, si M pasa de su estado inicial a su estado de aceptacin o final al recorrer la cadena w (w es consumida en su totalidad). Observe ahora el diagrama de transicin de la figura 5.1 a q0 a b q3 q4 ____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo b 27 a b q2

q1

Teora de la Computacin

Figura 5.1 El AFN descrito anteriormente acepta el lenguaje formado por cualquier nmero (incluyendo el cero) de as, concatenadas a una b una a concatenada a cualquier numero (incluyendo el cero) de bs . Se representa de la siguiente forma: Q={q0, q1, q2, q3, q4} F={q2, q3, q4} q0=q0 ={a, b} Y dada por la tabla de la figura 5.2.

Estados q0 q1 q2 q3 q4
Q3

a {q1, q4} {q1} error error error Figura 5.2.

b {q3} {q2} error error { q4}

Obsrvese que en el contenido de las celdas de la tabla de transicin de la figura 5.2. son conjuntos. El hecho de que existan celdas con error, indica que no existe ninguna transicin desde el estado actual mediante la entrada correspondiente. Que para un par (estado actual, entrada) exista ms de un posible estado siguiente indica que se puede elegir entre las distintas posibilidades. En el modelo no existe nada que determine la eleccin. Por esta razn, se dice que el comportamiento del autmata es no determinista. Para analizar la cadena abba las transiciones serian las siguientes (q0,a )= { q1, q4} ( Elegimos una de las 2, en este caso sera q1) (q1,b )= { q2 } (q2,b )= { error} ____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo 28

Teora de la Computacin

Obsrvese que no llegamos a un estado de aceptacin eligiendo por el camino de q1 en donde se nos da la opcin de elegir cualquiera de los 2 estados { q 1, q 4} Ahora bien debemos elegir el otro estado para verificar si por este otro camino dicha cadena seria valida o no . Analizando..... (q0,a )= { q1, q4} ( Elegimos una de las 2, en este caso ahora tomaremos el estado q4) (q4,b )= { q4 } (q4,b )= { q4 } (q4,a )= { error} Por este camino tampoco se llega a un estado de aceptacin por lo que se concluye que la cadena abba no es valida para este lenguaje Aqu es donde notamos como un AFN nos da la opcion de 2 caminos a elegir por lo que se necesita hacer el seguimiento por los 2 caminos para determinar si es o no valida la cadena , ya que puede darse el caso que por un camino no sea valida y por otro si , por esta razon se dice que es un AF no determinista , ya que no nos determina el camino a seguir como lo hace un AFD, este nos da un solo camino desde el estado de inicio al final para una cadena , es decir nos determina el camino a seguir.

Ejemplo 6: Consideremos el AFN M={ Q, , q0, F, } que acepta el lenguaje formado por cadenas que tienen cero o ms ocurrencias de ab aba y esta dado por: Q={q0, q1, q2} ={a, b} q0=q0 F={q0} Y dada por la tabla de la figura 6.1. Este NFA tiene el correspondiente diagrama de transicin que se muestra en la figura 6.2.

Estados

b 29

q0 {q1} error ____________________________________________________________________ q1 error {q0, q2} _ q2 {q0} error I.S.C. Elda Rivera Saucedo
Q3

Teora de la Computacin

Figura 6.1.

a b q0 q1

q2

Figura 6.2. Ejemplo 7: Consideremos el AFN M = { Q, , q0, F, } que acepta el lenguaje formado por cadenas que tienen cero o ms ocurrencias de a b y estas tienen la terminacin abb dado por el siguiente diagrama de transiciones a q0 a q1 b q2 b q3

b En donde: Q = { 0,1,2,3 } q0 = {0} F = {3} = {a ,b} = para la cadena abb q0,a = {0,1 }, q1,b = {2}, q2,b = {3}

cadena aceptada en el estado 3

2.3.2.1 AUTMATAS FINITOS NO DETERMINSTICOS CON MOVIMIENTO (AFN- ). Un autmata finito no determinstico con movimiento (entrada vaca) es como el quintuplo ( Q, , , q0, F) con todos sus componentes igual que a un AFN, con excepcin de , la funcin de transicin, que ahora transforma Q x ( { }) a 2Q; para incluir transiciones de un estado a otro que no dependan de ____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo 30

Teora de la Computacin ninguna entrada. Se puede aadir una columna en la tabla de para colocar los pares de la forma (qi, ). Cuando hay -transiciones en un AFN es conveniente suponer que cada estado tiene una -transicin que cicla en ese estado. El siguiente diagrama de transicin representa un AFN- que acepta el lenguaje L(M) = { w {a, b} que contiene solo una o mas as consecutivas o una o mas bs consecutivas } a 0 3 b 4 1 a 2 b

En donde: Q = { 0,1,2,3,4 } q0 = {0} F = {2,4} = {a ,b, } = para la cadena bb : (q0, )={1,3}, (q3,b) ={4}, (q4,b) = {4} cadena aceptada en el estado 4 Observe el ejemplo del diagrama de transicin de la figura 7.1, que acepta el lenguaje consistente en cualquier nmero (incluyendo el cero) de 0s seguidos por cualquier nmero de 1s seguido, a su vez, por cualquier nmero de 2s y cuya tabla de transicin es mostrada por la figura 7.2. 0 q0 1 q1 2 q2

Figura 7.1

Q \ q0

0 {q0}

1 error

2 error

{q1} 31

q1 error {q1} error {q2} ____________________________________________________________________ _ q2 error error {q2} error I.S.C. Elda Rivera Saucedo
Q3

Teora de la Computacin

Figura 7.2 Ejemplo 8: El siguiente diagrama de transicin acepta el lenguaje formado por cadenas que tienen cero o ms ocurrencias de ab aba.

a q0 a, q1

q2

El AFN- anterior tendra la siguiente tabla de transicin Q \ q0 q1 q2


Q3

a {q1} error {q0}

b error {q2} error

error error {q0}

TEOREMAS Teorema1.- Cualquier conjunto aceptado por un AFN- por un AFD ser aceptado

____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo

32

Teora de la Computacin a 1 a 2 b 3 b 4 0 b 2 a 1 b a

AFN 0

AFD

Teorema 2.-Cualquier conjunto aceptado por un AFN ser aceptado por un AFD a 0 a 1 0 a 1 a

AFN

AFD

Teorema 3.- Sea M = ( Q, , q0, , F) a un AFN. Entonces existe un AFD M = ( Q, , q0, , F) que es equivalente a M. Teorema 4.- Si L es aceptado por un AFN con transiciones vaco( ), entonces L es aceptado por un AFN sin transiciones vaco( ). AUTMATA FINITO DETERMINISTICO (AFD) Ventajas: Es muy fcil determinar si un AFD acepta o no una cadena de entrada puesto que hay un solo camino desde el estado de inicio etiquetado con esa cadena Desventaja: Por lo general es mas difcil el diseo de un AFD que el de una AFN AUTMATA FINITO NO DETERMINISTICO (AFN) Ventajas: La tabla de transiciones proporciona rpido acceso a las transiciones de un determinado estado en un carcter dado. Desventajas: ____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo 33

Teora de la Computacin Puede ocupar gran cantidad de estados cuando el alfabeto de entrada es grande y la mayora de las transiciones son hacia el conjunto vaci. 2.3.2.2CONVERSION DE UN AFN A UN AFD Se dice que dos autmatas son equivalentes si aceptan el mismo lenguaje. Un AFD puede ser fcilmente un AFN, con solo agregar transiciones vaci ( ) que no alteren a este o bien 2 transiciones a estados diferentes, igual sin alterar el lenguaje aceptado por dicho AFD , pero no viceversa. Sin embargo, existe un procedimiento para convertir un AFN a un AFD. Un AFD es un AFN debido a que cumple las caractersticas de sus parmetros, sin embargo cuando queremos transformar un AFN en un AFD, debemos cuidar las transiciones. Es vlida la transformacin y siempre es posible realizarla. Los AFD son los mas sencillos de construir, por lo tanto, puede ser til disear un autmata complejo como un AFN con o sin transiciones para luego transformarlo a un AFD para su implementacin. En la conversin de un AFN a un AFD el AFD esta formado por estados que son un conjunto de estados del AFN Ejemplo: Convertir el siguiente AFN en un AFD

b 0 b 1 a 2
AFN

a
El primer paso es determinar el estado de inicio del nuevo autmata, por lo que vamos a dar el nombre de los nuevos estados, con las letras del alfabeto para no confundirlos con los estados del AFN , as que para el estado de inicio ser la letra A y as sucesivamente como se vayan generando los nuevos estados. Entonces el estado A estar formado por el estado de inicio del AFN mas todos los estados que me lleven con una transicin desde el estado de inicio ____________________________________________________________________ 34 _ I.S.C. Elda Rivera Saucedo

Teora de la Computacin a otros estado nicamente con el vaci si es que hubiera alguna transicin. Para este autmata no es el caso entonces nuestro estado de inicio quedara de la siguiente forma: A = {0} Siguiente paso, hacer el anlisis de transiciones en el AFN con cada una de las entradas del alfabeto partiendo del estado A, que en este caso es el estado 0 del AFN ; entonces del estado 0 con una a no existe transicin y del estado 0 con una b existe una transicin al estado 1 y al estado 2 por lo que quedara de la siguiente forma : A, a = { } A, b = { 1,2} = B El conjunto formado por el estado 1 y 2, ser un nuevo estado al cual le daremos el nombre de B, para llevar una secuencia de las letras del alfabeto, ste ser analizado de la misma forma que el estado A, y as sucesivamente con cada estado nuevo que se genere, hasta no tener nuevos estados que analizar, recordando que se analiza con cada entrada del alfabeto del AFN aun y cuando no hay transicin, es conveniente hacer el anlisis para evitar que se nos pase alguna transicin. Ahora analicemos B; que son los estados 1 y 2 , del estado 1 hay una transicin con a al estado {0,2 y del estado 2 no hay transicin con a entonces solo estar formado por {0,2}, que es un nuevo conjunto de estados al cual le daremos el nombre de C, Ahora analicemos B(Estados 1,2) con b, de los estados 1 y 2 no existe ninguna transicin con el smbolo b, entonce el estado B quedaria de la siguiente forma: B,a = {0,2} = C B,b = { } As se analizara cada uno de los nuevos estados que resulte y se tiene: A, a = { } A, b = { 1,2} = B B, a = {0,2} = C B, b = { } C, a = { } C, b = {1,2 }=B
Nota: decamos que los nuevos estados del autmata sern un conjunto de estados del AFN por tal motivo los representamos entre llaves, que indican conjunto.

Con los nuevos estados resultantes se disea el autmata nuevo que deber ser un AFD y este deber analizar todas y cada una de las cadenas que analiza el el anterior autmata el AFN y de igual forma las cadenas que este no acepte el nuevo autmata tampoco las deber aceptar. ____________________________________________________________________ 35 _ I.S.C. Elda Rivera Saucedo

Teora de la Computacin

Los estados de aceptacin para el nuevo autmata sern todos aquellos estados que contengan el estado de aceptacin del autmata original, es decir los que contengan el estado 2 que para este caso lo contienen el B y el C El autmata resultante es: b a b representado en conjunto de estados es: b a b Conversin de un AFN- a un AFD AFD Dddd dD

1,2

0,2

Se siguen los mismos pasos que para la conversin anterior , en este autmata si utilizaremos las transiciones vaci ( o ), para pasar de un estado a otro sin cargar ningn carcter, y solo tomar el que necesitemos analizar. Ejemplo: Convertir el siguiente AFN- a un AFD a 1 a 2 b 3 b 4

AFN 0

A = {0, mas todos los estados a los que se puede llegar con el smbolo } Entonces: ____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo 36

Teora de la Computacin A = {0,1,3} Analizando...... A, a = {2} = B A, b = {4} = C B, a = {2} = B B, b = { } C, a = { } C, b = {4} = C Nota: No se hace el anlisis con el solo se utiliza para pasar de un estado a otro.

a a A b C b B AFD

____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo

37

Teora de la Computacin

Actividades a realizar por el alumno: Buscar y analizar acerca de lo que es un autmata y cuales son los diferentes tipos que hay analizar y desarrollar ejercicios de Autmatas a partir de expresiones regulares dadas y anlisis de los mismos. Realiza ejercicios para la representacin de lenguajes por medio de AFN, AFN- , AFD y expresiones regulares .

EJERCICIOS. * Ejercicio resuelto para su anlisis. *2.1. Describa el lenguaje aceptado por el DFA representado por el diagrama de transicin de la figura 2.19 b q0 b a q1 a

q2 a, b Figura 2.19.

El lenguaje esta formado por cadenas que tienen cero o ms ocurrencias de ab y su expresin regular es (ab)*. 2.2. Construya el diagrama de transicin y describa el lenguaje que acepta el siguiente autmata finito determinstico: Sea M={Q, , q0, F, } dado por: ____________________________________________________________________ 38 _ I.S.C. Elda Rivera Saucedo

Teora de la Computacin Q = {q0,q1,q2,q3} = {0,1} F = {q0} q0 = q0 y dada por la tabla de la figura 2.20. q0 q1 q2 q3 0 q2 q3 q0 q1 1 q1 q0 q3 q2

Figura 2.20. 2.3. Proporcione los DFAS que acepten los siguientes lenguajes sobre el alfabeto {0,1}: a) El conjunto de todas las cadenas que terminen en 00 b) El conjunto de todas las cadena que posean tres 0s consecutivos. *2.4. Dado ={0, 1} construya el diagrama (ver figura 2.21.) y tabla de transicin (ver figura 2.22) para el AFN que acepte el lenguaje formado por todas las cadenas que contengan dos ceros dos unos consecutivos. 0, 1 q0 1 q1 1 q2 0, 1 0 q3 0 0, 1 q4

Figura 2.21. ____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo 39

Teora de la Computacin

Figura 2.22. Estados/ Alfabeto q0 q1 q2 q3 q4 0 { q0, q3} error {q2} {q4} {q4} 1 { q0, q1} {q2} {q2} error {q4}

2.5. Sea M el AFN dado por Q = {q0, q1}, ={a,b}, q0= q0, F={q1} y dada en la figura 2.23. Determinar si la cadena ba estan en L(M). Dibujar el diagrama de transicin para M. Estados q0 q1 a {q0, q1} Figura 2.23. *2.6. Construya los diagramas de transicin para los AFN con movimiento y describa su lenguaje. 1 q3 b {q1} {q0, q1}

q0

q1

q2

1* L={Cualquier cadena de 1s incluyendo }

a b ____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo q1 q


0

40

Teora de la Computacin

Figura 2.24. a*b* L={Cadenas de cero o ms as concatenadas a cadenas de cero o ms bs}

2.7. Construya la tabla de transicin y describa el lenguaje que acepta el AFN con movimiento , dado el diagrama de transicin de la figura 2.24. q0 a b q1 b a q5 b q2 a q3

q4

*2.8. Encontrar las expresiones regulares correspondientes a las figuras 2.25, 2.26, 2.27 y 2.28 a,b q0

____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo

41

Teora de la Computacin Figura 2.25.

(a | b)*

L={Cadenas sobre ={a, b}, que tienen cero ( ) ms ocurrencias de as bs}

a,b q0 a q1

b Figura 2.26. b*a(a|b)* L={Cadenas sobre ={a,b}, que contienen al menos una a} a q0 a Figura 2.27. (aa)* L={Cadenas de as de longitud par, incluyendo } q1

a b q0

b a q1

a, b q2 42

____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo

Teora de la Computacin

Figura 2.28. A*b* L={Cadenas de cero o ms as concatenadas a acero o ms bs}

Criterios de Acreditacin: Anlisis de los temas.............................................................................. .......10% Tareas (Ejercicios Resueltos)........................................................................ 30%. Herramienta generadora de cdigo libre de errores a partir de autmatas.....30% Examen escrito...............................................................................................30%

____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo

43

Teora de la Computacin

III Lenguajes Libres De Contexto 3.1 Gramticas libres de contexto. 3.2 rboles de derivacin. 3.3 Formas normales de Chomsky. 3.4 Formas normales de Greibach. 3.5 Eliminacin de Factores Comunes izquierdos. 3.6 Eliminacin de recursividad izquierda. 3.7 Eliminacin de la ambigedad. 3.8 Autmatas Push-Down. 3.9 Lenguajes no regulares. 3.1 Gramticas Libres de Contexto Que es una Gramtica.? Una gramtica es un conjunto finito de reglas que determinan un lenguaje. El lenguaje determinado por una gramtica G se denotara por L(G) si L(G1)=L(G2) entonces G1=G2 son equivalentes Una gramtica es un cudruplo G = {VT ,VN , S ,P} En donde: VT = Conjunto finito de smbolos o elementos terminales VN = Conjunto finito de smbolos o elementos no terminales S = Produccin inicial que pertenece a VN P = Conjunto de producciones o de reglas de derivacin . Todos las cadenas del lenguaje definido por una gramtica estn formadas con smbolos terminales (VT) El conjunto de smbolos no terminales (VN ) son smbolos introducidos como elementos auxiliares para la definicin de la gramtica dentro de los cuales se encuentra S que es el smbolo inicial a partir del cual se aplican las ____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo 44

Teora de la Computacin reglas de la gramtica para obtener las distintas cadenas del lenguaje . Las producciones son las reglas que se aplican para obtener las cadenas del lenguaje. El conjunto de producciones P se define por medio de la enumeracin de las distintas producciones, en forma de reglas o por medio de un metalenguaje por ejemplo BFN (Backus Naur Form ) Ejemplo: La siguiente gramtica nos sirve para determinar una oracin <S><ORACION> <ORACION> <SUJETO><PREDICADO> <SUJETO> <ARTICULO><SUSTANTIVO><ADJETIVO> <ARTICULOS> EL | La | Lo | Las | Los | Un | Una | Uno |Unas <SUSTANTIVOS> Caballo | Elefantes | Cacahuates | Rosales <ADJETIVOS> Blanco | Morado | Verde | Bonito | Feo <PREDICADO> <VERBO> <COMPLEMENTO> <VERBO> Come | Corre | Vuela | Salta <COMPLEMENTO> <OBJETO DIRECTO> | <OBJETO DIRECTO> <ARTICULO><SUSTANTIVO><ADJETIVO> Nota : la flecha indica produce de aqu el nombre de producciones es el smbolo vaco .

3.2 rboles de derivacin


Existen bsicamente dos formas de describir cmo en una cierta gramtica una cadena puede ser derivada desde el smbolo inicial. La forma ms simple es listar las cadenas de smbolos consecutivas, comenzando por el smbolo inicial y finalizando con la cadena y las reglas que han sido aplicadas. Si introducimos estrategias como reemplazar siempre el no terminal de ms a la izquierda primero, entonces la lista de reglas aplicadas es suficiente. A esto se le llama derivacin por la izquierda. Por ejemplo, si tomamos la siguiente gramtica: : (1) S S + S : (2) S 1 y la cadena 1 + 1 + 1, su derivacin a la izquierda est en la lista [ (1), (1), (2), (2), (2) ]. Anlogamente, la derivacin por la derecha se define como la lista que obtenemos si siempre reemplazamos primero el no terminal de ms a la derecha. En ese caso, la lista de reglas aplicadas para la derivacin de la cadena con la gramtica anterior sera la [ (1), (2), (1), (2), (2)]. La distincin entre derivacin por la izquierda y por la derecha es importante porque en la mayora de analizadores la transformacin de la entrada es definida ____________________________________________________________________ 45 _ I.S.C. Elda Rivera Saucedo

Teora de la Computacin dando una parte de cdigo para cada produccin que es ejecutada cuando la regla es aplicada. De modo que es importante saber qu derivacin aplica el analizador, por que determina el orden en el que el cdigo ser ejecutado. Una derivacin tambin puede ser expresada mediante una estructura jerrquica sobre la cadena que est siendo derivada. Por ejemplo, la estructura de la derivacin a la izquierda de la cadena 1 + 1 + 1 con la gramtica anterior sera: :SS+S (1) :SS+S+S (1) :S1+S+S (2) :S1+1+S (2) :S1+1+1 (2) : { { { 1 }<sub>S</sub> + { 1 }<sub>S</sub> }<sub>S</sub> + { 1 }<sub>S</sub> } <sub>S</sub> donde { }<sub>S</sub> indica la subcadena reconocida como perteneciente a S. Esta jerarqua tambin se puede representar mediante un rbol sintctico:

s s s +
1

+ s
1

s
1

La derivacin por la derecha: :S S + S (1) :S 1 + S (2) :S 1 + S + S (1) :S 1 + 1 + S (2) :S 1 + 1 + 1 (2) define el siguiente rbol sintctico:

____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo

46

Teora de la Computacin

s s
1

+ s
1

s + s
1

Si para una cadena del lenguaje de una gramtica hay ms de un rbol posible, entonces se dice que la gramtica es ambigua Normalmente estas gramticas son ms difciles de analizar por que el analizador no puede decidir siempre que produccin aplicar. 3.3 Formas normales de Chomsky. En lingstica la jerarqua de Chomsky es una clasificacin jerrquica de distintos tipos de gramticas formales que generan lenguajes formales. Esta jerarqua fue descrita por Noam Chomsky en 1956.

La Jerarqua de Chomsky consta de cuatro niveles:

Gramticas de tipo 0 (sin restricciones), que incluye a todas las gramticas formales. Estas gramticas generan todos los lenguajes capaces de ser reconocidos por una mquina de Turing. Los lenguajes son conocidos como lenguajes recursivamente enumerables. Ntese que esta categora es diferente de la de los lenguajes recursivos, cuya decisin puede ser realizada por una mquina de Turing que se detenga.

Gramticas de tipo 1 (gramticas sensibles al contexto) generan los lenguajes sensibles al contexto. Estas gramticas tienen reglas de la forma con A un no terminal y , y cadenas de terminales y no terminales. Las cadenas y pueden ser vacas, pero no puede serlo. La regla est permitida si S no aparece en la parte derecha de ninguna regla. Los lenguajes descritos por estas gramticas ____________________________________________________________________ 47 _ I.S.C. Elda Rivera Saucedo

Teora de la Computacin son exactamente todos aquellos lenguajes reconocidos por una mquina de Turing no determinista cuya cinta de memoria est acotada por un cierto nmero entero de veces sobre la longitud de entrada.

Gramticas de tipo 2 (gramticas libres del contexto) generan los lenguajes independientes del contexto. Las reglas son de la forma con A un no terminal y una cadena de terminales y no terminales. Estos lenguajes son aquellos que pueden ser reconocidos por un autmata con pila. Gramticas de tipo 3 (gramticas regulares) generan los lenguajes regulares. Estas gramticas se restringen a aquellas reglas que tienen en la parte izquierda un no terminal, y en la parte derecha un solo terminal, posiblemente seguido de un no terminal. La regla tambin est permitida si S no aparece en la parte derecha de ninguna regla. Estos lenguajes son aquellos que pueden ser aceptados por un autmata finito. Tambin esta familia de lenguajes pueden ser obtenidas por medio de expresiones regulares.

Ntese que el conjunto de gramticas correspondiente a los lenguajes recursivos no es un miembro de la jerarqua. Cada lenguaje regular es a su vez libre del contexto, asimismo un lenguaje libre del contexto es tambin dependiente del contexto, ste es recursivo y a su vez, recursivamente enumerable. Las inclusiones son, sin embargo, propias, es decir, existen en cada nivel lenguajes que no estn en niveles anteriores.

Tip o

Lenguaje

Autmata

Normas de produccin de gramticas

recursivamente enumerable (LRE)

Mquina de Turing (MT) Autmata linealmente acotado

Sin restricciones

dependiente del contexto (LSC)

independiente del contexto (LLC)

Autmata con pila

A 48

____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo

Teora de la Computacin

regular (RL)

Autmata finito

A aB Aa

Lenguajes Recursivamente Enumerables (de tipo 0) Artculo principal: Lenguaje recursivamente enumerable Las gramticas que generan estos lenguajes pueden tener reglas compresoras. Las reglas de produccin son de la siguiente forma:

Lenguajes Dependientes del Contexto (sensibles al contexto, de tipo 1) No existen reglas compresoras, salvo, opcionalmente, la que deriva el axioma a la palabra vaca. Existen reglas en las que un smbolo no terminal puede derivar a formas sentenciales distintas, segn los smbolos que aparezcan a su alrededor Las reglas de produccin son de la siguiente forma:

Lenguajes Independientes del Contexto (de contexto libre, de tipo 2) La mayora de los lenguajes de programacin entran en sta categora. Las reglas de produccin son de la siguiente manera:

Lenguajes Regulares (de tipo 3) Artculo principal: lenguaje regular Son los lenguajes ms simples dentro la Jerarqua de Chomsky. Se suelen expresar mediante expresiones regulares. ____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo 49

Teora de la Computacin Existen 2 tipos: lineales por la derecha y lineales por la izquierda. Las reglas de produccin son de la siguiente forma: Lineales por la derecha:

Lineales por la izquierda:

Jerarquia de Chomsky Segn Chomsky se clasifica las gramticas en cuatro tipos (cuales son, como vemos ms adelante, entre si verdaderamente diferentes).

Entonces sea una gramtica (y ). Las gramticas se distinguen solamente en el sistema de producciones que siempre ser un conjunto finito y que se clasifica en los siguientes tipos: Tipo 0: Gramticas generales sin restricciones

es decir, se sustituye por lo menos un smbolo no-terminal. Tipo 1: Gramticas sensibles al contexto

es decir, se sustituye un smbolo no-terminal por algo manteniendo el contexto; entonces una derivacin siempre produce palabras ms largas o iguales ( Tipo 2: Gramticas libres de contexto )

____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo

50

Teora de la Computacin

Es decir, se sustituye solo smbolos no-terminales por palabras no vacas Tipo 3: Gramticas regulares (o lineales)

Es decir, lineales a la izquierda (porque los smbolos no-terminales aparecen en una derivacin siempre a la izquierda de la palabra)

Es decir, lineales a la derecha (porque los smbolos no-terminales aparecen en una derivacin siempre a la derecha de la palabra) Se ha introducido explcitamente la regla en las gramticas de

tipos 1, 2, y 3 para permitir que el lenguaje puede ser generado dado que las reglas solo permiten un crecimiento de la longitud de las palabras a lo largo de las derivaciones. Retomamos la clasificacin de las gramticas hacia final del curso (por ejemplo, respondemos a la pregunta si son de verdad clases separadas). Observacin: si permitimos para las gramticas de libre contexto reglas del tipo , es decir, permitimos reglas como , podemos sustituir todas las reglas que tengan una a la derecha, por ejemplo por las producciones compresoras. , y conseguir as una eliminacin de

Jerarqua de Chomsky En funcin de la forma de sus producciones, se puede caracterizar qu tan compleja es una gramtica formal. Noam Chomsky mostr que esta caracterizacin clasifica jerrquicamente a las gramticas formales: Gramticas en un nivel estn incluidas en los siguientes niveles y la inclusin entre niveles es propia. Se puede dar varios refinamientos de la Jerarqua de Chomsky. En la tabla (4) presentamos esquemticamente uno de tales refinamientos. Table 4: Jerarqua gramatical de Chomsky. ____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo

51

Teora de la Computacin Tipo 0 Nombres Irrestricta Irrestricta con memoria limitada 1 existe una funcin (computable) tal que la longitud de cualquier cadena en una derivacin que d una palabra ha de estar acotada por el valor de la funcin en la longitud de , Forma de producciones

Sensibles al contexto con borro Sensibles al contexto no reductivas Libres de contexto Libres de contexto determinis tas producciones libres de contexto con la particularidad de que una vez que se ha derivado prefijos de un cierto tamao entonces se tendr determinada la palabra a derivarse, , ,

6 7

Lineales Regulares

la tipologa empleada denota lo siguiente: cadenas de Negritas caracteres; MAYSCULAS

alfabeto, ,

smbolos T conjunto de variables; smbolos ____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo

52

Teora de la Computacin terminales, V conjunto de smbolos variables.

Lo esquemtico de esta tabla se suprimir en el captulo 3 de este curso, en el que se presentar estas gramticas con todo detalle. En toda gramtica formal aparecen dos problemas fundamentales:

Problema de la palabra: Instancia: Solucin:

Es decir, este problema consiste en decidir, para una gramtica y una palabra dadas, si acaso la palabra est generada por la gramtica. Problema de la derivacin: Instancia: Solucin:

Es decir, este problema consiste en encontrar, cuando exista, una ____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo 53

Teora de la Computacin derivacin, en una gramtica dada, de una palabra dada tambin. Los problemas mencionados pueden ser resueltos efectivamente en algunos niveles de la Jerarqua de Chomsky. En otros niveles superiores puede ser irresolubles estos problemas.

3.4 Forma Normal de Greibach

Def.- Una GLC (gramatica Libre de Contexto)est en Forma Normal de Greibach (FNG) si todas las producciones son de la forma Aa , donde a es un smbolo terminal y ( N)*.

Una gramtica en FNG no puede tener producciones recursivas por la izquierda. Por la forma de las producciones, una gramtica en FNG slo puede generar lenguajes no vacos que no contengan la .

Transformando a Forma Normal de Greibach


Es posible transformar cualquier GLC que no contenga la a FNG en varias etapas. Sea L un LLC no vaco, que no contiene la . Sea G=( ,N,S,P) una GIC en Forma Normal de Chomsky que genera L. Supongamos que N={A1,A2,...,An}, donde A1=S. Modificamos las producciones de forma que ArAs , es una produccin, entonces r<s.

____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo

54

Teora de la Computacin Si ya han sido modificadas las producciones para 1 i k de tal forma que si AiAj , entonces i<j, entonces se debern modificar todas las producciones para Ak+1. Si Ak+1Aj es una produccin con k+1>j, se generar un nuevo conjunto de producciones para reemplazar las Aj por el lado derecho de todas las producciones Aj . Al realizar las sustituciones, se obtendrn producciones de la forma Ak+1Ar . Puede ocurrir que k+1 r o que r<k+1. Si k+1 r, la produccin tendr la forma deseada. Si r<k+1 reptase el proceso. Las producciones para las cuales k+1=r son producciones recursivas por la izquierda que se pueden eliminar con el mtodo antes estudiado. Reptase el proceso para cada uno de los terminales originales desde A1 hasta An.

En este momento slo se tendrn producciones de las tres formas siguientes: 1.AkAj , con k<j 2.Aka , para 3.Zk , para (N {Z1,Z2,...,Zn})* Como An es el no terminal con mayor ndice, todas las producciones para An deben ser del tipo 2. Es decir, en el extremo izquierdo del lado derecho tendrn un smbolo terminal. Tambin para An-1, en el extremo izquierdo del lado derecho deber tener un terminal o An. Si se tiene An, podr ser reemplazado por el lado derecho de una de sus producciones, para que las producciones comiencen con un terminal. Luego se procede a transformar las producciones correspondientes a An-2, An-3 y as sucesivamente, hasta que el lado derecho de todas las producciones comiencen con un terminal. Con relacin a las producciones para Z1,Z2,...,Zn; como la gramtica original estaba en Forma Normal de Chomsky y slo se han aplicado las transformaciones vistas hasta ahora, 55

____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo

Teora de la Computacin ninguna de las producciones Zi tendr otro Zj en el extremo izquierdo del lado derecho. As todas las producciones de los Zi tendrn terminales o Ai al principio de su lado derecho. Si alguna tuviera en el principio del lado derecho alguna Ak, sea aplicar una vez ms la sustitucin de producciones y todas las producciones resultantes tendrn la forma deseada.

Ejemplo Forma Normal de Greibach


Ej.- Transforme la siguiente GLC en Forma Normal de Chomsky a Forma Normal de Greibach: A1A2A2|a A2A1A2|b Las producciones A1A2A2|a ya se encuentran en la forma necesaria para la primera etapa. Falta A2

La produccin A2b se acepta, pero A2A1A2 no. Al sustituir A1, se obtienen las producciones A2A2A2A2|aA2. Eliminando la recursividad por la izquierda, se obtienen las siguientes producciones:

A1A2A2|a A2aA2|aA2Z|b|bZ ZA2A2|A2A2Z


Finalmente, sustituyendo A2 de forma apropiada para que empiecen con un terminal todas las producciones, se tiene: A1aA2A2|aA2ZA2|bA2|bZA2|a A2aA2|aA2Z|b|bZ ZaA2A2|aA2ZA2|bA2|bZA2|aA2A2Z| aA2ZA2Z|bA2Z|bZA2Z

Corolario Forma Normal de Greibach


Cor.-Todo lenguaje L Libre de contexto y no vaco, que no contenga , puede ser generado mediante una gramtica independiente del contexto en Forma Normal de Greibach.

3.6 Recursividad por la derecha y por la izquierda


____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo 56

Teora de la Computacin Una produccin de la forma A A, donde (N )*, se conoce como recursiva por la derecha.

Una produccin de la forma AA , donde (N )*, se conoce como recursiva por la izquierda.

Ambos tipos de recursividades formarn rboles que se expanden por la izquierda o por la derecha.

En muchas aplicaciones no es deseable que exista la recursividad por la izquierda.

Eliminando la recursividad por la izquierda


Teo.- Sea G una GIC y A un no terminal de G. Si AA 1| A 2|...|A n son todas la producciones para A, que son recursivas por la izquierda, y si A 1| 2|...| m son las restantes producciones para A, entonces se puede construir una gramtica equivalente introduciendo un nuevo no terminal Z y reemplazando todas las producciones precedentes por ... A 1| 2|...| m| 1Z| 2Z|...| mZ Z 1| 2|...| n| 1Z| 2Z|...| nZ

Ej.- Considere la GIC siguiente. Identifique y elimine la recursividad por la izquierda: SSa|Sb|cA AAa|a| Ej.- Eliminando la recursividad izquierda para S: ScA|cAZ1 Z1a|b|aZ1|bZ1 AAa|a| Eliminando la recursividad izquierda para A: ____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo 57

Teora de la Computacin ScA|cAZ1 Z1a|b|aZ1|bZ1 Aa|aZ2| |Z2 Z2a|aZ2

Observe que al eliminar las producciones recursivas por la izquierda se introducen nuevos terminales y producciones recursivas por la derecha.

3.7 Ambigedad

Def.- Una gramtica se dice que es ambigua si hay dos o ms rboles de derivacin distintos para una misma cadena. Una gramtica en la cual, para toda cadena w, todas las derivaciones de w tienen el mismo rbol de derivacin, es no ambigua.

Problemas con la Ambigedad


Cuando el significado de un lenguaje depende de su estructura, la ambigedad puede significar un problema. Ej.- En lenguaje natural, la frase: Juan vio a un hombre con un telescopio es ambigua ____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo 58

Teora de la Computacin

Ej.- En un lenguaje de programacin, la siguiente podra ser la gramtica para asignacin de expresiones: A I:=E I a | b | c E E+E | E * E | ( E ) | I Esta gramtica es ambigua. Para la cadena a:=b+c*a es posible construir dos rboles de derivacin diferentes, los cuales no dejan claro si su evaluacin es b+(c*a) o (b+c)*a.

LLC inherentemente ambiguo


Ej.- Si todas las GIC para un lenguaje son ambiguas, entonces el lenguaje ser un LIC inherentemente ambiguo. Ej.- El lenguaje: L={aibjck|i=j o j=k} es inherentemente ambiguo. Se tendra un rbol de derivacin, cuando i=j y otro cuando j=k. En consecuencia, si una cadena tiene i=j=k, tendr dos derivaciones siempre.

Derivacin por la izquierda


Def.- Una derivacin por la izquierda es aquella en la que el no terminal que se expande en cada paso es el que est en el extremo izquierdo. Ej.- Para la gramtica: S SbS|ScS|a la derivacin por la izquierda para abaca, sera: S ScS SbScS abScS abacS abaca

Derivacin por la derecha


Def.- Una derivacin por la derecha es aquella en la que el no terminal que se expande en cada paso es el que est en el extremo derecho. Ej.- Para la gramtica: S SbS|ScS|a la derivacin por la derecha para abaca, sera: S ScS Sca SbSca Sbaca abaca

Derivacin por la izquierda y derecha


____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo 59

Teora de la Computacin Para el ejemplo anterior, con ambas derivaciones se tendra el mismo rbol de derivacin. Este rbol tambin lo comparten otras derivaciones:

Para el mismo ejemplo anterior, la siguiente es otra derivacin izquierda, que corresponde a otro rbol de derivacin: S SbS abS abScS abacS abaca Por lo que, una gramtica ambigua se caracteriza por tener dos (o ms) derivaciones por la izquierda para una misma cadena. Toda derivacin en una gramtica regular es a la vez derivacin por la izquierda y por la derecha

3.8 Autmatas Push-Down. AUTMATAS DE PILA O PUSH -DOWN (PDA). Un autmata de pila o Push-Down es un autmata que cuenta con un mecanismo que permita almacenamiento ilimitado y opera como una pila. El autmata de pila (se abrevia PDA de sus siglas en ingls Push-Down Autmata) tiene una cinta de entrada, un control finito y una pila. La pila es una cadena de smbolos de algn alfabeto. El smbolo que se encuentra ms a la izquierda se considera como que est en la cima. El dispositivo ser no determinstico y tendr un nmero finito de alternativas de movimiento en cada situacin.

____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo

60

Teora de la Computacin

Los movimientos sern de dos tipos. En el primer tipo de movimiento se utiliza un smbolo de entrada. Dependiendo del smbolo de entrada, del smbolo de la cima y el estado de control finito, es posible un nmero de alternativas. Cada alternativa consiste en un estado posterior para el control finito y una cadena (posiblemente vaca) de smbolos, para sustituir al smbolo que se encuentra en la cima de la pila. Despus de seleccionar una alternativa, la cabeza de entrada avanza un smbolo como se ilustra.

El

segundo tipo de movimiento conocido como movimiento es parecido al primero, excepto que el smbolo de entrada no se utiliza y la cabeza de la entrada no avanza despus del movimiento. Este tipo de movimiento permite al PDA manipular la pila sin leer smbolos de entrada.

____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo

61

Teora de la Computacin

Existen dos modos de aceptar un lenguaje por un autmata de apilamiento. El primero consiste en definir el lenguaje aceptado como el conjunto de todas las entradas para las cuales una sucesin de movimientos ocasiona que el autmata de pila vace su pila. La segunda manera es designando algunos estados como estados finales y definimos el lenguaje aceptado como el conjunto de todas las entradas para las cuales alguna seleccin de movimiento ocasiona que el autmata de pila acceda a un estado final. Un autmata de pila M es un sistema (Q, , , , q0, Z0, F), en donde: Q es un conjunto finito de estados. es el alfabeto llamado alfabeto de entrada. es el alfabeto, conocido como alfabeto de pila. q0 Q, es el estado inicial. Z0 , es el smbolo llamado smbolo inicial. F Q es el conjunto de estados finales. es una transformacin de Q x ( { }) x en los subconjuntos finitos Q x *.

Sea M=(Q, , , , q0, Z0, F) un autmata de pila. El lenguaje aceptado por M se denota por L(M) y es el conjunto L(M) = {w * q0, w, Z0) * (p, , ( u ) para pF y u *}. Nota: * se usa para denotar los movimientos con un nmero arbitrario de pasos, donde * indica cero o ms pasos. . Obsrvese que la aceptacin requiere que M se mueva a un estado final cuando la cadena w se agote. M puede terminar o no con la pila vaca. (Sin embargo, obsrvese que cuando la pila se vaca el PDA debe parar, ya que todas las transiciones requieren un smbolo de pila). Ejemplo : Se representa un autmata de pila que acepta a {wcw R|w (0+1)*} mediante un agotamiento de pila M=(Q, , , , q0, Z0, F). ____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo 62

Teora de la Computacin Donde: Q = {q1, q2} q0 = q1 = {0, 1, C} Z0 = R = {R, B, G} F= y est definida por: 1. (q1, 0, R) = {(q1, BR)} 2. (q1, 0, B) = {(q1, BB)} 3. (q1, 0, G) = {(q1, BG)} 4. (q1, c, R) = {(q2, R)} 5. (q1, c, B) = {(q2, B)} 6. (q1, c, G) = {(q2, G)} 7. (q2, 0, B) = {(q2, )} 8. (q2, , R) = {(q2, )} 9. (q1, 1, R) = {(q1, GR)} 10. (q1, 1, B) = {(q1, GB)} 11. (q1, 1, G) = {(q1, GG)} 12. (q2, 1, G) = {(q2, )} Analizando la cadena 01C10 usando el PDA anterior se obtiene lo siguiente: (q1, 01C10, R) por la regla 1 (q1, 1C10, BR) por la regla 10 (q1, C10, GBR) por la regla 6 (q2, 10, GBR) por la regla 12 (q2, 0, BR) por la regla 7 (q2, , R) por la regla 8 (q2, , ) y se agota la pila. Consideremos el siguiente ejemplo de autmata de pila definido por: Q = {q1, q2, q3, q4} = {a, b} = {A,B} Z0 = A F = {q4} q0=q1 y dado por la siguiente tabla: q1 q2 q3 q4 (a, A) {(q2, BA), (q4, A)} ---(b, A) ----( , A) {(q4, )} -{(q4, A)} -(a, b) -{(q2, BB)} --(b, B) -{(q3, )} {(q3, )} -( , B) -----

____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo

63

Teora de la Computacin

Ya que depende del estado actual, el smbolo de entrada actual y el smbolo actual de la cima de la pila, la tabla tiene filas que corresponden a los estados y columnas que corresponden a los pares de smbolos de entrada y de la pila. Obsrvese que no hay transiciones para todas las ternas posibles de estado, smbolo de entrada y smbolo de pila. Por lo tanto, si el PDA pasa a un estado para el cual no se especifica un estado siguiente y una accin de la pila para los smbolos actuales de la pila y la entrada, el PDA no puede volver a realizar ningn movimiento. En particular, cuando el autmata est en el estado q4, que es el estado de aceptacin, no hay ninguna transicin sea cual sea el smbolo de la cima y de la entrada. Si el PDA se mueve al estado q2, entonces obsrvese que cada vez que a aparece en la entrada se apila una B en la pila. El PDA permanece en el estado q2 hasta que se encuentra la primera b y entonces se mueve al estado q3, ninguna b puede preceder a una a. Finalmente, en el estado q3 slo se consideran las bs y, cuando se encuentra cualquier b, se desapila B de la pila. (Slo pueden desapilarse las Bs que fueron apiladas, debido a encontrarse una a en la entrada). Las nicas cadenas que acepta el PDA pertenecen al lenguaje {an bn | n 0} {a}, puesto que son las nicas cadenas de entrada que, una vez que han sido consumidas, causan que el PDA termine en el estado final q4.

____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo

64

Teora de la Computacin

IV Maquina de Turing
4.1 Definicin formal de una mquina deTuring. 4.2 Construccin modular de una mquina de Turing. 4.3 Lenguajes aceptados por la MT. 4.4 Variantes de una mquina de Turing. 4.5 Problemas de Hilbert. 4.1 DEFINICIN DE UNA MAQUINA DE TURING. El modelo bsico, ilustrado en la figura 5.1, tiene un control finito, una cinta de entrada que esta dividida en celdas y una cabeza de cinta que barre una celda de la cinta a la vez. La celda tiene una celda que est mas a la izquierda, pero se extiende de manera infinita hacia la derecha. Cada celda de la cinta puede contener exactamente un smbolo de un nmero infinito de smbolos de la cinta. Inicialmente, las n celdas que estn mas a la izquierda, para alguna n 0 finito, sujetan la entrada, que es una cadena de smbolos escogidos de un subconjunto de los smbolos de la cinta, llamados smbolos de entrada. Cada una del nmero infinito de celdas restantes sujeta el espacio en blanco, que es un tipo especial de smbolo que no es de entrada.

Figura 5.1 Mquina de Turing En un movimiento, dependiendo del smbolo barrido por la cabeza de la cinta y del estado de control finito, la mquina de Turing: 1. Cambia de Estado, 65

____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo

Teora de la Computacin 2. Imprime un smbolo en la celda de la cinta que esta siendo barrida por la cabeza de la cinta y del estado de control finito, escrito y 3. Mueve su cabeza una celda hacia la izquierda o la derecha.

De manera formal, una Mquina de Turing (TM de sus siglas en ingls Turing Machine) se representa por: M=(Q, , , ,q0, B, F) en donde: Q es un conjunto finito de estados. Es el conjunto finito de smbolos de cinta admisibles. B smbolo de , es el espacio en blanco. subconjunto de que no incluye a B, es el conjunto de los smbolos de entrada. es la funcin de movimientos siguiente, una transformacin de Q x a Q x x {L, R} ( puede sin embargo, permanecer indefinida por algunos argumentos). q0 en Q es el estado inicial. F Q es el conjunto de estados finales. En esta definicin se supone que el valor inicial de todas las celdas de la cinta es el smbolo B. La definicin requiere que B . Generalmente permitimos que - {B}. La funcin de transicin transforma pares (q, ) formados por el estado actual y los smbolos de la cinta en temas de la forma (p. t, x), donde p es el estado siguiente, t es el smbolo escrito de la cinta y x es un movimiento de lectura/escritura de la cabeza, que puede ser L o R, segn que el movimiento sea hacia la izquierda o hacia la derecha (nos imaginamos que la cinta se extiende de izquierda a derecha). Por ejemplo, la transicin (q1, a)=(q5, b, R) provoca que la TM pase de una configuracin figura 5.2. A la configuracin de la figura 5.3.

Figura 5.2 Estado interno q1-

Figura 5.3 Estado interno q5 66

____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo

Teora de la Computacin Usaremos una descripcin instantnea (ID) de la mquina de Turing, para su notacin denotando el paso de una configuracin a otra por medio del smbolo .

Ejemplo: consideremos la maquina de Turing que acepta el lenguaje regular a*, definida mediante Q ={q1, q2} ={a, b} =(a, b, B} F ={q2} q 0 = q1 y dada por la siguiente tabla; los datos de tambin se pueden listar de la siguiente manera:

1. (q1, a)=(q1, a, R) 2. (q1, B)=(q2, B, R) Comienza. Sustituye el 0 del frente por B 2. (q1, 0)=(q1, 0, R) (q1, 1)=(q1, 1, R) Estructura hacia la derecha, buscando el primer 1. (q2, 0)=(q2, 0, R) (q2, 1)=(q3, 1, L) Estructura hacia la derecha saltndose los 1s hasta que se encuentra un 0. Cambia ese 0 por 1. (q3, 0)=(q3, 0, L) (q3, 1)=(q3, 1, L) (q3, B)=(q0, B, R) Se mueve hacia la izquierda a un espacio en blanco. Accesa el estado q0 para repetir el ciclo (q2, B)=(q2, B, L) (q4, 1)=(q4, B, L) (q4, 0)=(q4, 0, L) (q4, B)=(q6, 0, R)

3.

4.

5.

____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo

67

Teora de la Computacin Si en el estado q2 se encuentra una B antes que un 0, tenemos la situacin del inciso (a) descrita ms arriba. Se accesa el estado q4 y se mueve hacia la izquierda, cambiando todos los 1 por Bs hasta encontrar una B. Esta B se cambia de nuevo a 0, el estado q6 es accesado y M se detiene. 6. (q0, 1)=(q6, B, R) (q6, 0)=(q5, B, R) (q5, 1)=(q5, B, R) (q5, B)=(q6, B, R) Si en el estado q0 se encuentra un 1 en lugar de un 0, el primer bloque de 0s ha sido agotado, como en la situacin (b) anterior. M accesa el estado q5 para borrar el resto de la cinta, entonces accesa el estado q6 y se detiene.

Una muestra del clculo de M sobre la entrada 0010 es:

Sobre la entrada 0100, M se comporta de la manera siguiente:

4.3 LENGUAJES ACPETADOS POR LAS MQUINAS DE TURING. Una mquina de Turing se puede comportar como un aceptador de un lenguaje. Si colocamos una cadena w en la cinta, situamos la cabeza de lectura/escritura sobre el smbolo del extremo izquierdo de la cadena w y ponemos en marcha la maquina a partir de su estado inicial. Entonces w es aceptada si, despus de una secuencia de movimientos, la mquina de Turing llega a un estado final y para. Por tanto w es aceptada. Si qw w1pw2 para algn estado final p y unas w1 y w2 entonces, se obtiene la siguiente definicin: Sea M = (Q, , ,q0=q1,B, F, ) una maquina de Turing, entonces el lenguaje aceptado por M es L(M)= {w *q1 w * w1pw2 para pF y w *}

Ejemplo: Disear una TM que acepte el lenguaje regular a* sobre ={a, b}. Comenzando con el smbolo que esta mas a la izquierda en una cadena, realizaremos un anlisis hacia la derecha, leyendo cada smbolo y comprobando que es una a; si lo es, realizaremos un desplazamiento hacia la derecha. Si encontramos un blanco (B) sin que se haya ledo ningn smbolo que no fuera a, pararemos y aceptemos la cadena. Si por el otro lado, encontramos un smbolo que no es ni a ni B, podemos parar en un estado que no es de aceptacin. ____________________________________________________________________ 68 _ I.S.C. Elda Rivera Saucedo

Teora de la Computacin

Sea Q = {q1, q2}, q0= q1 y F={q2}, y sea definida por: (q1,a)= (q1, a, R) (q1,B)= (q2, B, R) Esta mquina de Turing para en el estado q2, slo si se analiza una cadena de 0 ms as. Para rechazar una cadena que no es aceptable, lo nico que hay que hacer es evitar que se llegue a un estado final. En este ejemplo las cadenas que no son aceptables, provocan que la mquina pare en un estado que no es final. Otra alternativa para rechazar una cadena es entrar en un bucle infinito. Un lenguaje que es aceptado por una mquina de Turing se conoce como lenguaje recursivamente enumerable (r.e.). El termino enumerable proviene de que dichos lenguajes son aquellos cuyas cadenas pueden ser listadas (enumeradas) por una mquina de Turing. Esta clase de lenguajes es bastante grande, incluyendo los lenguajes libres de contexto. Hay lenguajes r.e. para los cuales ninguna mquina de Turing que los acepte para con todas las entradas (naturalmente, cualquier mquina de Turing para dichos lenguajes debe parar para toda cadena que pertenezca realmente al lenguaje), La subclase de los lenguajes recursivamente enumerables que son aceptados por al menos una mquina de Turing que para con toda cadena de entrada (dependiendo de si la cadena es aceptada o no), se conoce por la clase de los lenguajes recursivos. Puesto que las mquinas de Turing pueden leer y escribir sobre su cinta pueden convertir la entrada en salida. La transformacin de la entrada en salida es el primer propsito de las computadoras digitales; por tanto, una mquina de Turing se considera como un modelo abstracto de una computadora. Se supone que la entrada para la mquina de Turing est formada por todos los smbolos de la cinta que no son blancos. La salida est formada por cualquiera de los smbolos que queden en la cinta cuando la computacin termina. Las mquinas de Turing pueden ser consideradas como la implementacin de una funcin de cadena f definida mediante f(w) = u cuando se cumple qsw * qfu, donde qs es el estado inicial y qf es un estado final, por lo que se requiere que la cabeza de lectura/escritura empiece y termine, respectivamente, sobre el smbolo de las cadenas de entrada y salida que esta situado ms a la izquierda. Definiendo lo anterior se dice que una funcin de cadena f es Turing computable si existe una mquina de Turing M=(Q, , ,q1, B, F, ) para la cual q1 w f(w)=u. * q, u para algn q, F, cuando

Se puede extender la anterior definicin de funciones integrales, como se muestra en el siguiente ejemplo. Ejemplo. Supongamos que tenemos ={a,b} y que representamos los enteros positivos mediante cadenas de a*s. As, el entero positivo n estara representado por an. La funcin suma f(n,m) = n+m podra ser implementada mediante la transformacin de anbam en an*mb. ____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo 69

Teora de la Computacin Podramos obtener una mquina de Turing para la suma, que estara representada por M=(Q, , ,q0, B, F, ) donde Q = {q1, q2, q3, q4, q5} F = {q5} Y dada por las siguientes transformaciones: 1. 2. 3. 4. 5. 6. 7. (q1, a)=(q1, a, R) (q1, b)=(q2, a, R) (q2, a)=(q2, a, R) (q2, B)=(q3, B, L) (q3, a)=(q4, b, L) (q4, a)=(q4, a, L) (q4, B)=(q5, B, R)

Esta mquina de Turing desplaza la b hacia el final, a la derecha de an*m. Para ello se crea una extra. La mquina de Turing recordara que se a creado una a al pasar al estado q2 una vez que se ha encontrado la b, y entonces se escribir una b sobre la a que esta al final de la cadena. Cuando termina la mquina de Turing la cabeza de lectura/escritura est sobre la a que encuentra mas a la izquierda. 4.4 VARIANTES DE LAS MQUINAS DE TURING Hay otras definiciones de las mquinas de Turing que son equivalentes. Muchas de ellas dotan de mayor flexibilidad al diseo de una mquina de Turing que se resuelve un problema en particular. Ejemplos [Kelley Dean]: Mquina de Turing con Directiva de Permanecer Recurdese que la maquina ed Turing sencilla sita la cabeza de lectura/escritura sobre el primer B que haya a la izquierda de la posicin actual. Para, hacerlo, busca fuera de la celda actual y retrocede, Esto es debido a la definicin original que requiere que por cada transicin se mueva la cabeza de la cinta. La funcin de transicin estaba definida como: : Q x Q x x {R, L} y puede ser modificada como: : Q x Q x x {R, L, S} donde S significa permanecer, es decir no mover la cabeza de lectura/escritura. Por tanto (q, )=(p, , S) significa que se pasa del estado q al p, se escribe en la celda actual y la cabeza se queda sobre la celda actual. Mquina de Turing Multipista Es aquella mediante la cual cada celda de la cinta se divide en subceldas. Cada subcelda es capaz de contener smbolos de la cinta. La cinta

____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo

70

Teora de la Computacin

Tiene cada celda subdividida en tres subceldas. Se dice que esta cinta tiene mltiples pistas. En el ejemplo anterior, las celdas de la cinta contienen (B, a, a), (b, a, a) y (a, a, B). Por tanto los movimientos que realice est mquina de Turing dependern de su estado actual y de la n-tupla que represente el contenido de la celda actual. Una mquina de Turing multipista no tiene ms potencia que la mquina de Turing original. Sin Embargo, hace que sea ms fcil la construccin de mquinas de Turing que resuelvan ciertos problemas. Ejemplo: Para una mquina de Turing que sume dos nmeros binarios. Primero se construye una mquina de Turing de tres pistas. La entrada sern dos nmeros binarios que ocupen las dos pistas superiores de la cinta. Suponiendo que sus dgitos se alinean por la derecha, que sus representaciones binarias son de la misma longitud (lo que se puede conseguir rellenndolas con tantos ceros como sea necesario) y que la cabeza de lectura/escritura se sita sobre la celda del extremo izquierdo de la cadena. Por tanto, si tuvieran que sumar 101 y 10, la cinta debera contener: B B B 1 0 B 0 1 B 1 0 B B B B

Cabeza

La maquina de Turing realizara la suma en la tercera pista. Por lo tanto, el alfabeto de cinta estar formado por las ternas: (B, B, B) (1, 1, B) (1, 1, 0) (1, 1, 1) (0, 0, B) (0, 0, 0) (0, 0, 1) (B, B, 0) (0, 1, B) (0, 1, 0) (0, 1, 1) (B, B, 0) (1, 0, B) (1, 0, 0) (1, 0, 1) Esta maquina de Turing buscara primero hacia la derecha el extremo derecho de los nmeros que van a ser sumados. Entonces sumar pares de dgitos, desde la derecha hacia la izquierda, llevando la cuenta de los resultados que se obtengan y sumando a quienes correspondan. Por tanto, se obtiene (suponiendo que q1 es el estado inicial): ____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo 71

Teora de la Computacin

(q1, ) = (q1, , R), si (B, B, B) (q2, , L), si = (B, B, B) (q2, (0, 0, B)) = (q2 (0, 0, 0), L) (q2, (0, 1, B)) = (q2 (0, 1, 1), L) (q2, (0, 0, B)) = (q2 (1, 0, 1), L) (q2, (0, 0, B)) = (q3 (1, 1, 0), L) (q2, (0, 0, B)) = (q4 (0, 0, 0), L) (q4, (B, B, C), L)
(q3, (0, 0, B)) = (q2, (0, 0, 1), L) (q3, (0, 1, B)) = (q3, (0, 0, 0), L) (q3, (0, 0, B)) = (q3, (0, 0, 0), L) (q3, (0, 0, B)) = (q3, (0, 0, 0), L) (q3, (0, 0, B)) = (q4, (0, 0, 0), L) I L

Obsrvese que se necesita que esta maquina de Turing tenga la posibilidad de no moverse. La maquina de Turing transformar B B B En: B B B B B 0 1 0 1 0 1 1 1 0 1 B B B 1 0 B 0 1 B 1 0 B B B B

MAQUINA DE TURING DE CINTA INFINITA EN UNA DIRECCION Mquina de Turing que usa una cinta que se extiende infinitamente en una nica direccin. Generalmente, se tiene una cinta que se extiende infinitamente hacia la derecha. No est permitido realizar ningn movimiento hacia la izquierda a partir de la celda del extremo izquierdo. Desde luego, cualquier mquina de Turing de esta forma puede ser simulada por una de las que responden a la definicin original. Para cada computacin, simplemente se marca una de las celdas de la cinta infinita por los dos lados, como la celda que se encuentra en el lmite izquierdo. MAQUINA DE TURIG EN DOS DIRECCIONES Una maquina de Turing con una cinta infinita en un sentido puede simular una mquina de Turing con la cinta infinita en los dos sentido pero con dos cintas. Sea M una mquina de Turing con una cinta infinita en los dos sentidos. La mquina de Turing M, que tiene una cinta infinita en un sentido, puede simular a M si tiene una cinta con dos pistas. La cinta superior contiene la informacin correspondiente a la parte derecha de la cinta M, a partir de un punto de referencia dado. La pista inferior contiene la parte izquierda de la cinta M (en orden inverso). Por tanto, si la cinta de M contena

B a a B b a b ____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo

72

Teora de la Computacin

Punto de referencia La cinta de M podra ser como * * b a B A a B b B

El simbolo especial * marca el limite izquierdo de la cinta. Cuando M tuviera que pasar el punto de referencia. M tendra que encontrarse con la celda marcada con *. Si M esta trabajando sobre las celdas que estan a la derecha del punto de referencia, M esta trabajando sobre la pista superior. Cuando M trabaja sobre las celdas que estan a la izquierda del punto de referencia, M trabaja sobre la pista inferior. Cuando M pasa al punto de referencia, M se encuentra con los *, cambia de direccion y cambia de pista sobre la que trabaja. MAQUINA DE TURING MULTICINTA La mquina de Turing multicinta tiene varias cintas, cada una de las cuales tiene su propia cabeza de lectura/escritura. Las cabezas de lectura/escritura se controlan independientemente (es decir, al mismo tiempo, no tiene que moverse en la misma direccin, ni realizar el mismo numero de movimientos, ni incluso, hacer nada, hacer nada a la vez). En un solo movimiento, esta mquina de Turing 1.- Cambia de estado dependiendo del estado actual y del contenido de las celdas de todas las cintas, que estn analizando actualmente las cabezas de lectura/escritura. 2.- Escriben un nuevo simbolo en cada una de las celdas barridas por sus cabezas de lectura/escritura. 3.- Mueve cada una de sus cabezas hacia la izquierda o hacia la derecha (de forma independienteal resto de las cabezas). Por tanto, la funcion de trancicion para una maquina de Turing con n cintas, es de la forma : Q rn Q rn {R,L}n donde una trancicion de la forma (q1 ( 1, 2, , n)) = (p,( 1, 2, , n) (X1, X2, ,X3)) significa que cambia del estado q a p, reemplaza i por i en la cinta i y mueve la cabeza de a cinta i en la direccion X. Ejemplo: Reconocimiento del lenguaje {an bn n 1}. Este es bastante laborioso en una mquina de Turing con una nica cinta. Es mucho mas facil realizarlo con una mquina de Turing de dos cintas. Suponiendo que, inicialmente, coloca la cadena a analizar en la cinta 1 y que q1 es el estado inicial. Si la cabeza de lectura/escritura de la cinta 1 sta situadas sobre el carcter del extremo izquierdo de la cadena, las cuatro pociciones siguientes son fundamentales para el reconocimiento(cualquier otra funcion seria para cadenas mal formadas y se puedde suponer que llega a un estado que no es de aceptacion): (q1, (a, B)) = (q1 (a, a), (R, R)) (q1, (b, B)) = (q2 (b, B), (S, L)) ____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo 73

Teora de la Computacin

(q2, (b, a)) = (q2 (b, a), (R, L)) (q2, (B, B)) = (q3 (B, B), (R, L))
Aunque esta mquina de Turing multicinta parece bastante distinta y posiblemente mas potente que la mquina de Turing definida originalmente, las dos son equivalentes en el sentido de que cada una de ellas puede ser simulada por la otra. MAQUINA DE TURING MULTIDIMENSIONAL La mquina de Turing Multidimensional es aquella que permite que la cinta tenga muchas dimensiones. Por ejemplo, una cinta de dos dimensiones que se extienda hacia abajo y hacia arriba, al igual que hacia la derecha y hacia la izquierda. Dependiendo del estado actual de la mquina de Turing y del smbolo analizado, cambia de estado, escribe un smbolo en la celda actual y se mueve a la izquierda, a la derecha, hacia arriba o hacia abajo. Por lo tanto, la funcin de transicin para esta mquina de Turing ser de la forma:

:Q

r {R, L, U, D}

Una mquina de Turing multidimensional simula una mquina de Turing estndar. Simplemente realizando todas sus computaciones en una nica dimensin. Una mquina de Turing estndar tambin puede simular una mquina de Turing multidimensional y, por lo tanto, la complejidad y la flexibilidad adicional que se debe a la mltiple dimensin, no es una capacidad real. Para simular una mquina de Turing de dos dimensiones mediante una mquina de Turing estndar, primero se asociara una direccin a todas las celdas de la cinta. Una forma de hacerlo es fijar, de forma arbitrara, un lugar en la cinta a partir del cual se asignarn las coordenadas a las celdas de la misma forma que se realiza en un plano de coordenadas. Entonces, se usara una cinta de dos pistas para simular la mquina de Turing. Una pista se encargar de almacenar el contenido de las celdas y la otra las coordenadas, utilizando un smbolo (*) para separar los valores de las coordenadas. Para simular un movimiento de una mquina de Turing de dos dimensiones, esta mquina calcula la direccin de la celda a la que se mover la mquina de Turing de dos dimensiones. Entonces, localiza la pista inferior, la celda con dicha direccin y cambia el contenido de la celda en la pista superior. MAQUINA DE TURING NO DETERMINISTA La mquina de Turing NO determinista es aquella que para un estado actual y el smbolo actual de la cinta, puede haber un nmero finito de movimientos a elegir. Por lo tanto, la regla de transicin de dicha mquina, satisface (q, ) Q r {R, L} Por ejemplo, si la mquina de Turing tiene una transicin (q1, a) = {(q1, b, R), (q2, a, L)} entonces los movimientos abbq1ab abbq2bab son posibles.
abbbq1b

____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo

74

Teora de la Computacin Ya que cualquier mquina de Turing determinista es tambin no determinista, es lgico que una mquina de Turing determinista se puede simular mediante una no determinista. Tambin una mquina de Turing determinista puede simular una no determinista. Por tanto, no se gana ninguna potencia adicional a causa del no determinismo. 4.5 HALTING PROBLEM Se dice que un proceso es computable o tiene solucin algortmica cuando puede ser representado por medio de una mquina de Turing que llega, en algn momento, a un estado final. Si la mquina de Turing llega a un estado final con un si, se estar haciendo una correspondencia entre ella y el modelo de decisin. Pero cuando la mquina no llega a este estado final pueden suceder dos cosas: que llega a un estado de trampa, de donde ya no salga, o que sencillamente nunca se pueda saber si terminar o no con la computacin. Para el primer caso bastar con hacer una equivalencia entre este estado de trampa y el no del modelo de decisin; pero para el segundo hay que decidir entre seguir esperando o no el resultado. En 1936 Turing demostr matemticamente que existen procesos para los cuales la mquina nunca terminar con un si y nunca terminar con un no. En este caso se podra esperar toda la eternidad para ver si la maquina se detiene o no, sin poder llegar a saber si se detendr en el siguiente instante. Se dice que el problema no es computable, o bien, que no es posible decidir, en un tiempo finito, si el proceso es representable algortmicamente. Los problemas de este tipo reciben el nombre de problemas indecibles o problemas no solucionables en forma algortmica, y representan una prueba de las capacidades del mtodo matemtico para explorar la realidad formal del mundo, ya que se est hablando de problemas que son posibles de describir, pero nunca representar por completo para todos los casos. Turing en la bsqueda de los problemas indecibles generalizo el concepto de mquina, como se explica a continuacin: La mquina universal de Turing es, el modelo terico de la computabilidad; basta con codificar cualquier mquina particular de Turing en su cinta para que sea entonces simulada y, por ende, pueda resolver ese problema particular algortmicamente. Y con esto es cuando Turing establece el problema de parada (Halting Problem en ingles) con la siguiente pregunta: Podr la mquina universal determinar si la mquina particular que est siendo simulada se va a detener (en un estado final) o no? Supngase que si puede: que existe una MT1 que determina si cualquier otra (que llamaremos MT0) se va a detener o no; es decir, termina con un si, si MT0 se define, y con un no si MT0 no se detiene (vase la figura 5.4). Entonces, tambin lo podr hacer para la codificacin de si misma (es decir, podr determinar si MT1 se detendr para cualquier caso particular o no). ____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo 75

Teora de la Computacin

MT1 MT2

Figura 5.4 MT1 termina con un si, si MTO no se detiene o termine con un no, si MT0 no se detiene. Ahora si se construye una nueva mquina, MT2, que se detiene si MT0 no lo hace, y viceversa (vase la figura 5.5). Esto se puede lograr si se hace que MT2 entre en un ciclo infinito cuando MT0 se detiene(mediante un par de estados de trampa, que hacen que la operacin de la mquina oscile entre uno y otro). Qu sucede si MT2 trabaja sobre la codificacin de si misma? pues que se detendr si MT2 no se detiene, y no se detendr si, y solo si, se detiene. Esto es una contradiccin total. Lo que quiere decir que tal mquina no puede existir; lo que a su vez equivale a decir que el problema que estamos estudiando es indecible. MT2 MT0

Figura 5.5 MT2 termina con un si, si MTO no se detiene o termina con un no, si MT0 se detiene. En resumen los pasos fueron: 1. Se supone que se puede construir MT1, que determina si MT0 se detiene o no y que, por tanto, tambin puede determinar si ella misma lo hace cuando trabaja sobre su propia codificacin. 2. Se construye MT2, que termina con un si, si MT0 no se detiene, y con no si MT0 se detiene mediante un par de estados especiales de trampa que causan que entre en un ciclo infinito cuando MT0 llega a un estado final. 3. cuando MT2 trabaja sobre su propia codificacin se llega a una contradiccin, lo cual significa que la suposicin del punto 1 es invlida.

____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo

76

Teora de la Computacin

V DECIBILIDAD 5.1 Lenguajes Decidibles. 5.2 El problemas de Halting. 5.3 Decidibilidad de Teoras Lgicas.

5.1 Lenguajes Decidibles Decidible: Se dice que un sistema formal es decidible si existe un algoritmo que diga en tiempo finito si una cadena cualquiera es un teorema(la confirmacin de un anlisis) o no lo es El identificar los problemas que son computables y los que no lo son tiene un considerable inters, pues indica el alcance y los lmites de la computabilidad, y as demuestra los lmites tericos de los ordenadores. Adems de las cuestiones sobre algoritmos, se han encontrado numerosos problemas menos generales que han resultado ser no computables

____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo

77

Teora de la Computacin Los lenguajes decidibles son cadenas de palabras calculables mediante funciones recursivas por lo cual tambin se les llamas lenguajes recursivos. Un posible alfabeto sera, digamos, {a, b} , y una cadena cualquiera sobre este alfabeto sera, por ejemplo, ababba . Un lenguaje sobre este alfabeto, que incluyera esta cadena, sera: el conjunto de todas las cadenas que contienen el mismo nmero de smbolos que , por ejemplo La palabra vaca (esto es, la cadena de longitud cero) se permite en este tipo de lenguajes, notndose frecuentemente A diferencia de que ocurre con el alfabeto (que es un conjunto finito) y con cada palabra (que tiene una longitud tambin finita), un lenguaje puede estar compuesto por un nmero infinito de palabras. Esos son algunos ejemplos de problemas de decisin 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 nmero de letras a y b. Las frases que describen un grafo con aristas etiquetadas con nmeros naturales que indican su longitud, dos vrtices del grafo y un camino en el grafo que es el camino ms corto entre esos dos vrtices. Las frases que describen una mquina de Turing y una cinta de entrada para esta mquina tal que la mquina se para en un tiempo finito al procesar esa entrada.

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. No es una sorpresa que esta idea intuitiva de algoritmo pueda ser definida formalmente. El correspondiente modelo matemtico se llama mquina de Turing (Alan Turing, 1936). La teora de computabilidad tiene como objetivo el estudio de problemas de decisin, con el fin de determinar si los mismos son tericamente decidibles.

____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo

78

Teora de la Computacin Los problemas se pueden clasificar desde el punto de vista de la teora de computabilidad en resolubles y no resolubles. Los problemas resolubles son objeto de estudio de la teora de complejidad computacional. En el contexto de complejidad computacional, el inters est centrado en establecer una medida de la cantidad de recursos computacionales (en trminos de tiempo y/o espacio) necesarios para resolver un determinado problema o equivalentemente reconocer un lenguaje

LOS PROBLEMAS RESOLUBLES SE SUBDIVIDEN EN TRATABLES E INTRATABLES Los problemas tratables son: Aquellos para los cuales existe un algoritmo eficiente que los resuelve. Los intratables son: Aquellos para los cuales no se conoce (o tal vez no exista) un algoritmo eficiente que los resuelva Lenguajes aceptables y decidibles - Lenguaje decidible: es aquel lenguaje L para el cual existe una mquina de Turing que puede aceptar cualquier cadena wL y rechazar cualquier cadena wL. - Lenguaje aceptable: es aquel lenguaje L para el cual no existe ninguna mquina de Turing que puede aceptar cualquier cadena wL y rechazar cualquier cadena wL. - Lenguajes recursivamente innumerables: lenguajes estructurados por frases. - Lenguajes recursivos: lenguajes decidibles por una mquina de Turing Lenguajes aceptables vs. Lenguajes decidibles

____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo

79

Teora de la Computacin Lenguaje aceptable La mquina separa al reconocer una cadena del lenguaje Lenguaje decidible La mquina 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.

5.2 El problemas de Halting. PROBLEMA DE LA PARADA (Problema de Halting) El problema de parada para mquinas de Turing es el ejemplo de problema irresoluble ms conocido. Fue adems el primer problema que se demostr formalmente que no tena solucin. El concepto de problema indecidible o irresoluble se aplica a problemas de decisin, es decir, problemas a los que podemos decir si tienen solucin 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 solucin. Una de las razones por la que es importante conocer que el problema de la parada no tiene solucin, es que nos permite decidir si otros problemas son resolubles o no Definicin Sea M una mquina de Turing arbitraria con un alfabeto de entrada . Sea . Puede decidirse si la mquina M se detendr con la entrada w? Solucin La respuesta a esta pregunta es negativa. No se puede determinar si una mquina de Turing se detiene con una entrada arbitraria. Demostracin Para demostrarlo, supongamos que el problema de la parada tiene solucin, es decir, supondremos que existe una mquina de Turing que es ____________________________________________________________________ 80 _ I.S.C. Elda Rivera Saucedo

Teora de la Computacin capaz de determinar si otra mquina de Turing para con una entrada determinada. Consideremos una mquina de Turing P, que recibe como entrada una mquina de Turing M y una cadena w codificadas en la cinta y una a continuacin de la otra (Mw), y que se encarga de ejecutar M sobre la cadena w. La mquina P parar y aceptar la entrada si M para con w, y parar y rechazar la entrada si M no para con w. Modificamos la mquina P, creando una mquina P equivalente. Esta mquina no parar si M para con w, y parar si M no para con w. Ahora crearemos una mquina D, cuya funcin es la siguiente. Recibe una mquina M, la pasa por una mquina que se encarga de copiar la mquina M a continuacin. Por lo tanto, a la salida de la mquina copia, la cinta contendr MM (la codificacin de la mquina repetida). A continuacin, D coge este resultado y lo pasa a travs de P. Con esto intentamos decidir si la mquina M para con la entrada M. Es decir, si M para con la entrada M, entonces D no para, y si M no para con la entrada M, entonces D para. Por ltimo, tomaremos una mquina D (denominaremos SD), y le aplicaremos como entrada una mquina D. SD aplica como entrada a la mquina que recibe, la misma mquina. Por lo tanto, esta mquina en principio parar si D no para con entrada D, y no parar si D para con entrada D. Pero si SD no para y si D para con entrada D, sabiendo que D=SD, llegamos a una contradiccin, por que aplicar D a SD debera dar como resultado lo mismo que aplicar D sobre D. Del mismo modo para el otro caso. Por lo tanto, el problema de la parada no tiene solucin. 5.3 Decibilidad de Teoras Lgicas.

Decibilidad: En lgica, el trmino decidible se refiere a la existencia de un mtodo efectivo para determinar si un objeto es miembro de un conjunto de frmulas.

____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo

81

Teora de la Computacin Un sistema lgico o teora es decidible si el conjunto de todas las frmulas vlidas en el sistema es decidible. Es decir, existe un algoritmo tal que para cada frmula del sistema es capaz de decidir en un nmero finito de pasos si la frmula es vlida o no en el sistema. Ejemplo: La Lgica proposicional es decidible, porque existe para ella un algoritmo; la tabla de verdad tal que para cada frmula que combina M formulas atmicas, hay un nmero mximo N = 2M de pasos tal que tras completar estos N pasos el algoritmo siempre decidir si la frmula es vlida o no. Cada "paso" del algoritmo ha sido definido como una lnea de la tabla de verdad.

Bibliografa: Martn, John C. Introduction to Languages and the Theory of Computation . Ed. Prentice Hall. Hopcroft, John,Ullman,Jeffrey Introduction to Automatas Theory,Lenguages and computa Ed. Addison Wesley. Kelly, Dean. Teoria de Automatas y lenguajes Formales. Ed. Prentice Hall. Sipser, Michael. Introduction to the Theory of Computation. PWS Publishing Company. Cohen, Daniel I.A. Introduction to Computer Theory. Ed. Wie Wiley. Davis, Martn D., Weyuker, Elaine. Computability, Complexity and Languages Fundamentales of Teorical Computer Science. Academic Press. Denning, Peter J. Machines, Langueges and Computation.Prentice Hall. ____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo 82

Teora de la Computacin

Lewis, Larry., Papadimitrion, Chistos H. Elements of the Theory of Computation. Prentice Hall. Rayward-Smith, V.S. A First Course in a Formal Language Theory. Mc Graw Hill. Jeffey E.F. Friedl. Mastering Regular Expressions. Oreilly & Associates, Inc. Brookshear. Teora de la Computacin, Lenguajes Formales, Autmatas y Complejidad. Addison Wesley. Isasi, Martnez y Borrajo. Lenguajes, Gramticas y Autmatas. Addison Wesley

____________________________________________________________________ _ I.S.C. Elda Rivera Saucedo

83

You might also like