Apuntes de Lenguajes y Automatas

download Apuntes de Lenguajes y Automatas

of 79

Transcript of Apuntes de Lenguajes y Automatas

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

IntroduccinLa ciencia de la computacin es el cuerpo sistematizado del conocimiento acerca del calculo. Principios : Euclides Los Babilonios Diseo de algoritmos Complejidad asintotica y reducibilidad CIENCIA DE LA COMPUTACIN

Ideas y modelos fundamentales

Tcnicas de Ingeniera para el diseo de sistemas de computacin (Hw y Sw), principalmente la aplicacin de la teora al diseo.

Teora de la computacin INICIOS La teora de la computacin tiene sus inicios en varios campos distintos: Biologa Ing. Elctrica Matemticas Lingstica Modelos de redes Neuronales Teora de la interrupcin para diseo de Hw Fundamentos de la lgica Gramticas de los lenguajes naturales

A partir de esto nacen los modelos centrales de la ciencia de la computacin terica

___________________________________________________________Othoniel Rivera Mndez

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

Autmatas finitos y expresiones regulares Se desarrollan pensando en las redes neuronales y los circuitos de interrupcin, pero son herramientas tiles en el diseo de Analizadores de lxico, editores de texto, concordancia de patrones, procesadores de texto, buscadores de archivos, etc. Las ER las desarrollo Kleene en 1956 para estudiar las redes neuronales. Gramticas libres de contexto Ayudan a especificar lenguajes de programacin y apoyan el diseo de parsers Maquinas de turing Las maquinas de turing son quiz el elemento ms poderoso de la teora de la computacin y son en cierta forma el limite terico de lo que es posible hacer con maquinas procesadoras de informacin MAQUINAS Qu maquinas? Usualmente l termino maquina evoca algo fsico, hecho de metal, ruidoso, que efecta tareas repetidas que requieren fuerza, precisin, rapidez Existen otras, las maquinas computacionales, las cuales son abstracciones o modelos matemticos Qu se modela? Forma Estructura Funcionamiento Maqueta Partes, subpartes, Conexiones Secuencia de operaciones

Biela

Pistn

Cigeal Compresin___________________________________________________________Othoniel Rivera Mndez

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

Admisin Escape

Ignicin

Este es el enfoque del curso, el de las secuencias o ciclos de acciones. Las maquinas a estudiar son abstracciones matemticas que ven solamente el aspecto referente a las secuencias de eventos que ocurren sin tener en cuenta la forma de la maquina ni sus dimensiones, ni el tipo de movimientos que efecta. PRELIMINARES MATEMATICOS Teora de conjuntos Un conjunto es una coleccin de elementos L= {a, b, c, d} elementos del alfabeto

b L especifica que b es un elemento del conjunto L r L especifica que r no es un elemento del conjunto L En un conjunto no se distinguen repeticiones de los elementos {a, b, c, d}={a, b, c, b, a, c, d} El orden no tiene ningn significado {a, b, c, d}={b, a, d, c} Dos conjunto son iguales si y solo si tienen los mismos elementos Un conjunto puede tener un solo elemento y se llama simple. {1} tiene un solo elemento {1} y 1 son distintos El conjunto que no tiene elementos se denomina conjunto vaco y se denota con

Se pueden especificar conjuntos listando sus elementos separados por comas y entre llaves {a, b, c, d, e, f, g, h, i, j} Algunos no pueden ser descritos de esta forma por que son infinitos___________________________________________________________Othoniel Rivera Mndez

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

|N = {0,1,2,3,4,5,... } Un conjunto que no es infinito se denomina finito Otra manera de especificar un conjunto es por referencia a otros conjuntos y a propiedades que pueda o no tener G={x | x I and x 2} en general se especifica B= {x | x A and x tiene la propiedad P} Un conjunto es subconjunto de otro s cada elemento de A es tambin elemento de B; se especifica A B Un conjunto es subconjunto de s mismo. Si A B pero A no es el mismo B, A es subconjunto propio de B. El conjunto vaco es subconjunto de todo conjunto Los conjuntos pueden combinarse para formar un tercero por varias operaciones de conjuntos. La unin de dos conjuntos es el conjunto que tiene como elementos aquellos que son elementos de al menos uno de los conjuntos y tal vez de ambos. A B = {x | x A or x B} La interseccin de dos conjuntos es la coleccin de elementos que los dos conjuntos tienen en comn. A B = {x | x A and x B} La diferencia de dos conjuntos A y B, denotada A - B es el conjunto de elementos de A que no son elementos de B. A - B = {x | x A and x B}

Dos conjuntos son disjuntos si no tienen elementos en comn, es decir si su interseccin es el conjunto vaco. El conjunto potencia de un conjunto A es el conjunto de todos sus subconjuntos y se denota por 2A.

___________________________________________________________Othoniel Rivera Mndez

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

Una particin de un conjunto no vaco A es un subconjunto de 2A tal que no es elemento de y cada elemento de A esta en uno y solo un conjunto de es una particin de A si es un conjunto de subconjuntos de A tales que1. 2. 3.

Cada elemento de es no vaco Distintos miembros de son disjuntos =A RELACIONES Y FUNCIONES

Producto cartesiano Operacin de conjuntos que construye un conjunto que consiste de pares ordenados de elementos a partir de dos conjuntos existentes Se define como: X x Y = {(x, y) | x X and y Y} Una relacin binaria entre dos conjuntos X y Y es un subconjunto del producto cartesiano. El producto se puede generalizar a varios conjuntos X1,X2,X3,...,Xn.

Funciones En forma intuitiva, una funcin es un mapeo o asociacin de elementos de un conjunto con elementos de otro conjunto; se denota f : x y. De manera formal una funcin de un conjunto X a un conjunto y es una relacin binaria R sobre X y Y con la siguiente propiedad: para cada elemento a X, hay exactamente un para ordenado en R con a como primer elemento.

f(x) denota el elemento de y asignado a un elemento x X. X es el dominio, el rango de f es el subconjunto de Y consistente de los miembros de Y que son asignados a elementos de X Rango = {y Y | y = f(x) para alguna x X}

___________________________________________________________Othoniel Rivera Mndez

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

Alfabetos, cadenas y lenguajes Smbolos : elementos indivisibles a algo entren para 1 perro nada for

Un alfabeto es un conjunto de smbolos (Formalmente, un conjunto no vaco y finito de smbolos). Se denota con . letras = {a, b, c, d, e, f, g, .... , z} dgitos = {0,1,2,3,4,5,6,7,8,9} palabras = {a, en, nada, len, Pedro, si, entrada} keywords = {main, void, do, while, if, for, .... } Una cadena sobre un alfabeto es una secuencia finita de smbolos del alfabeto. dado = {a, b, c, d, e, f, ...} hola, todo, papa, dfgg, sdgsadg, gsdg, casi, si,no son cadenas sobre el alfabeto Una cadena sobre el alfabeto de un lenguaje de programacin es un programa Una cadena sobre el alfabeto del idioma espaol es una oracin Los elementos de un alfabeto se denotan con las primeras letra del alfabeto (el nuestro) a, b, c, d, e, f, etc. Las cadenas se denotan con u, v, w, x, y, z.

En un lenguaje de programacin o el lenguaje natural se cambia la notacin ya que su alfabeto son los elementos del lenguaje. Las cadenas son los elementos fundamentales usados en la definicin de lenguajes Cada smbolo de un alfabeto es una cadena sobre dicho alfabeto. La cadena vaca es una palabra sobre cualquier alfabeto, no contiene elementos y se denota con el smbolo Si es un alfabeto, * denota el conjunto de todas las cadenas sobre el alfabeto y se conoce como cerradura de o lenguaje universal sobre ___________________________________________________________Othoniel Rivera Mndez

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

* es infinito para cualquier Definicin: Si es un alfabeto, *, el conjunto de cadenas sobre se define como sigue: * Si w * y a , entonces wa * w * si y solo si se puede obtener desde , aplicando la operacin en 2 un numero finito de veces.1. 2.

Un lenguaje consiste de cadenas sobre un alfabeto. Generalmente se colocan algunas restricciones sobre las cadenas que componen el lenguaje. El espaol consiste de aquellas cadenas de palabras que llamamos oraciones. No todas las cadenas de palabras forman oraciones en un lenguaje, solo aquellas que cumplen ciertas condiciones en el orden y tipo de las palabras. Lo mismo pasa en un lenguaje de programacin. Por tanto, un lenguaje consiste en un subconjunto de todas las cadenas del alfabeto. Definicin: Un lenguaje sobre un alfabeto es un subconjunto de *. OPERACIONES CON CADENAS Longitud Si w es una cadena, = long(w) es la longitud de la cadena, es decir, l w nmero de elementos que contiene.

Si contiene n elementos, existen nk cadenas de longitud k en *. dado = {a, b} 2 = {aa, ab, ba, bb} 3 = {aaa, aab, aba, abb, baa, bab, bba, bbb} Concatenacin La concatenacin es la operacin binaria de tomar dos cadenas y aadir una a la otra para construir una nueva cadena. Es la operacin fundamental para construir cadenas. Definicin:___________________________________________________________Othoniel Rivera Mndez

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

Sean u,v cadenas que pertenecen a *. La concatenacin de u y v, escrita uv se define como:1. 2.

Si long(v) = 0 entonces v = y uv = u = u. Sea v una cadena con longitud long(v) = n > 0. Entonces v = wa, para alguna cadena w con longitud n-1 y a , uv = (uw)a

Ejemplo : Sea u=ab, v=ca, w=bb uv=abca (uv)w= abcabb vw=cabb u(vw)=abcabb

Potencia Los exponentes se usan para indicar concatenacin consigo misma. Si u = ab y v= ba uv=abba vu=baab u2=abab y no aabb=a2b2 n=0 n W = wwn-1 n > 0

Igualdad, prefijo y sufijo, subcadena Si w y z son cadenas w=z si tienen los mismos elementos en la misma posicin Si w y x son cadenas, x es prefijo de w si para alguna cadena y se obtiene w= xy Las subcadenas pueden ser definidas usando la concatenacin. u es una subcadena de v si u ocurre dentro de v. Formalmente : u es una subcadena de v si existen cadenas x,y tales que v=xuy Inverso El inverso de una cadena es la cadena escrita al contrario abc Definicin:___________________________________________________________Othoniel Rivera Mndez

