You are on page 1of 10

Universidad Iberoamericana (UNIBE)

Lenguajes Formales y Teora de Autmatas Prof. Rina Familia

AFD, AFND & Lenguajes Regulares

Francisco Torvisco 11-0402 Jos Ral Nova 11-1162 Tecnologa de la informacin & la comunicacin (TIC)

Febrero 24, 2014

Introduccin
Autmata, del latn automta y este del griego automatos (), espontneo o con movimiento propio. Segn la RAE, mquina que imita la figura y los movimientos de un ser animado. Un equivalente tecnolgico en la actualidad seran los robots autnomos. Si el robot es antropomorfo se conoce como androide. La teora de autmatas es una rama de las ciencias de la computacin que estudia las mquinas abstractas y los problemas que stas son capaces de resolver. La teora de autmatas est estrechamente relacionada con la teora del lenguaje formal ya que los autmatas son clasificados a menudo por la clase de lenguajes formales que son capaces de reconocer. Un autmata es un modelo matemtico para una mquina de estado finito (FSM sus siglas en ingls). Una FSM es una mquina que, dada una entrada de smbolos, "salta" a travs de una serie de estados de acuerdo a una funcin de transicin (que puede ser expresada como una tabla). En la variedad comn "Mealy" de FSMs, esta funcin de transicin dice al autmata a qu estado cambiar dados un determinado estado y smbolo. La entrada es leda smbolo por smbolo, hasta que es "consumida" completamente (piense en sta como una cinta con una palabra escrita en ella, que es leda por una cabeza lectora del autmata; la cabeza se mueve a lo largo de la cinta, leyendo un smbolo a la vez) una vez la entrada se ha agotado, el autmata se detiene. Dependiendo del estado en el que el autmata finaliza se dice que este ha aceptado o rechazado la entrada. Si ste termina en el estado "acepta", el autmata acepta la palabra. Si lo hace en el estado "rechaza", el autmata rechaz la palabra, el conjunto de todas las palabras aceptadas por el autmata constituyen el lenguaje aceptado por el mismo.

Autmata Finito Determinista (AFD)


Un autmata finito (AF) o mquina de estado finito es un modelo computacional 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. Un autmata finito determinista (abreviado AFD) es un autmata finito que adems es un sistema determinista; es decir, para cada estado en que se encuentre el autmata, y con cualquier smbolo del alfabeto ledo, existe siempre a lo ms una transicin posible desde ese estado y con ese smbolo. Formalmente, se define como una 5-tupla (Q, , q0, , F) donde:

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

En un AFD no pueden darse ninguno de estos dos casos:


Que existan dos transiciones del tipo (q,a)=q1 y (q,a)=q2, siendo q1 q2; Que existan transiciones del tipo (q, ), donde es la cadena vaca, salvo que q sea un estado final, sin transiciones hacia otros estados.

Ejemplo:

En el comienzo del proceso de reconocimiento de una cadena de entrada, el autmata finito se encuentra en el estado inicial y a medida que procesa cada smbolo de la cadena va cambiando de estado de acuerdo a lo determinado por la funcin de transicin. Cuando se ha procesado el ltimo de los smbolos de la cadena de entrada, el autmata se detiene en el estado final del proceso. Si el estado final en el que se detuvo es un estado de aceptacin, entonces la cadena pertenece al lenguaje reconocido por el autmata; en caso contrario, la cadena no pertenece a dicho lenguaje. Note que el estado inicial de un autmata finito siempre es nico, en tanto que los estados finales pueden ser ms de uno, es decir, el conjunto puede contener ms de un elemento. Tambin puede darse el caso de que un estado final corresponda al mismo estado inicial. Dos estados de un autmata finito determinista son estados equivalentes si al unirse en un slo estado, pueden reconocer el mismo lenguaje regular que si estuviesen separados. Esta unin de estados implica la unin tanto de sus transiciones de entrada como de salida. Si dos estados no son equivalentes, se dice que son estados distinguibles. Un estado final con un estado no-final nunca ser equivalentes. Un AFD est minimizado, si todos sus estados son distinguibles y alcanzables. Un algoritmo de minimizacin de AFD es el siguiente: 1. Eliminar los estados inaccesibles del autmata. 2. Construir una tabla con todos los pares (p, q) de estados restantes. 3. Marcar en la tabla aquellas entradas donde un estado es final y el otro es no-final, es decir, aquellos pares de estados que son claramente distinguibles. 4. Para cada par (p, q) y cada smbolo a del alfabeto, tal que r = (p,a) y s = (q,a): 1. Si (r, s) ya ha sido marcado, entonces p y q tambin son distinguibles, por lo tanto marcar la entrada (p, q). 2. De lo contrario, colocar (p, q) en una lista asociada a la entrada (r, s). 5. Agrupar los pares de estados no marcados. Luego del tercer paso, si la tabla creada queda completamente marcada, entonces el AFD inicial ya era mnimo.

La complejidad computacional del problema de minimizar un AFD es polinomial. De hecho, existen algoritmos ms eficientes an que el mostrado en este artculo (aunque menos intuitivos). Sin embargo, el problema de minimizar un autmata finito no determinista es NP-completo y PSPACE-completo.

Autmata finito no determinista


Un autmata finito no determinista (abreviado AFND) es un autmata finito que, a diferencia de los autmatas finitos deterministas (AFD), posee al menos un estado q Q, tal que para un smbolo a del alfabeto, existe ms de una transicin (q,a) posible. En un AFND puede darse cualquiera de estos dos casos: Que existan transiciones del tipo (q,a)=q1 y (q,a)=q2, siendo q1 q2;

