Está en la página 1de 15

Sintaxis y Semntica del Lenguaje UTN FRSF Apunte Nro.

AUTMATAS FINITOS

Autmatas Finitos
1

Autmatas Finitos (AF)


Por qu estudiar autmatas finitos

Hay varias razones por las que el estudio de los autmatas y de la complejidad es una parte
importante del ncleo de las ciencias de la computacin. Los AF constituyen un modelo til para
muchos tipos importantes de hardware y software, como:
a) Software para el diseo y la verificacin del comportamiento de circuitos digitales.
b) El analizador lxico de un compilador tpico, esto es, la componente del compilador que
descompone el texto original en unidades lgicas tales como identificadores, palabras
reservadas y signos de puntuacin.
c) Software para explorar grandes corpus de texto, como conjuntos de pginas web, o para
descubrir las apariciones de ciertas palabras, frases u otros patrones.
d) Software para comprobar la correccin de cualquier tipo de sistemas que tengan un
nmero finito de estados diferentes, como los protocolos de comunicacin o los protocolos
de intercambio seguro de informacin.
Hay muchos sistemas o componentes, como los enumerados anteriormente, de los que se puede
decir en todo momento que estn en cierto estado, entre un nmero finito de ellos. El objetivo de
un estado es recordar la parte significativa de la historia del sistema. Dado que solo disponemos
de un nmero finito de estados, normalmente no es posible recordar la historia completa, por lo
que el sistema ha de ser diseado cuidadosamente para que sea posible recordar los aspectos
importantes y olvidar los que no lo sean.
Definicin informal
Un AF es una mquina reconocedora, ya que a partir de una cadena de entrada, solo dice si o
no. Lo cual indica si esa cadena pertenece o no al lenguaje reconocido o aceptado por la
mquina.
A partir de una gramtica se puede construir una mquina reconocedora o aceptadora del
lenguaje generado por esa gramtica, de tal forma que cuando reciba a su entrada una
determinada cadena de smbolos, el autmata indicar si dicha cadena pertenece o no al
lenguaje. Una mquina reconoce un lenguaje L si es capaz de reconocer todas las sentencias
pertenecientes a L y de no reconocer ninguna sentencia que no pertenezca a L. Los lenguajes
regulares pueden describirse por medio de un AF.
Un AF tiene un conjunto de estados y su control se mueve de estado en estado, en respuesta a
entradas externas. Estas entradas forman las cadenas a ser analizadas. Los estados de un AF,
son de tres tipos: estado inicial, que permite empezar la ejecucin del autmata; estados finales o
estados de aceptacin que permiten realizar la salida de aceptacin de la cadena de entrada
en el caso de que no haya ms smbolos en la entrada, y estados intermedios, que son los que
permiten pasar del estado inicial a algn estado final.
Los AF se dividen en diversas clases, dependiendo de si su control es determinista (lo que
significa que el autmata no puede estar en ms de un estado simultneamente) o no
determinista (lo que significa que el autmata puede estar en varios estados al mismo tiempo).

Ao: 2009

pg. 1

Sintaxis y Semntica del Lenguaje UTN FRSF Apunte Nro. 2

AUTMATAS FINITOS

Autmatas Finitos Deterministas


Definicin formal

El autmata finito determinista (AFD) siempre est en un solo estado despus de leer cualquier
secuencia de entrada. El trmino determinista hace referencia al hecho de que, para cada
entrada, existe un nico estado al que el autmata pueda llegar partiendo del estado actual.
Un AFD se denota con la quntupla:
A = (, Q, f, q0, F)
donde:

es el alfabeto (conjunto finito) de smbolos de entrada.

Q es el conjunto finito de estados.

q0 Q es el estado inicial.

f, es la funcin de transicin, es una funcin que toma como argumentos un estado


de Q y un smbolo de entrada de y devuelve un estado.

F Q, es el conjunto de estados finales (o de aceptacin).

Como ya se ha comentado, un AFD genera un solo tipo de salida: acepta o no una secuencia de
smbolos de entrada. Esa aceptacin est representada si el autmata se encuentra en algn
estado del conjunto F.
El comportamiento de un AFD, comienza en el estado inicial (q0), y segn se van recibiendo los
smbolos de la entrada transita entre los estados (del conjunto Q), de acuerdo a la funcin de
transicin f. Si en un determinado momento se encuentra en un estado de aceptacin (del
conjunto F), reconoce como vlida la cadena formada por los smbolos de entrada ledos hasta
el momento. Si no, no es aceptada.
Ejemplos
Ejemplo 1: El autmata que acepta, cadenas de 0 y 1 con un nmero par de unos (y no acepta
cadenas con un nmero impar de unos), es el siguiente:
A1 = ({0,1}, {q0, q1}, f, q0 , {q0})
Donde f, se define como:
f(q0,0) = q0
f(q0,1) = q1
f(q1,0) = q1
f(q1,1) = q0
Si la cadena de entrada es 0110, el autmata ir transitando entre los estados:
0

