You are on page 1of 9

Autmata finito

Un autmata finito (AF) o mquina de estado finito es un modelo matemtico que realiza cmputos en forma automtica sobre una entrada para producir una salida. Este modelo est conformado por un alfabeto, un conjunto de estados y un conjunto de transiciones entre dichos estados. Su funcionamiento se basa en una funcin de transicin, que recibe a partir de un estado inicial una cadena de caracteres pertenecientes al alfabeto (la entrada), y que va leyendo dicha cadena a medida que el autmata se desplaza de un estado a otro, para finalmente detenerse en un estado final o de aceptacin, que representa la salida. La finalidad de los autmatas finitos es la de reconocer lenguajes regulares, que corresponden a los lenguajes formales ms simples segn la Jerarqua de Chomsky. Formalmente, un autmata finito es una 5-tupla (Q, , q0, , F) donde:6
y y y y y

es un conjunto finito de estados; es un alfabeto finito; es el estado inicial; es una funcin de transicin; es un conjunto de estados finales o de aceptacin.

Automata finito determinista


Un autmata finito determinista es una 5tupla A = (Q,_, _, q0, F) donde: Q es un conjunto finito de estados _ es un conjunto finito de smbolos o alfabeto.

_:Q _ Q es una funcin parcial llamada funcin de transicin q0 Q estado inicial F Q conjunto de estados finales
an a1 a2 a3 Memoria Finita

Autmatas Finitos Deterministas Se llama Autmata Finito Determinista (AFD) a la quntupla: ( , Q, f, q0, F) y y y y y es un alfabeto, llamado "alfabeto de entrada". Q es un conjunto finito, no vaco llamado "conjunto de estados". f es una funcin f: Qx Q que se llama "funcin de transicin". q0 Q es el "estado inicial". F Q es el conjunto de "estados finales", o "estados de aceptacin", no vaco.

Un AFD puede considerarse como una mquina secuencial de Moore, cuyo alfabeto de entrada sea , su alfabeto de salida S={ 0,1} , y donde F ser el conjunto de los estados tales que g(q)=1. Tabla de Transicin Ser una tabla cuyas filas estn encabezadas por los estados (elemen-tos de Q). Los encabezamientos de las columnas son los smbolos del alfabeto de entrada (los elementos de ). Cumplindose que el elemento i, j de la tabla de transicin corresponde al valor de f(qi, ej), donde qi es el elemento i-simo de Q, y ej es el elemento j-simo de . Tanto el estado inicial como el final estarn marcados por y por * respectivamente. Nota: el estado final puede ser indicado tambin rodeando el estado por un crculo. ( ): a1...an q0 .....

qi ...... *qf Ejemplo: AF=({ 0,1} ,{ q0,q1,q2} , f, q0, { q1} ) f q0 *q1 q2 0 q1 q0 q1 1 q0 q2 -

Diagrama de Transicin Es un grafo dirigido que se forma de la siguiente manera: 1. El grafo tendr tantos nodos como | Q| , cada nodo estar etiquetado por un elemento de Q. 1. Si f(qi, ej) = qk, dibujaremos una rama dirigida desde el nodo de etiqueta qi hasta el nodo de etiqueta qk. La etqueta de la rma ser ej. 2. El estado inicial estar sealado mediante el smbolo . 3. Los estados finales estarn sealados mediante el simbolo *, o doble crculo alrededor de la etiqueta del estado final. Representamos los estados como:

Ejemplo: (partiendo del autmata anterior)

Lenguaje asociado a un autmata finito determinista L(AFD) Sea un AFD ( , Q, f, q0, F). Decimos qie una palabra x * es "aceptada" o "reconocida" por el autmata si f(q0,x) F. Se llama lenguaje asociado al autmata finito, o conducta del autmata finito al conjunto de todas las palabras aceptadas por ste. Es decir: L = { x | x * & f(q0,x) F} Ejemplo:

0 L(AF), ya que f(q0, 0) = q1 F 10 L(AF) 1*0 L(AF) 1*010 L(AF) Luego L(AF) = 1*0(10)* Ejemplo 2 :

Calculo posibles caminos desde q0 a q0 (por ser el estado inicial): (1*+(10)*0)* Caminos desde el estado inicial hasta el estado final (el mas corto): 0 Caminos desde el estado final al estado final sin pasar por el inicial: (10)* Luego L(AF)= (1*+(10)*0)* 0 (10)*

Autmatas Finitos No Deterministas Llamaremos "autmata finito no determinista" (AFND) a la sxtupla: A = ( , Q, f, q0, F, T ), donde: y y y , Q,q0, F significan lo mismo que en un autmata finito determinista. f es una aplicacin de Q x en el conjunto de las partes de Q T es una relacin definida sobre pares de elementos de Q, donde p, q Q estn en relacin T( se representar por pTq, o (p,q) T) si existe una transicin del estado p al estado q por medio de la palabra vaca l (l -transicin).