Que existan transiciones del tipo (q, ), siendo q u n estado no-final, o bien un estado final pero con transiciones hacia otros estados. Cuando se cumple el segundo caso, se dice que el autmata es un autmata finito no determinista con transiciones vacas o transiciones (abreviado AFND ). Estas transiciones permiten al autmata cambiar de estado sin procesar ningn smbolo de entrada. Considrese una modificacin al modelo del autmata finito para permitirle ninguna, una o ms transiciones de un estado sobre el mismo smbolo de entrada. Formalmente, si bien un autmata finito determinista se define como una 5tupla (Q, , q0, , F) donde:

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

En un AFND la funcin de transicin se define como: Para el caso de los AFND-, se suele expresar la funcin de transicin de la forma: donde P(Q) es el conjunto potencia de Q.

Esto significa que los autmatas finitos deterministas son un caso particular de los no deterministas, puesto que Q pertenece al conjunto P(Q). La interpretacin que se suele hacer en el cmputo de un AFND es que el autmata puede pasar por varios estados a la vez, generndose una ramificacin de las configuraciones existentes en un momento dado. Asimismo, en un autmata finito no determinista podemos aceptar la existencia de ms de un nodo inicial. La mquina comienza en el estado inicial especificado y lee una cadena de caracteres pertenecientes al alfabeto. El autmata utiliza la funcin de transicin de estados T para determinar el siguiente estado, usando el estado actual y el smbolo que acaba de leer o la cadena vaca. Sin embargo, "el estado siguiente de un AFND no slo depende del evento de entrada actual, sino que tambin en un nmero arbitrario de los eventos de entrada posterior. Hasta que se producen estos acontecimientos posteriores no es posible determinar en qu estado se encuentra la mquina". Cuando el autmata ha terminado de leer, y se encuentra en un estado de aceptacin, se dice que el AFND acepta la cadena, de lo contrario se dice que la cadena de caracteres es rechazada. Tanto para un AFND como para un autmata finito determinista (AFD) se puede aceptar el mismo lenguaje. Por lo tanto, es posible convertir un AFND existente en un AFD para el desarrollo de una mquina tal vez ms simple. Esto puede llevarse a cabo utilizando la construccin del conjunto potencia, que puede conducir a un aumento exponencial en el nmero de estados necesarios.

Todo AFND (QN, , q0, N, FN) puede convertirse en un AFD (QD, , q0, D, FD) equivalente, que mantiene el alfabeto y el estado inicial q0 originales. La conversin implica pasar por un AFD intermedio con estados y transiciones redundantes, que al no ser accesibles a partir del estado inicial, son eliminados para obtener el AFD definitivo

Lenguajes Regulares
Un lenguaje regular es un tipo de lenguaje formal que satisface las siguientes propiedades: Los lenguajes ms sencillos que se considerarn son los lenguajes regulares, es decir, los que se pueden generar a partir de los lenguajes bsicos, con la aplicacin de las operaciones de unin, concatenacin y de Kleene un nmero finito de veces. Puede ser reconocido por:

un autmata finito determinista un autmata finito no determinista un autmata de pila 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 dado se define recursivamente como:

Un lenguaje regular sobre un alfabeto


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 bs. 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. 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. Para situar los lenguajes regulares en la jerarqua de Chomsky hay que notar que todo lenguaje regular es tambin un lenguaje libre de contexto, aunque la afirmacin contraria no es cierta, por ejemplo: el lenguaje que contiene el mismo nmero de aes y de bs es libre 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. 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.

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.

Conclusin
Teora de Autmatas es una rama emocionante, terica de la informtica. Se estableci sus races en el siglo 20, como los matemticos comenzaron a desarrollar - tanto terica como literalmente - mquinas que imitan ciertas caractersticas del hombre, de completar los clculos ms rpidamente y de forma fiable. La palabra en s autmata, estrechamente relacionada con la palabra "automatizacin", denota procesos automticos que llevan a cabo la produccin de procesos especficos. En pocas palabras, la teora de autmatas trata con la lgica de clculo con respecto a las mquinas simples, conocidos como autmatas. A travs de los autmatas, los informticos son capaces de entender cmo las mquinas calculan funciones y resolver problemas y lo ms importante, lo que significa para una funcin que se define como computable o para una cuestin que haya sido descrito como indecidible. El objetivo principal de la teora de autmatas es el desarrollo de mtodos por los cuales los informticos pueden describir y analizar el comportamiento dinmico de sistemas discretos, en los que las seales se muestrean peridicamente. El comportamiento de estos sistemas discretos se determina por la forma en que el sistema se construye a partir de almacenamiento y elementos combinacionales.

Referencias
http://cs.stanford.edu/people/eroberts/courses/soco/projects/200405/automata-theory/basics.html www.cs.usfca.edu/~galles/cs411/lecture/lecture7.pdf http://books.google.com.do/books?id=x8IqWNscScwC&printsec=frontcove r&dq=automata+theory&hl=es&sa=X&ei=3LoLUT4Ms3qkAeN4YBg&ved=0CDMQ6AEwAQ#v=onepage&q=automata%20t heory&f=false ftp://decsai.ugr.es/pub/utai/other/smc/docencia/automata.pdf http://infolab.stanford.edu/~ullman/ialc.html http://www.princeton.edu/~achaney/tmve/wiki100k/docs/Automata_theory. html http://campusvirtual.unex.es/ebooks/files/file/TeoriaAutomatas.pdf http://trevinca.ei.uvigo.es/~formella/doc/talf09/talf.pdf http://html.rincondelvago.com/automatas_lenguajes.html