q0  q0  q1  q0  q0
Ejemplo 2: En este ejemplo, partiremos de un Lenguaje L y encontraremos el AFD, que reconoce
este lenguaje.
Ao: 2009

pg. 2

Sintaxis y Semntica del Lenguaje UTN FRSF Apunte Nro. 2

AUTMATAS FINITOS
Informalmente L acepta nicamente todas las cadenas de ceros y unos que contienen la
secuencia 01 en algn lugar de la cadena. Podemos describir L as:
L = { w | w tiene la forma x01y, donde x e y son cadenas que solo constan de los smbolos 0 y 1}
Algunos ejemplos de cadenas del lenguaje son 01, 11010 y 100011. Algunos ejemplos de
cadenas que no pertenecen al lenguaje son , 0, 111000, 000.
Qu sabemos sobre el autmata que acepta este lenguaje L? Primero, que su alfabeto es =
{0, 1}. Tiene un conjunto de estados Q, de los que uno, digamos q0, es el estado inicial. Este
autmata para decidir si 01 es una subcadena de la entrada, tiene que recordar lo siguiente:
1. Ha ledo ya la secuencia 01? Si es as, acepta cualquier secuencia futura de entradas;
es decir, de ahora en adelante solo estar en estados de aceptacin (del conjunto F).
2. Todava no ha ledo la secuencia 01, pero su entrada ms reciente fue 0, de forma que,
si ahora lee un uno, habr ledo 01 y puede aceptar todo lo que lea de ah en adelante?
3. Todava no ha ledo la secuencia 01, pero su entrada ms reciente ha sido 1 o no existi
(acaba de comenzar)? En este caso, el autmata no puede aceptar hasta que lea un cero,
e inmediatamente despus un uno.
Estas tres condiciones pueden representarse cada una mediante un estado.
La condicin (3) se representa con el estado inicial q0. Al comenzar, es seguro que necesitamos
leer un 0 y despus un 1. Pero si estando en el estado q0 leemos un 1, entonces no estamos ms
cerca de leer 01 que antes, por lo que debemos permanecer en el estado q0. Es decir, f(q0,1) = q0
Sin embargo, si estando en el estado q0 leemos un 0, pasamos a la condicin (2). Es decir,
todava no hemos ledo la secuencia 01, pero ya tenemos un 0. Por lo tanto, usamos q2 para
representar la condicin (2). La transicin desde q0 con la entrada 0 es f(q0,0) = q2.
Consideremos ahora las transiciones desde el estado q2. Si leemos un 0, no estamos mejor que
lo que estbamos, pero tampoco estamos peor. Todava no hemos ledo una secuencia 01, pero
0 ha sido el ltimo smbolo, por lo que todava seguimos esperando un 1. El estado q2 describe
esta situacin perfectamente. En consecuencia, queremos que f(q2,0) = q2. Pero si estamos en el
estado q2 y leemos la entrada 1, sabemos que ha llegado un 0 seguido por un 1. Entonces ahora
podemos pasar a un estado de aceptacin (perteneciente a F) que llamamos q1, y que
corresponde a la condicin (1). Es decir, f(q2,1) = q1.
Finalmente, debemos disear las transiciones para el estado q1. En este estado ya hemos ledo
una secuencia 01, por lo que, independientemente de lo que ocurra, debemos permanecer en
esta situacin. Es decir f(q1,0) = q1 y f(q1,1) = q1.
Por lo tanto, Q ={ q0, q1, q2}. Adems q0 es el estado inicial, y el nico estado de aceptacin o
final es q1; es decir F ={ q1}.
La especificacin completa del autmata A que acepta L (lenguaje de cadenas 0 y 1 que
contienen la subcadena 01) es
A = ({0, 1}, {q0, q1, q2}, f, q0, { q1})
Donde

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

Ao: 2009

pg. 3

Sintaxis y Semntica del Lenguaje UTN FRSF Apunte Nro. 2

AUTMATAS FINITOS

