Vous êtes sur la page 1sur 6

Informtica Terica I-2013

Prof. Yariela Y. Hernndez


1

MDULO 2: AUTMATAS FINITOS DETERMINISTAS

La palabra autmata evoca algo que pretende imitar las funciones propias de los seres vivos,
especialmente relacionadas con el movimiento, por ejemplo, el tpico robot antropomorfo. En el campo de los
Traductores, Procesadores, Compiladores e Intrpretes, lo fundamental no es la simulacin del movimiento,
sino la simulacin de procesos para tratar informacin.
La informacin se codifica en cadenas de smbolos, y un autmata es un dispositivo que manipula
cadenas de smbolos que se le presentan a su entrada, produciendo otras tiras o cadenas de smbolos a su salida.
El autmata recibe los smbolos de entrada, uno detrs de otro, es decir secuencialmente. El smbolo de
salida que en un instante determinado produce un autmata, no slo depende del ltimo smbolo recibido a la
entrada, sino de toda la secuencia o cadena, que ha recibido hasta ese instante.
Todo lo anterior conduce a definir un concepto fundamental: estado de un autmata. El estado de un
autmata es toda la informacin necesaria en un momento dado, para poder deducir, dado un smbolo de
entrada en ese momento, cual ser el smbolo de salida. Es decir, conocer el estado de un autmata, es lo
mismo que conocer toda la historia de smbolos de entrada, as como el estado inicial, estado en que se
encontraba el autmata al recibir el primero de los smbolos de entrada.

2.1 Definicin formal de autmatas:
Un autmata finito o mquina de estado finito es un modelo matemtico de un sistema que recibe una
cadena constituida por smbolos de un alfabeto y determina si esa cadena pertenece al lenguaje que el autmata
reconoce.
Formalmente, un autmata finito (AF) puede ser descrito como una 5-tupla (Q, , o, s, F ) donde:
Q es un conjunto de estados;
es un alfabeto de entrada;
o es una funcin de transicin o: Q x ( {c}) (Q), donde representa a la cadena vaca y (Q) es
el conjunto potencia del conjunto de estados;
q e Q es el estado inicial;
F _ Q es un conjunto de estados de aceptacin o finales.

Descripcin informal de su funcionamiento
En el comienzo del proceso de reconocimiento de una cadena, el AF 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. Si el estado en el que se detuvo es un estado de aceptacin o final, entonces la cadena pertenece al
lenguaje reconocido por el autmata, caso contrario, la cadena no pertenece a dicho lenguaje.

2.2 Representacin de autmatas:
Los autmatas se pueden representar mediante:
Tabla de transiciones
Diagrama de transiciones

2.2.1. Tabla de transiciones:
En Teora de autmatas y Lgica secuencial, una tabla de transicin de estados es una tabla que muestra
que estado (o estados en el caso de un Autmata finito no determinista) se mover la mquina de estados,
basndose en el estado actual y otras entradas.
Informtica Terica I-2013

Prof. Yariela Y. Hernndez
2