cba

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

1.- Si long(w) = 0 w= y I = wI = w 2.- Si long(w) = n >=1, entonces w=ua para alguna cadena u de longitud n-1, a y wI = auI

Especificacin finita de lenguajes Introduccin Muchos lenguajes son infinitos, por tanto no se pueden representar en extensin, por lo que se deben representar en intensin La especificacin de un lenguaje requiere descripcin sin ambigedades. Un lenguaje finito se describe explcitamente definiendo sus elementos en forma enumerada. Las operaciones con cadenas se pueden extender a operaciones sobre conjuntos y a su vez sobre cadenas. Las descripciones de lenguajes infinitos se construyen a partir de conjuntos finitos usando operaciones de conjuntos

Operaciones con lenguajes Definicin: La concatenacin de los lenguajes X y Y, denotada XY es el lenguaje XY={uv | u X y v Y} No se requiere que X y Y sean lenguajes sobre el mismo alfabeto La concatenacin de un lenguaje consigo mismo se denomina potencia y se denota Xn Como un lenguaje es un conjunto de cadenas, se pueden definir unin, interseccin y sublenguaje como en los conjuntos en general. Si A y B son lenguajes sobre un alfabeto A B = {x | x A x B} A B = {x | x A y x B}

___________________________________________________________Othoniel Rivera Mndez

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

Un lenguaje A es subconjunto de un lenguaje B si todas las cadenas de A son tambin cadenas de B. Se denota A B. Cualquier lenguaje L sobre el alfabeto es un sublenguaje de * EJEMPLOS 1.- Cadenas sobre {a,b} que contengan bb L={a,b}* {bb}{a,b}* 2.- cadenas que inician con aa o terminan con bb sobre {a,b} L= {aa}{a, b}* {a, b}*{bb} 3.- Si L1={bb} y L2={,bb,bbbb} son lenguajes sobre {a,b} L1* y L2* representan cadenas con numero par de bs 4.- {aa,ab,ba,bb} son cadenas de longitud par sobre {a,b} {a,b}{aa,ab,ba,bb} y {aa,ab,ba,bb}{a,b} son cadenas de longitud non

___________________________________________________________Othoniel Rivera Mndez

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

5.- Cadenas que inician y terminan con a y contienen al menos una b {a} {a,b}* b {a,b}* {a} 6.- (a b)* aa (a b)* cadenas con aa (a b)* bb (a b)* cadenas con bb (a b)* aa (a b)* (a b)* bb (a b)* cadenas con aa o bb 7.- Contienen exactamente dos bs sobre {a,b} a*ba*ba* 8.- Cadenas con al menos dos bs (a b)* b (a b)* b (a b)* 9.- Un numero par de bs a* (a* b a* b a*) * 10.- Sobre {a,b} que no contengan aa b* ( ab+)* b* ( ab+)* a (b ab)* (b ab) * a 11.- Cadenas que contienen bc sobre {a,b,c} (a b c ) * bc (a b c) * 12.- Cadenas sobre {a,b,c} que no contienen bc c* (b ac*) * EJERCICIOS Todas las bs preceden a las cs que a su vez preceden las cs a*b*c* Lo mismo sin la cadena vacia a+b+c+ ...... Sobre {a,b} en que aa ocurre solo una vez b* (ab+)* aa (b+a)* b* (ab b)* aa (ba b)* No contienen aaa sobre {a,b} {b,ab,aab}* {b,ab,aab}* a {b,ab,aab}* aa b* b* (a aa) (bb* (a aa) )* b* EJERCICIOS No contiene aa sobre {a,b}___________________________________________________________Othoniel Rivera Mndez

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

{b,ab}* {b,ab}* a Sobre {a,b,c} que no contenga aa {b,c,ab,ac}* {b,c,ab,ac}* a Sobre {a,b,c} que inicia con a, contiene exactamente dos bs y termina con cc {a} {a,c}* b {a,c}* b {a,c}* {cc} Sobre {a,b} en que el numero de as es divisible por 3 b* (b* a b* a b* a b*) *

EQUIVALENCIA DE EXPRESIONES REGULARES Es posible que varias expresiones regulares representen el mismo lenguaje. Dos ER que representan el mismo lenguaje se llaman equivalentes (0 + 1)* = (1* 0*)* = (1 + 0)* Cadenas de 1 y 0s (a*b) = + (a + b)* b cadenas con as y bs que terminan con b o son la cadena vaca a* b a* b (a b) * (a b) * b a* b a* (a b) * b (a b) * b (a b) * definen el conjunto de cadenas sobre {a,b} que contienen dos o mas bs Principales equivalencias rs=sr (r s) t = r (s t) r=r=r rr=r r=r=r r= r= (r s) t = r (s t) r ( s t ) = rs rt (r s ) t = rt st

Continuacin r * = r* r* = (r*) * = ( r)* * = * =___________________________________________________________Othoniel Rivera Mndez

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

r * = r r* (r s)* = (r* s *) * = (r*s*)* = r*s)*r*= r*(sr*-)* r*r=rr* r(sr)* = (rs)* r (r*s)* = (rs)*s (rs*)* = r(rs) Las expresiones regulares equivalentes se usan para verificar si dos ER representan el mismo lenguaje o para simplificar expresiones. Ejemplo: Probar si (ab a)* a = a (ba (ab a)* a = (ba b)* a = (a* ab)* a* a = ( aa* b)* a* a = a*a (b a*a) * = a a* (b a a*) * = a a*(ba a*)* = a (a ba) * = a (ba a) *

a )* r+s=s+r (r+s)*=(r*s)*r* (rs)*r = r(sr)* r*r = rr* r*(sr*)* = (r + s)*

EJEMPLO: Simplificar la siguiente expresion (b + aa*b) + (b + aa*b) (a + ba*b)* (a + ba*b) = (b + aa*b) ( + (a + ba*b)* (a + ba*b) ) = (b + aa*b) (a + ba*b)* = b ( + aa*) (a + ba*b)* = ba* (a + ba*b)*

EJEMPLO Cadenas que no contienen aa sobre {a,b} b*(ab+)* (b* (ab+)* a = b*(ab+)* ( a) = b* (abb*)* ( a) = (b ab)* ( a) u*(vu*)* = (u v)*

___________________________________________________________Othoniel Rivera Mndez

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

esto es b*(ab+)* = (b ab)* EJEMPLOS 1.- (ba+) (a*b* a*) = (ba)* b a+ (b* ) =(ba)* b aa* (b* ) =(ba)* ba a* (b* ) =(ba)+ a* (b* ) =(ba)+ (a* b* a*) = b (b* a* ) b+ = b (b* a* ) b* b = b (b* a* b* b*) b = b b* ( a* b* ) b = b+ (a* b* )

2.- b+ (a* b* )

3.- (a b) * = (b* (a ) b*)* = (b* a b*) b*)* = (b*ab* b*b*) * = (b*ab* b*) * = b* (ab* ) * = b* ((ab*)*)* = b* (ab*)* = (b a) * = (a b) *

(r )* = (r*)* = r* r*(sr*)* = (r s)*

EXPRESIONES REGULARES Problema: Obtener una ER que corresponda a un lenguaje dado 1. Las palabras que represente la ER propuesta deben satisfacer la descripcin del problema 2. La ER propuesta debe representar todas las palabras que satisfagan la condicin

___________________________________________________________Othoniel Rivera Mndez

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

Ejercicio: Encontrar una ER sobre {a,b} en que las palabras contienen exactamente una vez dos bs contiguas ER = contexto1 bb contexto2 contexto1=toda b esta seguida por a c = {ba bc a c) contexto2=toda b esta precedida por a c = {ab cb a c) ER= {ba bc a c) bb {ab cb a c) Ejercicio : Obtener una ER para el lenguaje sobre {a,b} en que las palabras son de longitud par y tienen al menos 3 bs ER = cont1 b cont2 b cont3 b cont4 Ejercicio : Expresin regular sobre {a,b} en que las palabras contienen exactamente dos ocurrencias de aba (las ocurrencias pueden traslaparse) Caso 1.- No se traslapan ER= cont1 aba cont2 aba cont3 cont1 = no contienen aba ni terminan con ab ba (bb a)* ... Caso 2.- Si se traslapan ER = cont4 ababa cont5 cont4= no contienen aba ni terminan con ab.

AUTOMATAS FINITOSMaquinas abstractas Algunas maquinas se analizan separando los fundamentos del diseo de los detalles de Implementacin. La descripcin independiente de la Implementacin se conoce como maquina abstracta. Las maquinas abstractas ms simples son los autmatas finitos, relacionados con los lenguajes regulares. Una propiedad comn a todas las maquinas incluye el proceso de una entrada y la generacin de una salida. Una maquina expendedora acepta monedas y proporciona un producto

___________________________________________________________Othoniel Rivera Mndez

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

Una caja fuerte acepta secuencias de nmeros y abre si la secuencia es correcta Un elevador acepta peticiones de piso y genera un movimiento En el caso de los autmatas, la entrada consiste de una cadena sobre un alfabeto. La salida indica si la cadena es aceptada o no.

Maquinas de estado finito La definicin formal de una maquina tiene mas relacin con una descripcin de las operaciones internas que efecta para procesar la entrada que con el hardware de la misma. Una maquina puede ser visualizada con los siguientes componentes: Una cinta de entrada Una cabeza lectora Un control a b a a b

La cabeza se coloca en la cinta y lee un carcter y lo enva al control y puede recorrerse un lugar a la derecha. El control puede estar cambiando de posicin. La cantidad de posiciones de la aguja del control es fija y finita. Las posiciones se llaman estados (existen estados finales o de aceptacin)

Hay una manera de saber que ya se acabo la entrada y esto es cuando el autmata finito termina de leer la cinta de entrada: Si esta en un estado final se acepta Si esta en un estado no final se rechaza No tienen memoria o es ilimitada. Ejemplo: Maquina vendedora de peridicos Acepta $2, $1 y 50c, al insertar $3, se entrega un peridico Entrada ={d, p, c} *={d, p, c}*