Ejemplo: Sea el autmata finito no determinista: ({ a, b} , { p, q, r, s} , f, p, { p, s} , { (q,s), (r,r), (r,s), (s,r)} ), donde f se define asi: f(p,a)={ q} f(p,b)= f(q,a)={ p,r,s} f(q,b)={ p,r} f(r,a)= f(r,b)={ p,s} f(s,a)= f(s,b)= Representacin En Diagrama: Con tantos nodos como estados.

Pueden sobrar o faltar arcos de un estado a otro Si f(p,a)=Q1, trazaremos una rama dirigida desde p hasta cada uno de los estados del conjunto de estados Q1, con la etiqueta a. Pueden existir arcos de un estado a otro por medio de l , en el caso de pTq, que trazaremos una rama desde p hasta q con la etiqueta l . Ejemplo (continuacin):

Tabla: Tendr tantas filas como estados, y tantas columnas como elementos de , ms una columna adicional encabezada por la palabra vaca l , esta ser la clumna reservada a las l -transiciones. Ejemplo (continuacin) : a p q r *s { q} { p,r,s} { p,r} { p,s} { s} { r,s} { r} b l

Relacin T Sabemos que: (p,q) T*, donde T* = T0 T1 T2 .... Utilizaremos las matrices booleanas de representacin T, para representar si un estado q es accesible desde un estado p mediante una l -transicin. Primero se representar la matriz booleana de representacin de T, o, lo que es lo mismo, la matriz booleana que representa la posibilidad de transitar a otro estado a partir de una l -transicin: p T p q 0 0 0 0 0 0 0 1 q r s

r s

0 0 p

0 0 q

1 1 r

1 0 s

T* p q r s 0 0 0 0 0 0 0 0 0 1 1 1 0 1 1 1

Ahora se hace la clausura transitiva de la relacin T, es decir, la relacin T*, que no es ms que calcular la accesibilidad de unos estados a otros mediante un nmero de l transiciones mayor. Lo que se ha hecho en esta clausura no es ms que calcular aquellos estados q, que a partir de un estado p, es posible acceder mediante l -transiciones. Esto se puede ver tanto en el diagrama de estados, como en la matriz booleana de la relacin T. Se puede observar que el estado r no accesible desde q mediante una l -transicin, sin embargo si ser accesible mediante dos l -transiciones. Este tambin ser el caso del estado s y su acceso a s mismo mediante l -transiciones.

LENGUAJE REGULAR:
Un lenguaje Regular es aquel que puede ser procesado por un Automata de Estados Finitos. Un lenguaje regular es un tipo de lenguaje formal que satisface las siguientes propiedades: 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 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 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. 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 regulares Los lenguajes regulares constituyen el menor conjunto de lenguajes sobre S que es cerrado con respecto a las operaciones de concatenacin, unin y cerradura de Kleene. Adems contienen el lenguaje vaco y los lenguajes unitarios para a S.

Desde el punto de vista prctico se utilizan como la base para la construccin de analizadores lxicos (scanners). Def.- Sea S un alfabeto. El conjunto de los lenguajes regulares sobre S se define recursivamente as: n es un lenguaje regular. n es un lenguaje regular. nPara toda aS, es un lenguaje regular. nSi A y B son lenguajes regulares, entonces AB, AB y A* son lenguajes regulares. nNingn otro lenguaje sobre S es regular. Ejemplos de Lenguajes regulares Ej.- Dado S={a,b}, las siguientes afirmaciones son ciertas: n y son lenguajes regulares. n y {b} son lenguajes regulares. n{a,b} es regular porque es la unin de y {b}. n{ab} es regular. n{a,ab,b} es regular. nai es regular. naibj es regular. n(ab)i es regular. Ej.- El lenguaje de todas las cadenas sobre {a,b,c} que no tienen ninguna subcadena ac es un lenguaje regular?

nSi A es el lenguaje buscado, ste se podr construir a partir de los lenguajes ,{b},{c}, y . nSi w es una cadena perteneciente a A, entonces w comienza con 0 o ms cs. nSi suprimimos este smbolo al inicio, obtenemos una subcadena w que no empieza por ningn caracter c. nw estar formada por as, bs y cs, en las cuales las cs siguen a las bs. De hecho no puede haber ningn bloque de cs al principio de w. Es decir: ww( {b}{c}*)* wy por tanto w{c}* ( {b}{c}*)* wde lo cual se obtiene: A {c}* ( {b}{c}*)* nPara probar la otra inclusin, si u es una cadena que tiene una subcadena ac entonces: wu{c}* ( {b}{c}*)* ya que no hay forma de que una c pueda seguir una a.
Por tanto:

{c}* ( {b}{c}*)* A

You might also like