Esta tabla de transiciones contiene ,Q, filas, que corresponden a los estados y ,, columnas que
corresponden a los smbolos del alfabeto. La componente (i, j ) es el estado o(q
i
, a
j
) donde q
i
es el i-simo
elemento de Q y a
j
es el j-simo elemento de , suponiendo que se ha realizado una ordenacin previa en dichos
conjuntos.
Ejemplo: Sea A = {(q
0
, q
1
, q
2
), (a, b), o, q
0
, ((q
0
, q
1
)} con la siguiente definicin de o:
o(q
0
, a) = q
0
o(q
1
, a) = q
2
o(q
0
, a) = q
0

o(q
0
, b) = q
1
o(q
1
, b) = q
1
o(q
2
, b) = q
2


La tabla de transiciones correspondientes es:
a b
q
0
q
0
q
1

q
1
q
2
q
1

q
2
q
2
q
2



2.2.1. Diagrama de transiciones o estados:
UN DIAGRAMA DE TRANSICIONES es una coleccin finita de crculos, los cuales se pueden rotular
para fines de referencia, conectados por flechas que reciben el nombre de ARCOS. Cada uno de estos arcos se
etiqueta con un smbolo o categora de smbolos que podra presentarse en la cadena de entrada que se analiza.
Uno de los crculos se designa con un apuntador, y representa una posicin inicial. Adems, por lo menos uno
de los crculos se representa como un circulo doble; estos crculos dobles designan posiciones del diagrama en
las cuales se ha reconocido una cadena valida.
Decimos que una cadena de smbolos es aceptada por un diagrama de transiciones si los smbolos que
aparecen en la cadena (de izquierda a derecha) corresponden a una secuencia de arcos rotulados que conducen
del crculo designado por el apuntador a un circulo doble.
Los crculos de un diagrama de transiciones representan posiciones, o estados, donde no podemos
encontrar al evaluar una cadena de smbolos. Es comn llamar estados a los crculos de un diagrama de
transiciones. l circulo de partida se llama estado inicial y los crculos dobles, estados de aceptacin.

Ejemplo 1:
El siguiente es el diagrama de transiciones que representa la sintaxis de un nombre de variable
Informtica Terica I-2013

Prof. Yariela Y. Hernndez
3


Ejemplo 2:
El siguiente autmata, el cual, para el alfabeto S = { a, b, c } reconoce la cadena c, la cadena a, las
cadenas que empiezan por a y acaban en a o en b y las que empiezan por a, seguidas de una serie de a de b y
acaban en c.




Transformaciones de/a diagrama de estados
Es posible dibujar un Diagrama de estados partiendo de la tabla. Una secuencia posible de pasos a seguir es
la siguiente:
1. Dibuja crculos que representen los estados dados.
2. Para cada uno de los estados, mira la correspondiente fila y dibuja una flecha para cada uno de los
estados destino. Pueden ser mltiples flechas para un mismo carcter de entrada si el autmata es un AF
No Determinista.
3. Designa un estado como el estado inicial. El estado inicial est dado en la definicin formal del
autmata.
4. Designa uno o ms estados como estado final (o tambin llamado de aceptacin). Esto tambin est
dado en la definicin formal.




Informtica Terica I-2013

Prof. Yariela Y. Hernndez
4

2.3 Autmata finito determinista:
Los Autmatas se caracterizan por tener un Estado inicial, reciben una cadena de smbolos, cambian de
estado por cada elemento ledo o pueden permanecer en el mismo estado. Tambin tienen un conjunto de
Estados Finales o Aceptables que nos indican si una cadena pertenece al lenguaje al final de una lectura.
Existen tres tipos de autmatas finitos
1. Autmata finito determinista (AFD)
Cada estado de un autmata de este tipo tiene una transicin por cada smbolo del alfabeto.

2. Autmata finito no determinista (AFND)
Los estados de un autmata de este tipo pueden, o no, tener una o ms transiciones por cada smbolo del
alfabeto. El autmata acepta una palabra si existe al menos un camino desde el estado q
0
a un estado
final F etiquetado con la palabra de entrada. Si una transicin no est definida, de manera que el
autmata no puede saber como continuar leyendo la entrada, la palabra es rechazada. Tiene la capacidad
de estar en varios estados simultneamente.

3. Autmata finito no determinista, con transiciones (AFND-)
Adems de ser capaz de alcanzar ms estados leyendo un smbolo, permite alcanzarlos sin leer ningn
smbolo. Si un estado tiene transiciones etiquetadas con , entonces el AFND puede encontrarse en
cualquier de los estados alcanzables por las transiciones , directamente o a travs de otros estados con
transiciones . El conjunto de estados que pueden ser alcanzados mediante este mtodo desde un estado
q, se denomina la clausura de q.

AFND con transiciones vacas

Informtica Terica I-2013

Prof. Yariela Y. Hernndez
5


Autmatas finitos deterministas:
Un Autmata recibe secuencialmente una cadena de smbolos y cambia de estado por cada smbolo ledo
o tambin puede permanecer en el mismo estado. Al final de la lectura el estado del Autmata nos indica si la
cadena es aceptada o mejor dicho pertenece al Lenguaje que describe nuestra mquina. Si al final de leer todos
los smbolos de entrada la mquina est en alguno de los estados Finales entonces esa cadena es aceptada, si el
estado no es final entonces la cadena no pertenece al lenguaje.
Un AFD o autmata finito determinista es aquel en cual para cada par (estado, smbolo) est
perfectamente definido el siguiente estado al cual pasara el autmata, es decir para cualquier estado q en que se
encuentre el autmata y con cualquier smbolo s del alfabeto ledo, existe exactamente una transicin que parte
de q y esta etiquetada con s.
Formalmente, un autmata finito determinista (AFD) es similar a un Autmata de estados finitos,
representado con una 5-tupla (Q, , o, q, F ) donde:
Q es un conjunto de estados;
es un alfabeto de entrada;
o es una funcin de transicin o: Q x Q Q
q e Q es el estado inicial;
F _ Q es un conjunto de estados de aceptacin o finales.

Al contrario de la definicin de autmata finito, este es un caso particular donde no se permiten transiciones
vacas, el dominio de la funcin o es Q (con lo cual no se permiten transiciones desde un estado de un
mismo smbolo a varios estados).

DIAGRAMA DE TRANSICIONES DETERMINISTA
Para representar un programa en el mecanismo de control utilizamos un diagrama de transiciones cuyos
estados representan los estados de la mquina y cuyos arcos representan una posible transicin de la mquina.
Por lo tanto, los estados de inicio y aceptacin del diagrama corresponden a los estados de inicio y aceptacin
del autmata.
Un diagrama para un AFD aceptara si y solo si su estado inicial es tambin un estado de
aceptacin.

El requisito del determinismo impone ciertas restricciones sobre los diagramas de transiciones que pueden
aparecer en los programas para un autmata finito determinista. Se dice que un diagrama de transiciones es
determinista si cumple las siguientes condiciones:
En particular, cada estado de estos diagramas solo debe tener un arco que sale para cada smbolo del
alfabeto; de lo contrario, una mquina que llega a este estado se enfrentara a una eleccin de cul debe ser el
arco a seguir.
Adems, dicho diagrama debe estar completamente definido, es decir debe existir por lo menos un arco para
cada smbolo del alfabeto; de lo contrario, una mquina que llega a este estado puede enfrentarse a una
situacin donde no pueda aplicarse ninguna transicin.
Ejemplo 1:
El siguiente diagrama no es determinista ya que no est completamente definido; no representa cual ser la
accin que debe ocurrir si se recibe una letra o un dgito mientras se encuentra en el estado 2.
Informtica Terica I-2013

Prof. Yariela Y. Hernndez
6



No obstante, el diagrama visto anteriormente no tiene ms de un arco de salida de un estado para cada
smbolo y, por consiguiente, pueden modificarse para ajustarse a los requisitos del determinismo, aplicando lo
siguiente:
- Aadimos un estado que representara un papel de captacin global
Para cada smbolo del alfabeto, dibujar un arco rotulado con dicho smbolo, que empieza y termina en
este nuevo estado.
- Agregamos arcos de los otros estados a este nuevo, hasta que cada uno de los estados sea el origen de un
arco para cada smbolo del alfabeto.
Diagrama modificado del ejemplo 1.


El funcionamiento de esta mquina es el siguiente:
Inicialmente la memoria se encuentra en el estado q
0
, la cinta de entrada contiene la cadena a analizar
por la mquina, escrita a partir de su primera posicin, y la cabeza de lectura se encuentra apuntando a
esa primera posicin de la cinta.
Suponiendo el autmata en un estado q y suponiendo que lee en la cinta de entrada un smbolo a, la
memoria finita pasa al estado o(q,a) y mueve la cabeza lectora una posicin a la derecha.
Cuando la cabeza lectora llega a la primera posicin vaca de la cinta significa que la cadena de entrada
ha sido completamente analizada por la mquina. Se dice que la cadena es aceptada si el estado al que
se llega finalmente pertenece al conjunto de estados finales F.

Vous aimerez peut-être aussi