L = Combinacin de elementos de *___________________________________________________________Othoniel Rivera Mndez

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

Estado inicial: necesita $3 Otros estados: necesita $2.5 necesita $2 necesita $1.5 necesita $1 necesita 0.5c Estado final: ya recibi $3 Autmatas Finitos Deterministicos. Este tipo de maquina abstracta puede usarse para determinar la aceptabilidad de cadenas de entrada Definicin: Un autmata finito deterministico es un quntuplo (Q, , , q0, F) Q= Conjunto finito de estados = Alfabeto de entrada : Q x Q Funcin de transicin q0 Q es el estado inicial F = Conjunto de estados finales La funcin de transicin indica a que estado se va a pasar sabiendo el estado actual y el smbolo que se esta leyendo. Es una funcin y no una relacin: esto permite el DETERMINISMO, que es saber cual ser el siguiente estado.

Un autmata puede equipararse con una maquina Registro simple Conjunto de valores para el registro Una cinta Un lector Conjunto de instrucciones Los estados de un AFD representan el estado interno de la maquina. El registro de la maquina (control finito) contiene uno de los estados como su valor. La entrada es una secuencia finita de elementos del alfabeto. La cinta almacena la entrada hasta que se requiera y es infinita. La lectora lee un elemento de la cinta El conjunto de instrucciones se construye de la funcin de transicin. Una COMPUTACIN en un autmata consiste de la ejecucin de una secuencia de instrucciones. La ejecucin de una instruccin altera el estado de la maquina y mueve la cinta a la derecha.

___________________________________________________________Othoniel Rivera Mndez

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

El smbolo de entrada y el estado determinan la instruccin a ser ejecutada. La accin de una maquina en el estado qi con el smbolo a lleva a la maquina a (qi, a). Como la funcin es total, hay una sola instruccin. Una computacin del autmata determina la aceptabilidad de la cadena de entrada. Inicia con la lectura de la cinta, leyendo el primer smbolo y el estado q0. Ejemplo: Q ={ q0, q1} ={a, b} F = {q1} q0 = estado inicial ( q0, a) = q1 ( qi0, b) = q0 ( q1, a) = q1 ( q1, b) = q0a b b a a a

q0

a

q1 b

aq0o

Definicin: Sea M=(Q, , , q0, F) un AFD. El lenguaje de M, denotado L(M) es el conjunto de cadenas en * aceptado por M. Un AFD puede considerarse un aceptador de lenguajes; el lenguaje reconocido por la maquina es el conjunto de cadenas que son aceptadas por sus computaciones. Un AFD lee la entrada de IZQ a DER; cuando un smbolo se ha procesado no tiene mas efectos sobre la computacin. En cualquier instante el resultado depende solo del estado actual y la entrada no procesada. Esto se denomina configuracin de maquina instantnea. Configuracin de maquina instantnea Se denota por [qi , w] donde w *. El ciclo de instruccin de un autmata transforma una configuracin de maquina a otra. La notacin: [qi , aw] M [qj, w] indica que [qj, w] se obtiene por la ejecucin de un ciclo de instruccin de la maquina M. Definicin:___________________________________________________________Othoniel Rivera Mndez

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

La funcin M sobre Q x + es definida [qi , aw] M [ (qj, a), w] para a y w*, donde es la funcin de transicin del autmata M. [qi , u] *M [qj, v] indica que mas transiciones. Ejemplo: [qi , v] puede obtenerse a partir de [qj, u ] por cero o

El autmata M acepta el conjunto de cadenas sobre {a, b} que contienen bb. Esto es: L(M) = (ab)* bb (a b)*

Q={q0, q1,q2} ={a, b} F = {q2} (q0, a) = q0 (q0, b) = q1 (q1, a) = q0 (q1, b) = q2 (q2, a) = q2 (q2, b) = q2 Computaciones de M para abba: [q0 , abba]*M [q0 , bba]*M [q1 , ba]*M [q2 , a]*M [q2, ] Computaciones de M para abab : [q0 , abab]*M [q0 , bab]*M [q1 , ab]*M [q0 , b]*M [q1, ] Ejemplo : la maquina expendedora de peridicos Q={q0,q50,q100,q150,q200,q250,q300} = {d, p, c} F = { q0 } q0 = q300 //Cuidado con el nombre de los estados

Diagramas de estado

___________________________________________________________Othoniel Rivera Mndez

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

El diagrama de estados de un AFD es una grfica dirigida en la que los nodos representan los estados de la maquina y los arcos se obtienen de la funcin de transicin Definicin: El diagrama de estados de un AFD (Q, , , q0, F) es una grfica dirigida G definida por: i. Los nodos de G son los elementos de Q ii. Las etiquetas de los arcos de G son elementos de iii. q0 es el nodo inicial iv. F es el conjunto de nodos de aceptacin. v. Hay un arco del nodo qi al qj etiquetado a si ( qi, a) = qj vi. Para cada nodo qi y smbolo a, hay solo un arco etiquetado a que sale qi Ejemplo: Expendedora de peridicos

q0

q1

q2

q3

q4

q5

qf

Ejemplo: Cadenas que contengan bb sobre {a,b}

aqo

a,b bq1

b

q2

aEjemplo: Cadenas que no contengan aa sobre {a,b}

bqo

a b

q1

q0 q1 q2 Ejemplo: Cadenas sobre {a,b} que contengan bb o no contengan aa

a

a

b a a

q3

b

___________________________________________________________Othoniel Rivera Mndez b q4

a

b

a bq5

q6 6

b

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

Teorema Sea M= (Q,,, q0,F) un AFD M=(Q,,, q0,Q-F) es un AFD en donde L(M)=*-L(M) Ejemplo: Cadenas sobre {a,b} con un numero par de as y un numero non de bs

bq0 q1

aq2

a

b b b

aq3 o

a

Determinismo incompleto. Por definicin, un AFD debe procesar la cadena entera aun si el resultado ya se defini. Ejemplo: AFD que acepta (ab)*c

aq0 q1

c

b

q2 ___________________________________________________________Othoniel Rivera Mndez

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

Para completarlo (hacerlo deterministico) se crea un estado de error

aq0 q1

b cq2

bqe

a,c

a,b,cEjercicios: 1. Sea M el AFD: Q={q0,q1,q2} ={a, b} F={q2} q0 q1 q2 a q0 q2 q2 b q1 q1 q0

a) Dar el diagrama de estados b) Trazar las computaciones de M para procesar abaa bbbabb 2. Dadas las siguientes expresiones regulares de su diagrama de estados: a) a* b) (aub)+ c) (ab)*ba(ab)* d) (ab*a)* e) (ab)*(ba)* f) ((aa)+bb)* g) aa(aub)+bb h) ((a*b*a*)*b)*___________________________________________________________Othoniel Rivera Mndez

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

i) (ba u b)*u(bb u a)* j) (ab u aab u aba)* k) a*(b+a+ba*)* l) (ab)*u a* m) (ab+a)+ 3. a) b) c) d) Dados los siguientes enunciados d el diagrama de estados: cadenas que contengan por lo menos una vez bb sobre el {a,b} Que no contengan ba sobre el alfabeto {a,b} Que genere cadenas de longitud par sobre el alfabeto {a,b} Que todas las cadenas generadas sean menores a tres sobre el alfabeto {a,b,c} a =

a*

q0

aq0

aq0

a

q1

a

a+

= a+a = aa*AFN: porque me lleva a dos estados con a desde q0

q1

a b (a b)*q0

a b (a b)+q0

a,b

q1

b (ab)* baq0

a b

q1

a a, b

qE

q2 ___________________________________________________________Othoniel Rivera Mndez a q3

b

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

b (ab)* ba (ab)*q0

a b

q1

b aq3

q2

a b

q4

q1

a a

q0

(ab*a)*

(ab)* (ba)*q0

b a b aq3 q1

bq2

((aa)+ bb)*

b a a a b

q0

q1

q2

q3

___________________________________________________________Othoniel Rivera Mndez

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

aa (ab)+ bb aq0

a

q1

a

q2

a,b

q3

a b

q4

b a

q5

b

q6

a a o tambin aq0 q1

q7

a bq8

b

a aq2

b b b aq4 q5

a,bq3

a

a(ab)*b a aq0 q1

b

bq2

a

(a b+ a* ) + b aq0 q1

a a bq3

b aq2

___________________________________________________________Othoniel Rivera Mndez

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

a,b aq0

q1

bq2

a* (ab) b* a bq0

b

a

q1

(ab aab aba)* aq6

b

aq0

q1

bq2

aq3

a bq4

bq5

a

(ba b)+ (bb a)*

b b a b aq0 q1 q2 q3 q4 ___________________________________________________________Othoniel Rivera Mndez

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

b bq5

b aq6

a aq7

bq8

b

b

Realice un AFD que acepte cadenas que contengan bb una sola vez. aq0

a bq1

b a

aq3 q4

b bq2

a

Realice un AFD en el que si ocurre bb, no ocurra aa y viceversa.

b aq0 q1

b a

q2

bq3

aq4

b

a bq5 q6

a Realice un AFD que acepte cadenas que contengan par de as y non de bs. bq0

b

q1

___________________________________________________________Othoniel Rivera Mndez

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

a

a

a

a

bq3

b

q2

Realice un AFD que genere cadenas que contengan bb por lo menos una vez. aq0

a, b b aq1

b

q2

Realice un AFD que genere cadenas que no contengan ba. a bq0 q1

b

Realice un AFD que genere cadenas en las que todas las as esten antes que las bs y todas las bs antes que las cs.

aq0

b b cq1

c cq2

___________________________________________________________Othoniel Rivera Mndez

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

Realice un AFD que genere cadenas en las que todas las as esten antes que las bs y todas las bs antes que las cs y que adems no contenga cadena vaca. aq2

b bq1

c cq2

a b

q0

c c

Dada la siguiente tabla de transiciones: q0 q1 q2 a q0 q2 q2 b q1 q1 q0

a) dar el diagrama de estados. b) Trazar las computaciones para procesar: abaa bbbabb

a) aq0

b bq1

a aq2

b

b)

[q0baa] = >

M

[q1aa] = >

M

[q2a] = > M [q2]