Representaciones de un AFD
La especificacin de un AFD como una quntupla, con una descripcin detallada de la funcin de
transicin f, es tediosa y difcil de leer. Existen dos notaciones preferibles para describir los
autmatas:
1. Un diagrama de transiciones, que es un grafo.
2. Una tabla de transiciones, que es una enumeracin tabular (tabla) de la funcin f, que a la
vez describe el conjunto de estados, y el alfabeto de entrada.
Diagramas de transiciones
Un diagrama de transiciones para un AFD A = (, Q, q0, f, F), es un grafo definido de la
siguiente forma:
a) Hay un nodo para cada estado de Q.
b) El nodo correspondiente al estado inicial q0, tendr una flecha sin origen (o arco entrante)
no etiquetado.
c) Los nodos correspondientes a los estados de aceptacin (los que pertenecen a F) estn
marcados con un doble crculo. Los que no pertenecen a F tienen un crculo simple.
d) Habr un arco etiquetado con a entre el nodo p y el nodo q, si f(p,a) = q. Si existen varios
smbolos de entrada que provocan una transicin del estado p a q, entonces el arco entre
p y q puede estar etiquetado con la lista de esos smbolos.
Ejemplo 1: Autmata para aceptar el lenguaje de cadenas de 0 y 1, con cantidades de 1
pares
0

q0

q1

1
Ejemplo 2: Autmata para aceptar el lenguaje de cadenas de 0 y 1, que contienen la
subcadena 01.
1

1
0,1

q0

q2

q1

Tabla de transiciones
Una tabla de transiciones es una representacin tabular convencional de una funcin como f,
que recibe dos argumentos y devuelve un valor. Esta tabla tendr la siguientes
caractersticas:
Ao: 2009

pg. 4

Sintaxis y Semntica del Lenguaje UTN FRSF Apunte Nro. 2

AUTMATAS FINITOS
a) En las filas estarn los estados q Q
b) El estado inicial se preceder del smbolo ->
c) Cada estado final se preceder del smbolo *
d) En las columnas estarn los smbolos de entrada a
e) El valor correspondiente a la fila del estado q y a la entrada a es el estado que determine
f(q,a)
Ejemplo 1:
f

-> * q0

q0

q1

q1

q1

q0

Ejemplo 2:

-> q0

q2

q0

* q1

q1

q1

q2

q2

q1

Extensin a cadenas de la funcin de transicin


Hemos explicado informalmente que un AFD define un lenguaje: el conjunto de todas las
cadenas que producen una secuencia de transiciones desde el estado inicial a un estado de
aceptacin. Considerando el diagrama de transiciones, el lenguaje de AFD es el conjunto de
etiquetas (de los arcos) que pasan por todos los caminos que conducen desde el estado inicial a
un estado de aceptacin. Falta precisar el concepto de lenguaje de un AFD. Para ello, definimos
una funcin de transicin extendida, que define lo que ocurre cuando se parte de cualquier
estado y se sigue una secuencia de entradas, la llamaremos f.
Dado que la f slo transita cuando recibe un smbolo de entrada, se puede generalizar para
cuando recibe una cadena formada por ms de un smbolo o por la cadena vaca. Para ello
definimos f como la funcin que recibe un estado q y una cadena w y devuelve un estado p. As
tenemos que f: Q x * -> Q
Suponemos que w es una cadena formada por xa; es decir, a es el ltimo smbolo de w y x es la
cadena que contiene todos los smbolos de w excepto el ltimo. Por ejemplo , w =1101 se
descompone en x = 110 y a = 1. Entonces
f(q, w) = f (q, xa) = f (f(q,x),a ) y
f(q, ) = q

Ao: 2009

pg. 5

Sintaxis y Semntica del Lenguaje UTN FRSF Apunte Nro. 2

AUTMATAS FINITOS
La ecuacin puede parecer muy complicada, pero la idea es simple. Para calcular f(q,w), primero
se calcula f(q,x), que es el estado en el que est el autmata despus de procesar todos los
smbolos de w excepto el ltimo.
Ejemplo 1: suponemos el AFD de nuestro ejemplo 1, que acepta cadenas de 0 y 1 con
cantidades pares de 1. Suponemos que la entrada es 110101. Como esta cadena contiene
cantidades pares de 1, esperamos que pertenezca al lenguaje aceptado por el AFD que
definimos. Por lo tanto esperamos que f (q0, 110101) = q0, ya que q0 es el nico estado de
aceptacin.
La comprobacin supone calcular f(q0,w), comenzando por y aumentando progresivamente de
tamao para todos los prefijos de 110101.

f(q0, ) = q0

f(q0,1) = f(f(q0, ),1) = f(q0,1) = q1

f(q0,11) = f(f(q0, 1),1) = f(q1,1) = q0

f(q0,110) = f(f(q0, 11),0) = f(q0,0) = q0