cadena vlidaM

[q1bbabb] = > M [q1bab] = > M [q1abb] = > M [q2bb] = > cadena no vlida, q1 no es estado de aceptacin

[q0b] = >

M

[q1]

___________________________________________________________Othoniel Rivera Mndez

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

Equivalencia entre autmatas finitos Para un lenguaje dado no existe un autmata finito nico que lo acepte Definicin Dos autmatas M1 y M2 son equivalentes M1 M2 cuando aceptan el mismo lenguaje. Ejemplo:- Cadenas de as sobre {a,b} : a*

a,b bq0 q1 q0

a bq1

a,b

a a bq2 1

La demostracin de equivalencias de dos autmatas se convierte en la demostracin de igualdad de los lenguajes que se aceptan. Si los lenguajes son infinitos, esto se complica Teorema de Moore Existe un algoritmo para decidir si dos autmatas son equivalentes o no. Este algoritmo consiste en la construccin de una tabla de comparacin de autmatas. Esta tabla permite convertir el problema de los lenguajes aceptados en un problema de comparacin de estados de los autmatas Definicin Dos estados q y q son compatibles si ambos son finales o ninguno de los dos es final. En caso contrario, son estados incompatibles. La idea es: Averiguar si existe alguna secuencia de caracteres w tal que siguiendo simultneamente en los dos autmatas se llega a estados incompatibles. Si dicha secuencia no existe, entonces los autmatas son equivalentes. Para lograrlo, se crea una estructura, la tabla de comparacin que consta de | | + 1 columnas y se construye de la siguiente manera:

___________________________________________________________Othoniel Rivera Mndez

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

1. Inicialmente se anota en la columna 0 un par ordenado(s,s) que contiene los estados iniciales de M y M respectivamente.2.

Si en la columna 0 hay un par (r,r), en las columnas 1 a | | + 1 se escriben los pares (rx,rx) de estados a los que se llega a partir de (r,r) por medio de transiciones con el smbolo x Cada par (rx,rx) generado en el punto 2 que no aparezca en la columna 0 se anota ah.

3.

4. Si aparece en la columna 0 un par (r,r) tal que r es un estado final y r no los es, o viceversa, se interrumpe la construccin de la tabla, concluyendo que los dos autmatas no son equivalentes. En caso contrario se continua a partir del paso 2.5.

Si no aparecen nuevos pares (rx,rx) que no estn en la columna 0, se termina el proceso, concluyendo que los dos autmatas son equivalentes.

Ejemplo: Comparar M

a a,bq1

Mr0

a,b br1

bq0

a a bq2 1

Diagramas de estados (q0 , r0 ) (q2 , r0 ) (q1 , r1 ) a (q2 , r0 ) (q0 , r0 ) (q1 , r1) Tabla Simplificacin de autmatas finitos b (q1 , r1 ) (q1 , r1) (q1 , r1)

___________________________________________________________Othoniel Rivera Mndez

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

En ER la simplificacin se hacia aplicando equivalencias. En AFD, la simplificacin es la reduccin del numero de estados pero aceptando el mismo lenguaje que antes de la simplificacin. Definicin Dos estados son equivalentes q1 q2 si al intercambiar uno con otro en cualquier configuracin, no se altera la aceptacin o rechazo de toda palabra. Formalmente : Dos estados p y q son equivalentes si cuando [[s, uv]] *M [[q,v]] *M [[r,]] y [[p, v]] *M [[t,]] entonces r y t son estados compatibles Esta definicin quiere decir que, si p y q son equivalentes, al cambiar q por p en la configuracin, la palabra va a ser aceptada (se acaba en el estado final t) si y solo si de cualquier manera iba a ser aceptada sin cambiar p por q (se acaba en el estado final r). Esta definicin nos dice que son los estados equivalentes pero no como saber si dos estados son equivalentes Para ello se utiliza el siguiente lema Lema Dado un AFD M=(Q,,, q0,F) y dos estados q1, q2 Q, q1 q2 ssi (Q,,, q1,F) (Q,,, q2,F) es decir, para saber si dos estados q1 y q2 son equivalentes, se les pone a ambos como estado inicial de dos autmatas M1 y M2 y se comparan dichos autmatas. Si son equivalentes los autmatas, quiere decir que los estados q1 y q2 son equivalentes. Si dos estados son equivalentes, se puede eliminar uno de ellos para evitar redundancias y hacer mas eficiente el AFD. Criterios 1. Las flechas que salen del estado eliminado son eliminadas 2. Las flechas que llegan al estado eliminado son redirigidas hacia su estado equivalente La eliminacin de estados redundantes de un AFD es suficiente para simplificarlo al mnimo. Sea (M) el AFD que resulta de eliminar los estados redundantes (equivalentes a otros) Teorema___________________________________________________________Othoniel Rivera Mndez

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

Al eliminar los estados redundantes de un AFD M, se llega a un AFD mnimo (M) que no contienen estados equivalentes y que es nico para el lenguaje L(M) = L((M)) Algoritmo Para cada par (q1 , q2 ) de estados: 1. Correr el algoritmo de equivalencia con (Q,,, q1,F) y (Q,,, q2,F) 2. Si q1 q2, eliminar q2 y repetir hasta que no haya estados que eliminar Ejemplo: Comparar

a,b bq0 q1 q0

a,b bq1

a a bq2 1

a aTabla A (q2 , q0 ) (q0 , q2 ) (q1 , q1 ) b (q1 , q1 ) (q1 , q1 ) (q1 , q1 )

bq2 1

(q0 , q2 ) (q2 , q0 ) (q1 , q1 ) q0 y q2 son fusionables. Autmatas con salida

La definicin de un AFD permite dos salidas: ACEPTACIN o RECHAZO. La salida se puede extender para tener valores asociados a los estados o a las transiciones Dos tipos de autmatas con salida Autmatas de MOORE.- La salida depende del estado Autmatas de MEALY.- La salida depende de las transiciones Autmatas de Moore La salida depende del estado en que se encuentre el autmata. Ejemplo

1 0

0,1

___________________________________________________________Othoniel Rivera Mndez q0 q1

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

0 Formalizacin

1

Un Autmata de Moore se define como (Q,, ,, ,q0) - Es el alfabeto de salida - Es una funcin de Q a que obtiene la salida Del ejemplo: Q={q0 , q1 } ( q0)= 0 ( q1)= 1 q0 q1 == {0,1}

0 q1 q1

1 q0 q0

El resultado de una computacin en un Autmata de Moore puede ser el valor asociado al estado en que termina

Ejemplo: Un autmata que calcula el MOD 4 de la suma de los elementos de la cadena de entrada sobre el alfabeto = {0,1,2,3}.

0 0 1q0

0 1 bq1

3 3 2 2 3 2 3 1 0 0 2 3 1

1

q3 ___________________________________________________________Othoniel Rivera Mndez 2 q2 3 o

3

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

Cada estado esta asociado con un numero (0-3) Ejemplo: (2323)=10%4 0 (2)=2 (3)=1 (2)=3 (3)=2 residuo es igual al valor de 2 (1111)=4%4=0 (1)=1 (1)=2 (1)=3 (1)=0 residuo es igual al valor de 0

Autmata de Mealy. La salida depende de las transiciones que ocurren durante la ejecucin del autmata 1/0 Ejemplo: Inversor

q0

Formalizacin

0/1

Un Autmata de Mealy se define como (Q,,,, ,q0)___________________________________________________________Othoniel Rivera Mndez

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

- Es una funcin de Q x Del ejemplo: Q={q0 } = {0,1} ( q0,1)= 0 ( q0,1)= q0 ( q0,0)= 1 ( q0,0)= q0 Equivalencia de Mealy y Moore Criterio de equivalencias Producen la misma salida al recibir la misma entrada(a excepcin de la primera salida de Moore) Prueba de equivalencia Transformacin Moore Mealy (Mealy(q,a))= Moore((q,a)) Ejemplo: q0 q1 Moore : Q={q0 , q1 } Mealy : Q={ q0 , q1 } 0 q1 q0 ( q0)= 1 1 q0 q1 ( q1)= 0

( q0,0)= 0 ( q1,0)= 1 ( q0,1)= 1 ( q1,1)= 0

1 0q0

1q1

1/1 0/0q0

1/0q1

1

0

0

0/1

Aplicaciones Electrnica .- Controladores digitales Comunicaciones.- Protocolos, Codificacin Control .- Maquinas interactivas

Autmatas Finitos no deterministicos.___________________________________________________________Othoniel Rivera Mndez

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

En un autmata finito no deterministico, existen varias instrucciones que pueden ser ejecutadas a partir de una configuracin de maquina dada. Aunque no es la forma natural de ver a las computadoras, muchas veces es mas fcil de resolver en forma no deterministica. La funcin de transicin debe de especificar todos los posibles estados q, a los que la maquina puede llegar desde una configuracin dada. Un autmata finito no deterministico es un quntuplo (Q, , , q0, F) Q= Conjunto finito de estados = Alfabeto de entrada : Q x P(Q) Funcin de transicin q0 Q es el estado inicial F = Conjunto de estados finales La diferencia entre un AFD y un AFN es que un AFD especifica exactamente un estado al cual se puede ir a partir del estado actual y un smbolo de entrada y un AFN permite cero o mas estados. Ejemplo: ER=(aub)*bb. a,bq0

b

bq1

q2

qo q1 Q2 (qo,a)=qo (qo,b)=qo,q1 (q1,a)=0 (q1,b)=q2 (q2,a)=0 (q2,b)=0

a q0 0 0

b {qo,q1} q2 0

Realizar (aub)*bb(aub)* u (aub)*aa(aub)* a,bq0 b

a,b aq1

aq2

___________________________________________________________Othoniel Rivera Mndez

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

a,bq3

bq4

AFN - (Autmatas Finitos No determinsticos con cadena vaca)Las transiciones de estado a estado en los AFD y los AFN se inician con el procesamiento de un smbolo de entrada. La definicin de AFN permite transiciones sin entrada para procesar. Esto se conoce como transicin vaca. Definicin: Un AFN- es un quntuplo (Q,,,q0,F) Donde la funcin de transicin es una funcin de : Q x { }=> P (Q)

q 0

a

q1

q 3

b

q2

q0 q1

a q1 q3 -

b q2 q4 q4

bq4

q2 q3

Las transiciones vacas pueden usarse para construir mquinas complejas a partir de maquinas mas simples: Sea M1 y M2 los AFN-q0

M1

qf

q0

M2

qf

___________________________________________________________Othoniel Rivera Mndez

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

La unin de dos lenguajes se da de la forma siguiente: L(M1) u L(M2)

q0

q01

M1

qf1

qff

q02

M2

qf2

Concatenacin

q0

M1

qf

q02

M1

qff

Propiedad de cerradura

q0

q01

M1

qff

EJERCICIOS. Sea M1 que acepta cadenas que contengan bb sobre (a, b) a, bq0

a, bq1

b

bq2

Y M2 que acepta no aa sobre (a, b) b aq0 q1

___________________________________________________________Othoniel Rivera Mndez

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

b Entonces la unin de M1 y M2 es a, b

a, bq1 q1

q0

q01

b

bq2

qff

q02

b a b

1

La concatenacin de M1 y M2 es

a, bq0

a, bq1

bq02

b

b

q2

a b

q12

qff q22

Realice un AFN- para (a b)* ba aplicando las operaciones bsicas. aq1

q0

q0

bq1

Aplicando unin. a

q0

q1

q2

q5

q3

a b

b

q4

___________________________________________________________Othoniel Rivera Mndez

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

Aplicando la cerradura.

q2

a

q3

q0

q1

q4

b

q5

q6

q7

ba

q0

b

q1

q2

a

q3

(a b)* ba

a

q0

q1

q2

q3

q6

q4

q7

b

q5

___________________________________________________________Othoniel Rivera Mndez b a q1 q1 q8 q9

0 1

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

Dados los siguientes autmatas: Realice sus tablas de transiciones.

q0

a b bq2

aq1 q0 q1 q2 q1 q0 q0 q1 q0 q1

bq2 q0 q1 q0

cq2 q0 q0 q2 q0 q2

c

aq0

c

q1

aq0 q1 q1 q2 q0 q0 q1 q2 q0 q1 q2

bq1 q2 q0 q0 q1 q2 q0 q1 q2

cq0 q1 q2 q0 q1 q2 q0 q1 q2

bq2

q2

Autmatas Finitos y Conjuntos Regulares Todo lenguaje regular es reconocido por un AF y cada lenguaje que es aceptado por un autmata es regular. De hecho todos los LR son reconocidos por un AF y se demuestra mediante la construccin de AFN- mediante las reglas bsicas de construccin (unin , concatenacin y estrella).___________________________________________________________Othoniel Rivera Mndez

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

Por otra se requiere obtener la ER equivalente al diagrama de estados, y para esto es necesario extender la definicin del diagrama de estados. Una grafica de expresiones es una grafica dirigida en la cual los arcos estn etiquetados con pequeas ER en sus transiciones. Construcciones bsicas. La reduccin se logra eliminando nodos de la grfica. Para transformar un autmata a una ER, lo que tenemos que realizar es una eliminacin de estados, hasta que quede un autmata simple. wq0

= w*

q0

w1

q1

w2q2

= w1w2

q0

w1w2q1

w3q0

w3q0

w1

q1

w2q2

w1w2q1

= w1w2w3*

w2q0

w1

q1

w3q2

q0

w1

w2* w3q1

xq0

q1

y

z

z

___________________________________________________________Othoniel Rivera Mndez x q1 q0 (z xy)* y q0 q0 q0 w aa w*x(z xw*y)* b x a y b q z a,b1

xy

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

z xq0

w zq1 q0

xw*y (z xw*y)*

y

Ejercicios. aq0

a,bq1

b a a

b

q2

a*b(a+b)* ER de q0 a q1q1

q0

b a

a,b

q0

a*b(a+b)* b (a b)* a

q1

ER = a*b(a+b)* b (a b)*

q0

a a

q1

b a b

q3

De q0 a q1 = a+ baq0

q2

a+b aaq3

___________________________________________________________Othoniel Rivera Mndez

G2) G1) =q

0

b0q00 qq

bb a

aa

q1

q1q1 q1

ba + ba ab

q2

+ b q2 b = b* b*ER1 ER=ER1+ER2b*a(ab )* = ER2)* = = b*a(ab+

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

q0

a+b

q3

aq2

a b

ER = ( a+b aa)(ba)*

a,bq0

b b

q1

a aq2

a,bq0

b b

q1

G1) =

a aq2

(aa)* = ER1

a,bq0

b b

q1

a G2) = aq2

ER= (aa)* a(aa)*

___________________________________________________________Othoniel Rivera Mndez

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

bq0

b b aq1

b G1) =q0

a b

q2

(b ab)* = ER1

a bq2

b G2) =q0

aq2

b*a(b+a)* = ER2

b

ER = ER1 + ER2 = (b ab)* b*a(b+a)*

aq0

a a b bq2 q1

aq0

a a bq1

G1) =

a b

aq2

aq0

a a+b b aq2 q0

a+b a b

q2

ER1 = (a (a+b a)b)*

a a G2) =q0

a b

q1

bq0

a aq1

___________________________________________________________Othoniel Rivera Mndez bb

a

b

q2

ER2 = (a ab)*a (a bb(a ab)*a)*

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

aq0

a a b aq2 q0 q1 q0

a a+b b a a+b a bq2

G3) =

a b

q2

ER3 = a* (a+b a) (ba*(a+b a))*

ER = ER1+ER2+ER3 = (a (a+b a)b)* (a ab)*a (a bb(a ab)*a)* a* (a+b a) (ba*(a+b a))*

Eliminacin del no Determinismo. Existe una forma de convertir de un AFN- en un AFD. Se construye una funcin de transicin modificada t, llamada funcin de transicin de entrada, cuyos valores son el conjunto de estados a los que se puede llegar al procesar un smbolo de entrada desde un estado dado.___________________________________________________________Othoniel Rivera Mndez

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

Considerando que algunas transiciones no esta etiquetadas con elementos del alfabeto si no con cadena y que a = a = a y no solo puede ir a un solo estado. Algoritmo: 1) Generar el diagrama de estados considerando a la 2) Sise generan conjuntos de estados que no aparezcan del lado izquierdo se anexan. 3) El nuevo estado tiene como transiciones los mismos elementos pero ahora del lado derecho, es la unin de los estados. 4) Repetir el paso 2 hasta que ya no se generen nuevos estados. 5) Los estados de aceptacin son aquellos estados que incluyan el estado de aceptacin del AFN-. Ejemplo: aq0

b a q1

a+c*b*

a

q2

c t a q0 { q0, q1,q2} q1 0 q2 0 q012 q012 q12 0

b 0 {q1} {q1} q1 q1

c 0 0 {q2,q1} q12 q12

aq0

c cq12

a b

q012

b

q 1 ___________________________________________________________Othoniel Rivera Mndez

b

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

Introduccin

Gramticas

Un lenguaje es un conjunto de cadenas sobre un alfabeto. Nos interesan las cadenas que tienen formas especificas y no las formadas en forma arbitraria. Las formas aceptables definen la sintaxis del lenguaje. Una cadena formada correctamente sobre un lenguaje natural se denomina oracin. Las cadenas sintcticamente correctas sobre un lenguaje de programacin se llamas programas. Un lenguaje sobre un alfabeto es el conjunto de cadenas validas y estas definen la sintaxis del lenguaje = {a, b} = {main, int, float, for}

El alfabeto de un lenguaje es un conjunto de elementos indivisibles a partir de los cuales se construyen las cadenas y estos dentro de las gramticas reciben el nombre de smbolos terminales del lenguaje, es lo que se maneja en un lenguaje de programacin como TOKENS. Adems de los smbolos Terminales se requiere usar smbolos intermedios adicionales para cumplir las restricciones sintcticas del lenguaje y se conocen con el nombre de VARIABLES NO TERMINALES. Una GRAMATICA es un conjunto de reglas para formar correctamente las frases de un lenguaje, como la del espaol, la de ingles, etc. DEFINICION: Una gramtica libre de contexto es un cudruple ( V, , P, S ) V : Conjunto de smbolos no terminales o variables, por lo general se denotan con maysculas del alfabeto. : Smbolos terminales que definen al alfabeto del lenguaje. P: Conjunto de Producciones que definen la sintaxis (Reglas) de un lenguaje. S: Smbolo inicial y es subconjunto de V. V = {S, A, B}

= {a, b}

___________________________________________________________Othoniel Rivera Mndez

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

P:

S A B

AB aA|a ER= a+ b+ bB|b

S AB aA bB aaA bbB aaa bbb

Una Regla o una produccin pertenece al conjunto Vx (V u ) La produccin [A, w] se escribe A w y se llama regla A, por referencia a la variable del lado izquierdo. * Como la cadena vaca pertenece al conjunto (V u ) , puede aparecer del lado derecho de la produccin. Una regla puede ser de la forma V y esta se le conoce como regla nula. Las gramticas se usan para generar cadenas sobre un alfabeto apropiadamente formadas. El paso fundamental de la generacin consiste de transformar una cadena mediante la aplicacin de una regla. La aplicacin de A w a la variable A en uAv produce la cadena uwv. Esto se denomina por uAvuwv Las gramticas se llaman de contexto libre debido a la aplicacin de las reglas. Una regla A puede ser aplicada a la variable A donde esta ocurra. Una regla puede ser aplicada independientemente de la forma del resto de la cadena. Una cadena w es derivable a partir de v. Si hay una secuencia finita de aplicacin de reglas que transforme v a w, esto es, si una secuencia de transformaciones. vw1w2w3...........wn=w Las reglas usan y la aplicacin las reglas usan por que las dos son relaciones sobre diferentes conjuntos: *. Una regla es una relacin sobre Vx (V u ) + *. Una aplicacin de una regla es un miembro de (V u ) x (V u ) El smbolo v+w designa derivabilidad usando una o mas reglas de aplicacin. vnw indica que w se deriva de v usando n reglas e indica la longitud de la derivacin. Si se requiere se debe indicar la vnGw gramtica G. Un lenguaje es un conjunto de cadenas sobre un alfabeto. Una gramtica consiste de un alfabeto y un mtodo para generar cadenas. Esas cadenas pueden contener variables y smbolos terminales. El smbolo inicial indica el inicio del procedimiento de generar cadenas aceptables. El lenguaje de la gramtica G es el conjunto de cadenas terminales derivables desde el smbolo inicial.___________________________________________________________Othoniel Rivera Mndez