f(q0,1101) = f(f(q0, 110),1) = f(q0,1) = q1

f(q0,11010) = f(f(q0, 1101),0) = f(q1,0) = q1

f(q0,110101) = f(f(q0, 11010),1) = f(q1,1) = q0

Lo cual nos demuestra que 110101 es una cadena que pertenece al lenguaje generado por el
AFD.
Hay otros autores que definen a f(q, ax) = f (f(q,a),x)
La comprobacin es al revs dado que a es el primer smbolo de la cadena y x es la cadena
restante.
As para el ejemplo anterior tenemos
f(q0,110101) = f(f(q0,1), 10101) = f(q1,10101) = f(f(q1,1), 0101) = f(q0,0101) = f(f(q0,0), 101) =
f(q0, 101) = f(f(q0,1), 01) = f(q1, 01) = f(f(q1, 0), 1) = f(q1, 1) = f(f(q1, 1), ) = f(q0, ) = q0
Lenguaje reconocido por un AFD
Ahora podemos definir el lenguaje de un AFD A = (, Q, q0, f, F), como el conjunto de cadenas
aceptadas por AFD. Llamaremos a este lenguaje LAFD, y lo definimos as
LAFD = { w | w * y f(q0,w) F }
Si L es un LAFD decimos que L es un lenguaje regular.
En el ejemplo 1 de la seccin 2.4 LAFD es el conjunto de todas las cadenas de ceros y unos con
cantidad para de unos.

Autmatas Finitos no Deterministas (AFN)

Un autmata finito no determinista AFN tiene la capacidad de estar en varios estados


simultneamente. La diferencia entre AFD y un AFN est en la funcin de transicin. Para el AFN,
f es una funcin que toma como argumentos un estado y un smbolo de entrada, pero devuelve un
conjunto de cero, uno o ms estados (en vez de devolver un estado, como en el caso del AFD).

Ao: 2009

pg. 6

Sintaxis y Semntica del Lenguaje UTN FRSF Apunte Nro. 2

AUTMATAS FINITOS
Definicin formal
Un AFN se representa, esencialmente, como un AFD:
A = (, Q, q0, f, F)
donde:

es el alfabeto (conjunto finito) de smbolos de entrada.

Q es el conjunto finito de estados.

q0 Q es el estado inicial.

f, es la funcin de transicin, es una funcin que toma como argumentos un estado


de Q y un smbolo de entrada de y devuelve un subconjunto de Q.
f : Q x -> P(Q)

conjunto de estados

F Q, es el conjunto de estados finales (o de aceptacin).

Ejemplos
Ejemplo 1: El siguiente autmata es un AFN que acepta todas las cadenas de 0 y 1 que terminan
en 01.
0,1

q0

q2

q1

Puede especificarse formalmente as


AFN = ({0,1}, {q0,q1,q2}, q0, f, {q2})
Donde la funcin de transicin f, est dada por la siguiente tabla de transiciones
f

-> q0

{ q0, q1}

{ q0}

q1

{q2}

* q2

Ntese que las tablas de transiciones sirven para especificar tanto la funcin de transicin de un
AFN como la de un AFD. La nica diferencia es que cada anotacin en la tabla de un AFN es una
conjunto, aunque dicho conjunto tenga un solo elemento. Tambin debe sealarse que, si no
existe ninguna transicin a partir de un estado para un smbolo determinado, el valor correcto que
hay que colocar en la tabla es , el conjunto vaco.
La funcin de transicin extendida
Al igual que para los AFD, tenemos que extender la funcin de transicin f de un AFN a una
funcin f que tome como argumentos en estado q y una cadena de smbolos de entrada w, y
devuelva el conjunto de estados en los que estar el AFN si comienza en el estado q y procesa la
cadena w.
Ao: 2009

pg. 7

Sintaxis y Semntica del Lenguaje UTN FRSF Apunte Nro. 2

AUTMATAS FINITOS
Para poder entender esta funcin primero, veremos como funciona un AFN para el
reconocimiento de una cadena.
Mientras que en un AFD de cada estado sale exactamente un arco para cada smbolo de entrada,
un AFN no tiene esta restriccin: vemos en el ejemplo anterior casos en que el nmero de arcos
es cero, uno o dos para cada smbolo de entrada.
La siguiente figura sugiere cmo un AFN procesa las entradas, basado en el autmata del
ejemplo para cuando ingresa una cadena 00101.
q0

q0

q0

q1

q1

q0

q0

q0

q1

(muere)
q2

q2
(muere)