*

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

Definicin: Sea G=(V,,P,S) una Gramtica libre de contexto. * 1. Una cadena w (V u ) Es una forma sentencial de G si hay una derivacin S*w en G. * 2. Una cadena w es una oracin de G si hay una derivacin . S*w en G * 3. El lenguaje de G, se denota por L(G) es el conjunto L(G)={ w | S*w} Las formas sentnciales son las cadenas derivables desde el smbolo inicial de la gramtica. Las oraciones son las formas sentnciales que solo contienen smbolos terminales. El lenguaje de una gramtica es el conjunto de oraciones generadas por la gramtica. Un conjunto de cadenas sobre un alfabeto se llama lenguaje libre de contexto que lo genera. Dos gramticas son equivalentes si generan el mismo lenguaje. La recursin se requiere en algunas reglas para generar lenguajes infinitos y cadenas de longitud arbitraria. Una regla de la forma A uAv se llama directamente recursiva, ya que puede generar uuuuuuuAvvvvvvv y se puede usar una regla A no recursiva para tener la recursin.

A w A uAw A la cual se llama directamente recursiva. Ejemplo: G=(V,,P,S) V={S,A} = {a, b} P: S A AA AAA| bA | Ab | a A AAA A bA A Ab A a

Determine si las cadenas son validas a) ababaa___________________________________________________________Othoniel Rivera Mndez

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

b) ababa Sol: a) S AA AAAA aAAA abAAA abaAA ababAA ababaA cadena valida ababaa b) S AA AbA abAAA abaAA ababAA ababa A cadena invalida

Las gramticas libres de contexto son generadores de lenguajes y deben disearse para generar las cadenas requeridas por los lenguajes formales y los lenguajes naturales. Hay 2 enfoques: 1. Especificar el Lenguaje y construir la gramtica que lo genere. 2. Analizar las reglas de una gramtica para determinar el lenguaje que genera.

Ejemplo: 1. G=(V, , P, S) V={S, B} = {a, b} Determinar su lenguaje

P: S a S a | a B a B b B | b

L(G)={an bm an | n, m>0} 2. S a S | b A A a A | b C C a C | Determine su lenguaje Er = a* b a* b a*3.

Dado el siguiente lenguaje determine su gramtica L(G) = {an bm cm d 2n | n, m>0} S aSdd | abBcdd

___________________________________________________________Othoniel Rivera Mndez

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

B bBc | 4.

Dado el siguiente lenguaje determine su gramtica L(G) = {an bm cm d 2n | n, m>=0} S aSdd | bBc | B bBc |

5.

Encontrar una gramtica que genera cadenas de longitud par sobre = { a, b} S aA | bA | S b S a | a S b | a S a | b S b | A aS | bS

Gramticas RegularesUna gramtica libre de contexto es una gramtica regular si satisface algunas condiciones del lado derecho de las producciones, las gramaticas regulares es un subconjunto de las gramticas libres de contexto. Definicin: Una gramtica regular es una gramtica libre de contexto en la que cada una de las reglas tiene la forma: A A A a aA A,B V y a

Jerarqua de Chomski.

Lenguajes sensitivos al contexto Lenguajes libres de contexto Lenguajes Regulares ___________________________________________________________Othoniel Rivera Mndez

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

Todo lenguaje regular puede ser generado por gramaticas regulares y no regulares. Ejemplo: a+ b*

no regular S A B AB aA | a bB | S B

regular aS | aB bB |

Estado Terminal Etiqueta a otro estado A estado de aceptacin Aa genera un nuevo estado llamado z y que ademas es de aceptacin Ejemplo:

A

A S aA | aB B b a a b B Z

S

EJERCICIOS.1.

S a S | a B B b B | Determine su lenguaje Er = a+ b*

2.

S a b S c B | B b B | b Determine su lenguaje

___________________________________________________________Othoniel Rivera Mndez

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

L(G) = {(ab)n (cbm)n | n>=0,m>0 }3.

Sobre el ={a, b, c} dar la gramtica que genere todas las cadenas con numero par de bs. SA b A b A | A S a S | c S | b A | A a A | c A | S | Aa A | c A | b S

4. Dada la siguiente gramtica encontrar su lenguaje S ASB | A aAb | B bBa | L(G) = {(ambm)n (boao)n | n, m, o>=0}

5. Realice una gramtica sobre el ={a, b} que acepte cadenas que no contengan cba. Sa S | b S | c A | Ac A |a S | b B | Bc A| b S | 6. Dada la siguiente gramtica determine su lenguaje SaaSB | BbB | b L(G)={(aa)2n (bm)n |n>=0,m>0}7.

Dada la siguiente gramtica determine su lenguaje SaSaa | B BbbBdd | C Cbd L(G)={ an (bb)m bd (dd)m a2n | n, m>=0}

8. Dada la siguiente gramtica determine su lenguaje Sa S | b S | A Ac A | c | S Er = (a U b U c)* c 9. Dada la siguiente gramtica determine su lenguaje SaSbb | A AcA | c___________________________________________________________Othoniel Rivera Mndez

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

L(G)={an cm b2n | n>=0, m>0} 10. Dada la siguiente gramtica determine su lenguaje Sa b S d c | A Ac d A b a | L(G)={(ab)n (cd)m(ba)m(dc)n | n, m>=0}

11. A partir de la expresin regular realice la gramtica para a) (a U b)* b) (a U b)+ c) (a+ b+)+ a) S a S | b S | b) S a A | b A A a A | b A | c) S a A A a A | b B B b B | S |

12. Construya una gramtica en el que las cadenas aceptadas sean un palndrome S a S a | b S b | a | b | 13.

Construya la gramtica sobre el ={a, b, c} para el lenguaje L(G)= {an bm c2n+m | n, m>=0} S a S c c | b A c | A b A c |

14. Dada la siguiente gramtica determine su lenguaje SAASB | AaAb | BbaB | ba L(G)={(an bn)2m ((ba)k)m | m,n,>=0, k>0}

EJERCICIOS DEGRAMATICAS REGULARES.___________________________________________________________Othoniel Rivera Mndez

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

1. Realice una gramtica Regular y una No Regular sobre el ={a, b, c} que acepte cadenas que contenga por lo menos 3 bs. Regular S a S | c S | b B B a B | c B | b C C a C | c C | b D Da D | b D | c D | No Regular SAbAbAbA AaA | bA | cA |

2. Realice una gramatica Regular y una No Regular para el lenguaje L(G)={an bm | n>=m } No Regular S aAb | A aA | aAb | Regular no se puede hacer

3. Realice una gramatica Regular y una No Regular en el que acepte todas las as esten antes que las bs y las bs antes que las cs y las cs antes que las as. Regular S aS | bB | cC | B bB | cC | C cC | No Regular S ABC A aA | B bB | C cC |

4. Lo mismo pero sin cadena vaca Regular S aS | bB | cC | a | b | c B bB | cC | b | c C cC | c No Regular S ABC A aA | B | a B bB | C | b C cC | c

5. Realice una gramtica Regular y una No Regular en el que acepte cadenas que inicien con a, tengan exactamente 2 bs y terminen con c. Regular No Regular S aA S aAbAbAc A Aa | cA | bB A aA | cA | B aB | cB | bC C aC | cC | c 6. Dada la siguiente expresion regular genera la gramatica regular y no regular Er = (ab)+ a* Regular S aA No Regular S AB

___________________________________________________________Othoniel Rivera Mndez

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

A bS | bB B aB |

A aC C bA | b B aB |

7. De una gramtica regular y una No regular que acepte cadenas que no contengan bc sobre = {a, b, c} Regular S aS | cS | bA | A aS | bA | No Regular S B | cS | bA | A aS | bA | B aS

8. Realice una gramtica que genere par de as y non de bs Regular S aB | bA A bS | aC | B aS | bC C bB | aA No Regular S D | bA A bS | aC | B aS | bC C bB | aA D aB

9. Dadas las siguientes gramaticas encontrar el automata y la Er. a) S aA | bA A aB | bB | a B aA | bA Er = (aUb) (abUbaUbbUaa)* a a,b S A a Z b) S bS | cS | aB | BaB | cS | bC | CaB | bS | a,b a,b

B

b,c a S c b B

a b C a

___________________________________________________________Othoniel Rivera Mndez

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

Er = (bUcUa+c)*(a+ b)+((a+cUb)(bUcUa+c)*(a+b))* U (bUc)*a((aUba)*((cUbb)(bUc)*a)*)* U (bUcUa+c)*((a+b)+(a+cUb)(a+cUbUc)*)*

c) S bS | aX | aa)* X bS | aY | Y bS |

Er = (bUab)* aa (b(buab)* b a S b b X Y a

d)

S aB | bS B bS | aT T bT | bX | b | X aT | bT S

Er = (bUab)* aa (bUbaUbb)* U (bUab)* aa (bUbaUbb)* b b a b b b T b a, b X Z

a B

10. Dadas las siguientes gramticas encontrar el autmata y la Er. a) S aS | bB | B aB | bS | bC C aC | a b S b B b C Er = (a* b a* b a* )* a a

b)

SaB | B bS | bA A aA | S a

Er = (ab)* U (ab)+ a* b B b A a

___________________________________________________________Othoniel Rivera Mndez

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

c)

Dado el siguiente autmata genere una Er, y la gramtica. a q0 b a b q1 q2 a, b

S aS | bA A aS | bB B aB | bB |

Er = (aUba)* bb (aUb)*

11. Para la siguiente expresin regular genere una gramtica equivalente. Er = bb(aUb)* U b(aUb)* S bA A bB | aB | B aB | bB | 12. Dado el siguiente lenguaje genere una gramtica equivalente L(G) = { a2n (bc)m dm | n>=0, m>0 } S aaS | bcAd AbcAd | 13. Dada la gramtica determine su lenguaje S aaSBB | BbB | b

L(G) = { (aa)n(bm bq)n | n,m>=0,q>0 }

14. Dada el siguiente lenguaje genere una gramtica equivalente L(G)= {a2n(bmcm)ndn | n >=0, m>0} No se puede resolver por que no puede generar las mismas m que n. 15. Para la siguiente expresin Regular b+(aUb)*a+ a) De una gramtica regular b) De una gramtica no regular

___________________________________________________________Othoniel Rivera Mndez

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

a)

S bS | bA A bA| aA | aB B aB|

b) S bAa AaA | bA |

15.

Determine el lenguaje de la siguiente gramtica. a) S AASB | AaAb | B baB | ba L(G)= {(ambm)2n((ba)j)n | n, m>=0, j>0}b)

S aaSB | B bB | b L(G)= {a2n(bm)n | n>=0, m>=0}

17. Dado el siguiente autmata genere una Gramtica Regular equivalente y su lenguaje. b q0 a b q1 a a b q2

S bS | aA | AbS | aB | bB | B aA

Er= (bUa(aaUab)*b)*

18. Dada la siguiente Gramtica Regular genere el autmata determine su lenguaje. S bS | cS | aB | B aB | cS | bC | C aB | bS | b, c a S c b B a b a C

equivalente y

Er = (bUcUa+c)*(a+ b)+((a+cUb)(bUcUa+c)*(a+b))* U (bUc)*a((aUba)*((cUbb)(bUc)*a)*)* U (bUcUa+c)*((a+b)+(a+cUb)(a+cUbUc)*)*___________________________________________________________Othoniel Rivera Mndez

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

19. Para la siguiente expresin Regular genere una Gramtica Regular Er= aa(aUb)*U(aUb)+bb S aA | aC | bC AaB B aB | bB | C aC | bC | bD D b6.

Realice una Gramtica Regular sobre el = {a, b, c} en la que todas las cadenas generadas no contengan la subcadena baa S aS | cS | bA AbA | cA | aB B bB | cS

7. Para el siguiente lenguaje genere una Gramtica equivalente L(G)= {a2n(bcm)dn | n>=0, m>0} S aaSd | A AbB B cB | c8.

Realice una Gramtica Regular que acepte cadenas pares de bcs sobre el ={a, b, c,} S aS | cS | bA | AcB | bA | aS | B aB | cB | bC C aB | bC | cS

Maquinas de TuringLas maquinas de Turing (Alan Turing) tienen caractersticas de las computadas modernas, considerando el concepto precedente de programa___________________________________________________________Othoniel Rivera Mndez

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

almacenado y provee un modelo para su diseo y desarrollo. Puede accesar y alterar cualquier posicin de memoria, que es ilimitada. La maquina de Turing es una maquina de estado finito. Las maquinas de Turing son mas generales que cualquier autmata finito y cualquier autmata de pila, debido a que pueden reconocer tanto los lenguajes regulares como los lenguajes independientes del contexto y, adems, muchos otros tipos de lenguajes. A pesar de ser mas potentes, son muy similares en los componentes y las acciones que realizan. La maquina de Turing estndar Una maquina de Turing es una maquina de estado finito en la que una transicin imprime un smbolo en la cinta. La cabeza puede moverse en cualquier direccin, permitiendo a la maquina leer y manipular la entrada tantas veces como quiera. La cinta de la maquina se extiende en forma infinita; las posiciones se numeran en forma natural (inicia con cero). 0 1 2 q0 Definicin: Una maquina de Turing es un quntuplo M=(Q, ,, , q0) donde: Q = Conjunto finito de estados = Alfabeto de entrada = El alfabeto de la cinta (incluyendo un blanco B) = Funcin parcial de Q x a Q x x {L,R} q0 Q es el estado inicial 3 ... ....

Una computacin inicia con la cabeza de la cinta en el estado q0 con la cabeza en la posicin mas a la izquierda. La entrada, una cadena de * se escribe en la cinta iniciando en la primera posicin (La posicin cero y el resto de la cinta estn en blanco) Una transicin consiste de tres acciones: cambiar el estado___________________________________________________________Othoniel Rivera Mndez

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

escribir un smbolo en la posicin en donde esta la cabeza y mover la cabeza de la maquina (L R) Ejemplo: Dada la siguiente configuracin 0 1 2 qi la transicin (qi,x) = [qj,y,R] 0 1 2 qj Una maquina de Turing se detiene (HALT) cuando encuentra un estado smbolo para el cual no se define una transicin. Una transicin de la posicin cero de la cinta puede especificar un movimiento a la izquierda del limite de la cinta. Cuando esto ocurre la computacin termina anormalmente. Cuando una computacin se detiene, significa que termino de una forma normal. Ejemplo q0 q1 q2 B q1,B R q2,B,L a b 3 ... .... nos lleva a la configuracin 3 ... ....

q1,b,R q1,a,R q2,a,L q2,b,L

q0 mueve la cabeza a la derecha q1 cambia las as por bs y viceversa q2 regresa la cabeza a la posicin inicial

La representacin grfica de esta es:

a/b R b/a R B/B R B/B L

a/a R b/b R

q0

q1

q2

___________________________________________________________Othoniel Rivera Mndez

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

donde una transicin (qi,x) = [qj,y,d], d {L,R} genera un arco de qi a qj con etiqueta x/y d. Configuracin Una configuracin de maquina de Turing consiste del estado, la cinta y la posicin de la cabeza. En cualquier paso en una computacin, solo un segmento finito es no blanco (donde esta la cadena de entrada). La configuracin se denota uqivB y puede usarse para trazar las computaciones de una maquina de Turing. La notacin uqivB M xqjyB indica que la configuracin xqjyB se obtiene de uqivB por una transicin simple de M.*

notacin uqivB M xqjyB indica que xqjyB se obtiene de uqivB por un numero finito de transiciones. Del ejemplo : cadena aba qoBabaB Bq1 abaB Bbq1 baB Bbaq1 aB Bbaq1 aB Bbabq1 B Bbaq2 bB Bbq2 baB Bq2 babB qo BbabB

Ejemplo : Maquina de Turing que copia la cadena de entrada al final de la original. Con la cadena BaabbB se obtiene BaabbBaabbB Maquinas de Turing como aceptadoras de lenguajes Las MT pueden disearse para, adems de leer y manipular smbolos de la cinta, puedan reconocer lenguajes y calcular funciones. El resultado de una computacin puede definirse en trminos del estado en el que termino o de la configuracin de la cinta.

___________________________________________________________Othoniel Rivera Mndez

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

Las maquinas de Turing pueden ser usadas como aceptadoras de lenguajes (acepta o rechaza la cadena de entrada). Inicialmente la aceptacin se define por el estado final de la computacin. A diferencia de los autmatas finitos y los de pila, una MT no requiere leer la entrada completa para aceptar una cadena Una Maquina de Turing con estados finales es un sxtuplo M = (Q, ,,, q0,F) donde F Q es el conjunto de estados finales. Definicin: Sea M = (Q, ,,, q0,F) una maquina de Turing. Una cadena u * es aceptada por un estado final si la computacin de M con la entrada u se detiene en un estado final. El lenguaje de M, denotado L(M), es el conjunto de cadenas aceptadas por M. Ejemplo: La maquina de Turing b/b Rq0

B/B R

q 1

a/a R

q 2

a/a R

q3

b/b R acepta el lenguaje (a b)* aa (a b)*.

Los lenguajes pueden ser reconocidos por las maquinas de Turing sin la necesidad de agregar estados finales. Este enfoque acepta una cadena si la computacin generada por la cadena causa que la MT se detenga. Cuando la aceptacin es definida por esta detencin, la maquina se define por el quntuplo M = (Q, ,,, q0). Los estados finales se omiten dado que no tienen un papel en la determinacin del lenguaje de la maquina. Definicin Sea M = (Q, ,,, q0) una maquina de Turing. Una cadena u * es aceptada por detencin si la computacin de M con entrada u la detiene. Teorema Los siguientes estatutos son equivalentes 1.- El lenguaje L es aceptado por una MT por estado final___________________________________________________________Othoniel Rivera Mndez

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

2.- El lenguaje L es aceptado por una MT por detencin Ejemplo La maquina de Turing b/b Rq0

B/B R

q 1

a/a R

q 2

a/a R

q3

b/b R acepta el lenguaje (a b)* aa (a b)*. La maquina de Turing b/b Rq0

B/B R

q 1

a/a R

q 2

a/a R

q3

a/a R b/b R

B/B R

b/b Rqr

B/B R

acepta el lenguaje (a b)* aa (a b)* por detencin. Variaciones a la maquina de Turing Existen variaciones al modelo de la maquina de Turing estndar. Aunque cada una de esas variaciones parece incrementar la capacidad de la maquina, los lenguajes aceptados por esas maquinas son los mismos que acepta la maquina estndar.

Maquina multipista Una cinta multipista es aquella en la cinta se divide en pistas. Una posicin en una cinta de n- pistas contiene n smbolos del alfabeto de la cinta.

___________________________________________________________Othoniel Rivera Mndez

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