Comienza siempre en su estado inicial q0. Cuando se lee el primer 0, el AFN puede ir al estado q0
o al estado q1; por lo tanto, va hacia ambos. Estos dos hilos los sugiere la segunda columna de la
figura anterior. A continuacin se lee el segundo 0. El estado q0 puede ir otra vez,, tanto a q0
como a q1. Sin embargo, el estado q1 no tiene transiciones con el smbolo 0; por lo tanto, el
autmata se detiene. Cuando llega la tercera entrada, un 1, hay que considerar las transiciones
desde los estados q0 y q1. Vemos que q0 solo pasa a q0 con un 1, mientras que q1 solo pasa a q2.
Por lo tanto, despus de leer 001, el AFN est en los estados q0 y q2. Como q2 es un estado de
aceptacin, el AFN acepta 001.
Sin embargo, la entrada an no ha finalizado. La cuarta entrada, un 0, provoca que el hilo de
ejecucin de q2 muera, mientras que q0 pasa tanto a q0 como a q1. La ltima entrada, un 1, enva
q0 a q0, y q1 a q2. Como estamos otra vez en un estado de aceptacin, 00101 es aceptada.
Entonces en base a este ejemplo vemos que f(q,w), es la columna de estados en los que se
encuentra el autmata despus de leer w, cuando q es el nico estado de la primera columna.
Por ejemplo en la figura vemos que f(q0,001) = {q0, q2}. Formalmente, definimos as la funcin f
correspondiente a la funcin de transicin f de un AFN:
f (q, ) = {q}. Es decir, si no leemos ningn smbolo, estamos nicamente en el estado en el
que hemos comenzado.
Supongamos que w es de la forma w = xa, donde a es el smbolo final de w y x es el resto de w.
Supongamos tambin que f(q,x) = {p1, p2, ....pk} y tomando la unin de las f para los k estados p,
o sea U i=1 hasta k f(pi,a) = {r1, r2, ...., rm}
Entonces,
f(q, w) = {r1, r2,....rm}. Ms informalmente, para calcular f(q,w) obtenemos primero f(q,x) (un
conjunto de estados), y despus seguimos todas las transiciones con la etiqueta a desde cada
uno de esos estados.
Ejemplo: Usemos f para describir el proceso de la entrada 00101 para el AFN del ejemplo
anterior. Un resmen de estos pasos es:
1. f (q0, ) = {q0}
2. f (q0,0) = f(q0,0) = {q0,q1}
3. f (q0,00) = f(q0,0) f(q1,0) = {q0,q1} = {q0,q1}

Ao: 2009

pg. 8

Sintaxis y Semntica del Lenguaje UTN FRSF Apunte Nro. 2