La maquina lee una posicin entera de la cinta. Esto aumenta la cantidad de informacin que puede ser considerada cuando se determine la transicin. Los estados, alfabeto de la cinta, estado inicial y estados finales de una maquina multipista son los mismos que el de la maquina estndar. La maquina lee y escribe la posicin completa de la cinta. Una transicin de una maquina de dos cintas se escribe (qi,[x,y]) = [qj,[z,w],d] donde d {L,R} La entrada a una maquina de dos pistas se coloca en la posicin de entrada estndar en la pista 1 y las posiciones en la pista 2 se ponen en blanco. Teorema Un lenguaje L es aceptado por una maquina de turing de dos pistas si y solo si es aceptada por una maquina de Turing estndar. Cinta de doble sentido Una maquina de Turing con una cinta de doble sentido es igual al modelo estndar excepto que la cinta se extiende indefinidamente en ambas direcciones. Dado que una cinta de doble sentido no tiene limite izquierdo, la entrada puede ser colocada en cualquier lugar en la cinta. Todas las dems posiciones quedan en blanco. La cabeza de la cinta es inicialmente en el blanco que sigue al smbolo mas a la izquierda de la entrada. Maquinas multicintas Una maquina de k- cintas consiste de k cintas y k cabezas de cinta independientes. Los estados y el alfabeto de una maquina multicinta son los mismos que los de la maquina de Turing estndar. La maquina lee las cintas simultneamente pero tiene solo un estado. Una transicin es determinada por el estado y los smbolos ledos por cada una de las cabeza. Una transicin en una maquina multicinta de b: 1.- cambiar el estado 2.- escribir un smbolo en una de las cintas 3.- independientemente reposicionar cada una de las cabezas El reposicionamiento consiste de mover la cabeza una posicin a la derecha o izquierda o dejarla en la posicin original. Una transicin en una maquina de dos cintas que lee x1 en la cinta 1 y x2 en la cinta 2 se escribe (qi,x1,x2) = [qj,[y1,d1,y2,d2] donde xi,yi y

___________________________________________________________Othoniel Rivera Mndez

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

di {L,R,S} Esta transicin causa que la maquina escriba yi en la cinta y. El smbolo di especifica la direccin del movimiento de la cinta i. La entrada a una maquina multicinta se coloca en la posicin estndar en la cinta 1. Las otras cintas estn en blanco. La cabeza de la cinta esta inicialmente en la posicin mas a la izquierda de cada cinta. Una maquina estndar es una maquina multicinta con una sola cinta. Teorema Un lenguaje L es aceptado por una maquina multicinta si y solo si, es aceptado por una maquina estndar. Maquinas de Turing no deterministicas Una maquina no deterministica puede especificar cualquier numero finito de transiciones para una configuracin dada. Los componentes de una maquina no deterministica, con la excepcin de la funcin de transicin, son los mismo de la maquina estndar. Las transiciones en una maquina no deterministica son definidos por una funcin parcial de Q x a subconjuntos de Q x x {L,R}. Aunque la funcin de transicin indica que mas de una accin es posible, una computacin selecciona una de las transiciones. Una cadena de entrada es aceptada por una maquina no deterministica si hay una computacin que termina en un estado de aceptacin. Ejemplo Esta maquina de Turing no deterministica acepta cadenas que contienen una c precedida o seguida por ab. a/a R b/b R cc/Rq 0

B/B R

q 1

c/c R

q b2

a/a R

q 3

b/b R

q4

c/c Rq b 5 q 6

b/b L

a/a L

q7

___________________________________________________________Othoniel Rivera Mndez

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

La maquina procesa la entrada en el estado qi hasta que c es encontrada. Cuando esto ocurre la computacin continua en el estado qi, entra en el estado q2 para determinar si la c es seguida por una b, o entra en q5 para determinar si la c es precedida por ab. Una maquina de Turing no deterministica puede producir varias computaciones para una cadena de entrada.

Ejercicios1.

Dada una cadena de entrada sobre el ={a, b, c} realice una Mquina de Turing que cambie las as por las bs y las bs por cs y las cs por as. t q0 q1 q2 B q1, B,R q2,B,L q1,b,R _____ q2,a,L q1,c,R q2,b,L q1,a,R q2,c,L a b c

2.

Realice una Mquina de Turing que dada una cadena de entrada la desplace una posicin a la derecha sobre el ={a, b}

___________________________________________________________Othoniel Rivera Mndez

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

t q0 q1 q2 q3 q4 q5

B q1,B,R q2,B,L _____ q4,b,L

a

b

X

Y

q1,a,R q5,a,R

q1,b,R q3,X,R

q2,B,L q4,a,L

q2,B,L

3. Realice una Mquina de Turing sobre el ={a, b} que separe cada uno de los elementos del alfabeto. BababbaB BababbaBaaabbbB t B a b X original resultado

q0 q1,B,R q1 q5,B,L q2,X,R q2 q3,B,R q2,a,R q3 q4,a,L q4 q4,B,L q4,a,L q5 _____ q6 q7,B,R q6,a,R q7 q8,b,L q7,a,R q5,a,L q6,b,R q7,b,R q3,a,R q4,b,L q6,X,R q1,a,R q1,b,R q2,b,R

___________________________________________________________Othoniel Rivera Mndez

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

q8 q8,B,L q8,a,L

q8,b,L

q5,b,L

4. Realice una Mquina de Turing que concatene la misma cadena al final de la existente separada por un espacio. BababBB BababBababBB t q0 q1 q2 q3 q4 q5 q6 q7 B q1,B,R q7,B,L q3,B,R q4,a,L q4,B,L q6,B,R q4,b,L _____ q2,X,R q2,a,R q3,a,R q4,a,L q5,a,R q6,a,R q7,a,L q5,Y,R q2,b,R q3,b,R q4,b,L q5,b,R q6,b,R q7,b,l q1,a,R q1,b,R a original resultado b X Y

___________________________________________________________Othoniel Rivera Mndez

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

5. Realice una Mquina de Turing que concatene al final de la cadena todas las bs existentes si hay par de as en caso contrario concatenar todas las as. BababbB BababaB t q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 B q1,B,L q3,B,L q7,B,L _____ q5,B,R q6,b,L q5,B,L _____ q9,B,R q6,a,L q6,a,L q8,Y,R q8,a,R q9a,R q2,a,R q1,a,R q3,a,L q4,a,R q1,b,R q2,b,R q4,X,R q4,b,R q5,b,R q6,b,L q7,b,L q8,b,R q3,b,L q7,a,L a BbbbB BaaaB b X Y

___________________________________________________________Othoniel Rivera Mndez

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

6.

Realice una MT sobre el ={a, b} que determine si hay par de subcadenas ab agregue una a por cada subcadena, impar agregue una b por cada subcadena. t q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 q4 , B,R q5,Y,L q5,B,L q8,B,L q9,B,L q5,a,L q5,b,L q1,a,R B q1, B, R q6 ,B,R q2,X,R q2, X, R q3, a, R q1,b,R q3,b,R q3, b, R q4,Y,R q5,Y,L q7,Y,R q6,Y,R q8,a,L q9,b,L a b X Y

___________________________________________________________Othoniel Rivera Mndez

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

7.

Realice una MT que concatene al final de la cadena su inverso sobre el ={a, b} t q0 q1 q2 q3 q4 q5 q6 q7 q4,b,L q5,b,L q5,B,L q7,B,R q5,a,L B q1,B,R q2,B,L q1,a,R q6,Y,R q3,a,R q4,a,R q5,a,L q6,a,R q7,a,R q1,b,R q3,X,R q3,b,R q4,b,R q5,b,L q6,b,R q7,b,R q2,b,L q2,a,L a b X Y

8.

Realice una MT que acepte cadenas de longitud par ={a} t q0 q1 q2 q3 B q1,B,R q3,B,L q2,a,R q1,a,R q3,a,L a

___________________________________________________________Othoniel Rivera Mndez

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

9. Realice una MT que escriba el bit de paridad par a una secuencia de datos de 7 bits t q0 q1 q2 q3 B q1,B,R q3, 0,L q3, 1,L q2,1,R q1,1,R q3,1,L q1,0,R q2,0,R q3,0,L 0 1

10.

Realice una MT que cumpla con la Er (aUb)* ba t q0 q1 q2 q3 B q1,B,R q1,a,R q3,a,R q1,a,R q2,b,R q2,b,R q2,b,R a b

a|a|R B|B|R q0 q1 b|b|R q2

b|b|R a |a | R q3

___________________________________________________________Othoniel Rivera Mndez

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

b|b|R a|a|R

11.

Realice una Mquina de Turing para la siguiente Expresin Regular ER= acc(aUbUc)*U(aUbUc)*acc t q0 q1 q2 q3 q4 q5 q6 q7 q8 B q1,B,R q2,a,R q2,a,R q5,a,R q4,a,R q6,a,R q6,a,R q5,a,R q5,a,R q5,b,R q5,b,R q5,b,R q4,b,R q5,b,R q5,b,R q5,b,R q5,b,R q5,c,R q3,c,R q4,c,R q4,c,R q5,c,R q7,c,R q8,c,R q5,c,R a b c

___________________________________________________________Othoniel Rivera Mndez

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

13. Hacer una MT que recorra la cadena 3 blancos hacia delante. t q0 q1 q2 q3 q4 q5 q6 q7 q4,B,R q5,b,L q5,B,L q7,B,R q5, a,L q2,B,L q2,B,L B q1,B,R q2,B,L q1,a,R q6,X,R q1,b,R q3,Y,R a b Y X

14. Realice una MT sobre el b} que por cada a que encuentre la reemplace {a, por un ab.

t q0 q1 q2 q3 q4 q5

B q1,B,L

a

b

X

Y

q2,X,R q3,B,L q2,a,R q4,Y,R q4,b,L q5,b,R

q1,b,R q2,b,R q4,Y,R q5,a,R q3,B,L

___________________________________________________________Othoniel Rivera Mndez

Instituto Tecnolgico de Jiquilpan________________________________Lenguajes y Autmatas

q6

q6,a,L

q3,B,L

SEP Instituto Tecnolgico de JiquilpanMateria: Lenguajes y Autmatas. Catedrtico: Otzhoniel Rivera Mndez. Contenido Introduccin I. Alfabetos y Lenguajes I.1 Preliminares Matemticos I.2 Alfabetos, Cadenas y Lenguajes I.3 Especificacin finita de lenguajes I.4 Conjuntos y expresiones Regulares Autmatas Finitos II.1 Lenguajes Regulares II.2 Maquinas de estado finito II.3 Autmatas finitos deterministicos. II.4 Diagrama de estados II.5 Autmatas finitos no deterministicos. II.6 Expresiones Regulares. Lenguajes Libres de Contexto III.1 Gramticas y lenguajes libres de contexto III.2 Gramticas regulares III.3 Autmatas de pila III.4 Autmatas de pila y lenguajes libres de contexto Maquinas de Turing IV.1 Definiciones IV.2 Maquinas de Turing como aceptadores de lenguajes IV.3 Construccin de Maquinas de Turing IV.4 Maquinas de Turing mas poderosas. IV.5 Maquinas de Turing no deterministicas.

DGIT

II.

III.

IV.

___________________________________________________________Othoniel Rivera Mndez