AUTMATAS FINITOS
4. f (q0,001) = f(q0,1) f(q1,1) = {q0} {q2} = {q0, q2}
5. f (q0,0010) = f(q0,0) f(q2,0) = {q0,q1} = {q0,q1}
6. f (q0,00101) = f(q0,1) f(q1,1) = {q0} {q2} = {q0, q2}
La lnea (1) es la regla bsica. Obtenemos la lnea (2) aplicando f al nico estado que estaba en
el conjunto anterior, q0, cuyo resultado es {q0,q1}. La lnea (3) se obtiene haciendo la unin de los
resultados de aplicar f a los dos estados del conjunto anterior, con el smbolo de entrada 0. Es
decir, f(q0,0) = {q0,q1}, mientras que f(q1,0) = . Para la lnea (4), hacemos la unin de f(q0,1)={q0}
y de f(q1,1) = {q2}. Las lneas (5) y (6) son similares a las lneas (3) y (4).
Lenguaje de un AFN
Como se ha sugerido, un AFN acepta una cadena w si, a medida que se leen los caracteres de
w, es posible elegir en cada paso el estado siguiente, de tal forma que se pase desde el estado
inicial a un estado de aceptacin. El hecho de que existan otras elecciones posibles que,
siguiendo los smbolos de w, lleven a un estado que no es de aceptacin o no lleven a ningn
estado (es decir, el hecho de que la secuencia de estados muera), no evita que w sea aceptada
por el AFN en su conjunto. Formalmente, si A = (, Q, f, q0, F) es un AFN, , entonces
L(A) = {w / f (q0,w) F
Es decir, L(A) es el conjunto de cadenas w pertenecientes a * tales que f (q0,w) contiene al
menos un estado de aceptacin.
Equivalencia entre autmatas Finitos Deterministas y No deterministas
Es un hecho sorprendente que todo lenguaje que puede describirse mediante un AFN tambin
puede describirse con un AFD. Ms an, en la prctica, el AFD tiene casi el mismo nmero de
estados que un AFN, aunque a menudo tiene ms transiciones.
La demostracin de que un AFD puede hacer lo mismo que un AFN implica una construccin
importante,
llamada construccin de subconjuntos, porque supone construir todos los
subconjuntos del conjunto de estados del AFN. En general, muchas demostraciones sobre
autmatas obligan a construir un autmata a partir de otro. Es importante fijarse en las
construccin de subconjuntos como ejemplo de cmo se puede describir formalmente un
autmata en funcin de los estados y transiciones de otro sin conocer los detalles especficos del
segundo.
La construccin de subconjuntos parte de un AFN N =(, QN, fN, q0, FN). Su objetivo es la
descripcin de un AFD D =(, QD, fD, {q0}, FD) tal que L(D) = L(N). Ntese que los alfabetos de
entrada de ambos autmatas son idnticos, y el estado inicial de D es el conjunto que contiene
solo el estado inicial de N. Las otras componentes de D se construyen de la siguiente forma:

QD es el conjunto de subconjuntos de QN; es decir, QD es el conjunto potencia de QN. En la


prctica vemos que pueden existir estados inaccesibles desde el estado inicial y por lo
tanto son eliminados.

FD es el conjunto de subconjuntos S de QN tales que S FN . Es decir, FD contiene

todos los conjuntos de estados de N que incluyen al menos un estado de aceptacin de N.

Para cada subconjunto S QN y para cada smbolo de entrada a en ,

Ao: 2009

pg. 9

Sintaxis y Semntica del Lenguaje UTN FRSF Apunte Nro. 2

AUTMATAS FINITOS
fD (S,a) = fN (p,a)
p en S

Es decir, para calcular fD (S,a) miramos todos los estados p de S, vemos qu estados N pasan a p
con entrada a, y tomamos la unin de todos estos estados.
Ejemplo: Sea N el autmata del Ejemplo 1, que acepta todas las cadenas que terminan en 01.
Como el conjunto de estados de N es {q0, q1, q2}, la construccin de subconjuntos produce un AFD
con 23 = 8 estados, correspondientes a todos los subconjuntos de estos tres estados. La siguiente
tabla muestra las transiciones para estos ocho estados:

-> {q0}
{q1}
* {q2}
{q0, q1}
* {q0, q2}
* {q1, q2}
* {q0, q1, q2}

{q0, q1}

{q0, q1}
{q0, q1}

{q0, q1}

{q0}
{q2}

{q0, q2}
{q0}
{q2}
{q0, q2}

Ntese que esta tabla de transiciones pertenece a un autmata finito determinista. Aunque los
valores que aparecen en la tabla son conjuntos, los estados del AFD construido son tambin
conjuntos. Para dejarlo ms claro, podemos inventar nombres nuevos para estos estados: por
ejemplo, A para , B para {q0}, y as sucesivamente. La tabla de transiciones del AFD, que est a
continuacin es exactamente la misma que la anterior, pero deja ms claro que las anotaciones de
la tabla, son estados individuales del AFD.
0
A
E
A
A
E
E
A
E

A
-> B
C
* D
E
* F
* G
* H

1
A
B
D
A
F
B
D
F

De los ocho estados, si comenzamos por el estado inicial B, solo podemos alcanzar los estados B,
E y F. Los otros cinco estados son inaccesibles desde el estado inicial, y podemos eliminarlos. A
menudo se puede evitar la etapa de construir la tabla de transiciones para todos los subconjuntos
de estados realizando una evolucin perezosa de los subconjuntos, como se muestra a
continuacin.
Si tomamos el mismo ejemplo, partimos de la tabla de transiciones del AFN N.

Ao: 2009

-> q0

{ q0, q1}

{ q0}

q1

{q2}

* q2

pg. 10

Sintaxis y Semntica del Lenguaje UTN FRSF Apunte Nro. 2

AUTMATAS FINITOS

Sabemos que {q0} es un estado del AFD D. Vemos que fD ({q0},0) = { q0, q1} y que fD ({q0},1) = { q0}
Esto se puede observar claramente en la tabla de transiciones anteriores, slo que ahora
tomamos a cada estado como un conjunto. As obtenemos la primer fila de la tabla de transiciones
del AFD ( que es la segunda de la tabla que tenamos con los 8 estados).
Uno de los subconjuntos que calculamos es viejo: { q0} ya ha sido tratado. Sin embargo, el otro, {
q0, q1}, es nuevo, y hay que calcular sus transiciones. Vemos que
fD ({q0, q1},0) = { q0, q1}
ya que fD ({q0, q1},0) = fN (q0, 0) U fN (q1, 0) = { q0, q1} U = { q0, q1}
fD ({q0,q1}, 1) = { q0, q2}
ya que fD ({q0, q1},1) = fN (q0, 1) U fN (q1, 1) = { q0} U { q2} = { q0, q2}
que se corresponde con la 5ta. fila de la tabla donde tenamos los 8 estados. Ahora hemos
descubierto un nuevo estado { q0, q2}. Un clculo similar nos dice que
y

fD ({q0, q2},0) = { q0, q1}


ya que fD ({q0, q2},0) = fN (q0, 0) U fN (q2, 0) = { q0, q1} U = { q0, q1}
y

fD ({q0,q2}, 1) = { q0}
ya que fD ({q0, q2},1) = fN (q0, 1) U fN (q2, 1) = { q0} U = { q0}

ste clculo se corresponde con la 6ta. fila de la tabla donde tenamos los 8 estados, y vemos
adems que no surgen nuevos estados, con lo cual concluimos con nuestro AFD construido a
partir del AFN
f

-> { q0}

{ q0, q1}

{q0}

{ q0, q1}

{ q0, q1}

{q0, q2}

* {q0, q2}

{q0, q1}

{q0}

0
{q0}

1
{q0,q2}

{q0,q1}
0
1

Como los estados de aceptacin del AFD son aquellos que incluyen al menos un estado de
aceptacin del AFN y el AFN acepta si llega al menos a uno de sus estados de aceptacin,
entonces el AFD y el AFN aceptan exactamente las mismas cadenas y por lo tanto, el mismo
lenguaje. Entonces si D = (, QD, fD, {q0}, FD) es el AFD construido a partir del AFN N = (, QN, fN,
q0, FN) mediante la construccin de subconjuntos, entonces L(D) = L(N).

Ao: 2009

pg. 11

Sintaxis y Semntica del Lenguaje UTN FRSF Apunte Nro. 2

AUTMATAS FINITOS
Autmatas Finitos con transiciones
Vamos a presentar otra extensin de los autmatas finitos. Como nueva caracterstica,
permitiremos transiciones para ( ), la cadena vaca. Con ellas, un AFN puede hacer
transiciones espontneamente sin recibir ningn smbolo de entrada. Igual que como sucedi
cuando aadimos el no determinismo a los autmatas, esta nueva capacidad de los autmatas
tampoco expande la clase de lenguajes que aceptan los autmatas finitos, pero proporcionan
algunas facilidades de programacin.
Se puede representar a un AFN- exactamente igual que un AFN, con una sola excepcin: la
funcin de transicin debe incluir informacin sobre las transiciones . Formalmente,
representaremos a un AFN- A mediante A = (, QN, f, q0, F), donde todas las componentes
tienen la misma interpretacin que en un AFN, excepto que f es ahora una funcin, cuyos
argumentos son:
1. Un estado perteneciente a Q.
2. Un miembro de { }, es decir, un smbolo de entrada o el smbolo . Se exige que , el
smbolo que representa la cadena vaca, no forme parte del alfabeto , para que no se
produzcan confusiones.
Ejemplo: El siguiente autmata AFN- acepta nmeros decimales que contienen:
1.
2.
3.
4.

un signo + o - opcional
una cadena de dgitos
un punto decimal
otra cadena de dgitos
0, 1,...,9

, +, -

q0

0, 1,...,9

q1

q2

q3

0, 1,...,9

0, 1,...,9

q5

.
q4

Representado formalmente al AFN- como E = ({q0, q1..., q5}, {., +, -, 0, 1,..., 9}, f, q0, {q5})
Donde f viene definido por la siguiente tabla de transiciones

Ao: 2009

+, -

0,1,..,9

-> q0

{q1}

{q1}

q1

{q2}

{q1, q4 }

q2

{q3}

q3

{q5}

{q3}

q4

{q3}

* q5

pg. 12

Sintaxis y Semntica del Lenguaje UTN FRSF Apunte Nro. 2

AUTMATAS FINITOS
Ahora f es una funcin con dos argumentos:
1- un estado perteneciente a Q
2- un smbolo de entrada perteneciente a o el smbolo donde no forma parte del
alfabeto de entrada

Autmata Finito asociado a una G3

La teora de lenguajes y gramticas formales tienen una relacin directa con la teora de
mquinas abstractas (autmatas), siendo posible establecer entre ambas un isomorfismo. Dado
que las gramticas proporcionan las reglas utilizadas en la generacin de las cadenas de un
lenguaje, se puede establecer una conexin entre las clases de lenguajes generados por ciertos
tipos de gramticas y la clase de lenguajes reconocibles por ciertas mquinas.
Una de las aplicaciones de los Autmatas Finitos consiste en la aceptacin de lenguajes
generados por gramticas del tipo 3 o regulares.
De AFD/AFND a G3
Si el autmata es un AFND, primero se pasa a AFD. Una vez se tenga un AFD como A = (, Q, f,
q0, F), se construye la gramtica equivalente lineal por la derecha G3 = (T, N, S, P).
Recordemos que T es con conjunto de los terminales, N es el conjunto de los no Terminales, S es
el smbolo de comienzo (S N) y P es el conjunto de las reglas de produccin.
La forma de encontrar estos cuatro elementos es la siguiente, la G3 = (, Q, q0, P), por lo tanto
vemos que

T = , el conjunto de los Terminales coincide con el alfabeto de entrada del autmata

N = Q, el conjunto de los No Terminales coincide con el conjunto de los estados del


autmata

S = q0, el smbolo de comienzo es el estado inicial del autmata.

P que es el conjunto de las reglas de Produccin, se encuentra de la siguiente manera


o

Si f(q,a) = p entonces existe una regla q ::= a p, (a y p,q Q)

Si f(q,a) = p y p F, entonces existe una regla q::= a, (a y p,q Q)

Si q0 F, entonces existe una regla q::=

Ejemplo:
A partir del autmata A = ({0,1}, { c0, c1, c2, c3, c4}, f, c0, { c2, c4}) el cual est representado por la
siguiente tabla

Ao: 2009

-> c0

c1

c2

c1

c1

c3

* c2

c0

c4

c3

c3

c3

* c4

c0

c4

pg. 13

Sintaxis y Semntica del Lenguaje UTN FRSF Apunte Nro. 2

AUTMATAS FINITOS

Se genera la siguiente gramtica


G = ({0,1}, { c0, c1, c2, c3, c4}, c0, P)
donde P es :
c0 ::= 0 c1
c0 ::= 1 c2
c0 ::= 1
c1 ::= 0 c1
c1 ::= 1 c3
c2 ::= 0 c0
c2 ::= 1 c4
c2 ::= 1
c3 ::= 0 c3
c3 ::= 1 c3
c4 ::= 0 c0
c4 ::= 1 c4
c4 ::= 1
o escrito de otra manera:
c0 ::= 0 c1 | 1 c2 | 1
c1 ::= 0 c1 | 1 c3
c2 ::= 0 c0 | 1 c4 | 1
c3 ::= 0 c3 | 1 c3
c4 ::= 0 c0 | 1 c4 | 1

De G3 a AFD/AFND
Dada la gramtica lineal por derecha G = (T, N, S, P), se construye el autmata equivalente
A = (, Q, f, q0, F), de la siguiente manera:
A = (T, N U {F}, f, S, {F}), teniendo en cuenta las siguientes relaciones

El conjunto T que son los terminales de G se convierte en que es el alfabeto de entrada


del autmata

El conjunto N de los No terminales de G ms un smbolo nuevo llamado F, se convierte en


Q que es el conjunto de estados del autmata.

S que es el smbolo de comienzo de G, se convierte en el estado inicial del autmata.

F que es el smbolo nuevo, se convierte en el estado Final del autmata.

La funcin f, se construye de la siguiente manera

Ao: 2009

pg. 14

Sintaxis y Semntica del Lenguaje UTN FRSF Apunte Nro. 2

AUTMATAS FINITOS
o

Si A = aB entonces f(A,a) = B

Si A = a entonces F(A,a) = F

Si S = entonces f(S, ) = F

Ejemplo:
Dada la gramtica G = ({0,1}, {A, B, C}, A, P) con P
A ::= 0B
A ::=
B ::= 1C
B ::= 1
C ::= 0B
el autmata que reconoce el lenguaje generado por dicha gramtica ser:
AG = ({0, 1}, {A, B, C, F}, f, A, {F})

siendo f
f(A,0) = B
f(A,) = F
f(C,0) = B
f(B,1) = C
f(B,1) = F

-> A

B
C

{C,F}
B

*F

BIBLIOGRAFA DEL APUNTE NRO. 2


1. John Hopcroft, Rajeev Motwani, Jeffrey Ullman. Introduccin a la teora de autmatas, lenguajes y
computacin, 3 ed., Pearson, 2007.
2. Pedro Isasi Viuela, Paloma Martnez Fernndez, Daniel Borrajo Milln. Lenguajes, gramticas y
autmatas. Un Enfoque Prctico, Addison-Wesley 1997.

Ao: 2009

pg. 15

También podría gustarte