Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tecnolgico de
Saltillo
La ventana de edicin.
Para crear un autmata finito se hace click en la opcin Finite Automaton del men.
Men principal.
LENGUAJES Y AUTMATAS I
Ventana de edicin.
La barra de herramientas.
: Crea estados.
LENGUAJES Y AUTMATAS I
Borrador
: Crea transiciones.
Creando estados.
Primeo se crea un estado, para realizar tal cosa se necesita activar la herramienta creadora de
estados haciendo clic en el botn en la barra de herramientas.
Luego se hace clic en el rea de edicin en cualquier parte deseado para crear estados, al hacer
esto aparecer un pequeo crculo amarillo que dice q0.
LENGUAJES Y AUTMATAS I
El men de estados.
Desde el men desplegado al hacer clic derecho en el estado q0, se seleccionara la casilla Initial
para configurar que el estado q0 sea el estado inicial, aparece una flecha a la derecha de q0 para
indicar que este es el estado inicial.
Para crear el estado inicial, se hace clic derecho en el estado que se quiera establecer como estado
final, se despliega un men y se selecciona la casilla Final. El crculo tendr doble lnea, indicando
que ese es el estado final.
Creando transiciones.
Se conoce que las cadenas en dicho lenguajes pueden comenzar, dependiendo si es cerradura
positiva o estrella de Kleene, con una o ms as, as que el estado inicial debe tener una
transicin en a, esto significa que el autmata finito debera estar en el mismo estado despus
de procesar cualquier nmero de as. La transicin de salida de a a q0 se cicla nuevamente a s
mismo.
Para crear dicha transicin, primero se selecciona la herramienta creadora de transiciones
de la
barra de herramientas. Luego, se hace clic en q0 en el rea de edicin. Debe de aparecer una caja
de texto en el estado:
LENGUAJES Y AUTMATAS I
Transicin creada.
Luego, se sabe que las cadenas en una lenguaje deben terminar con un numero de bs. Se sabe
que la transicin de salida desde q0 debe ser el estado final, cuando una cadena termine con b,
esta debera ser aceptada. Para crear una transicin desde el estado inicial q0 al estado final q1,
primero se hace clic en la herramienta creadora de transicin y luego se hace clic en q0 y se
arrastra el mouse a q1 y se hace clic. Se escribe b en la caja de texto, de la misma manera que se
hizo con a. La transicin entre a y b debera lucir asi:
Finalmente, se conoce que solo las cadenas que terminen con b deberan ser aceptadas. Tambin
se sabe que q1 tiene una transicin de salida en b, esta no puede ciclarse de regreso a q1. Existen 2
opciones para la transicin: puede ir al estad inicial q0 o crear un nuevo estado, llamado q2.
Si la transicin en b fue hacia el estado inicial q0, las cadenas podran no tener que tener la forma
ab; las cadenas como ababab tambin seran aceptadas. La transicin no puede ser hacia q0, y
debe estar hacia q2.
Creando una transicin en b desde q1 a q2.
Como el autmata finito debera aceptar las cadenas que terminen con cierto nmero de bs,
esto crea otra transicin en b desde q2 a q1. Ahora el autmata finito est lleno y debe de
funcionar, este debe lucir asi:
LENGUAJES Y AUTMATAS I
De manera parecida, para borrar una transicin se hace clic en la flecha de la transicin cuando se
est en modo para borrar.
Ingresando mltiples cadenas al autmata finito.
Una vez que se termin de disear el autmata finito determinista se desea probarla y observar si
realmente acepta cadenas de un lenguaje dado. Para logra esto, se selecciona en la pestaa
Input luego Multiple Run en la barra del men.
Una nueva ventana aparecer desplegando el autmata en la parte izquierda y una tabla para
ingresar cadenas en la derecha:
Para ingresar las cadenas de entrada, se hace clic en la primera fila donde dice Input y se escribe
la cadena el cuadro de dilogo. Cuando est listo, se hace clic en Run Inputs para probar el AFD
y todas las cadenas de entrada. Los resultados, Accept o Reject se muestran en la columna
Result.
LENGUAJES Y AUTMATAS I
Haciendo clic en Clear todas las cadenas ingresadas sern borradas de los cuadros de dialogo.
LENGUAJES Y AUTMATAS I
Utilizando la herramienta JFLAP obtenga los autmatas finitos deterministas de las siguientes
expresiones:
1
X+yz*
Paso #1. Crear estados. Para esta expresin se crearan 3 estados q0, q1 y q2. Primero se har clic
en la herramienta y luego se un clic en el rea de edicin para la creacin del estado q0, luego
otro clic para el estado q1 y un ltimo clic para el estado q2.
Paso #2. Definir el estado inicial y estado final. Para esta expresin se definir al estado q0 como
estado inicial y a q2 como estado final. Por lo tanto se har clic en la herramienta , luego se hace
clic derecho al estado q0 y se elige la opcin Initial.
Una vez terminada esta parte, aparecer una flecha en la parte derecha de q0. Esta flecha define
que q0 es el estado inicial.
LENGUAJES Y AUTMATAS I
A continuacin se definir que q2 ser definido como el estado final, para lograr esto, repite el
proceso anterior pero esta vez se hace clic en q2 y se elige la opcin Final.
Ahora el estado q2 tiene doble contorno, esto quiere decir que est establecido como estado final.
Paso #3. Crear las transiciones: Una vez establecidos los estados final e inicial se procede a crear
las transiciones del autmata finito. Regresando a la expresin x+yz y analizando la misma, se debe
hacer una transicin del estado q0 al estado q1 y a esta transicin se le asignara el valor x. Para ello
se elige la herramienta , luego se selecciona el estado q0 y se arrastra la lnea al estado q1 y se
escribir x.
Ahora se establece una transicin de q1 a q1, debido a la cerradura positiva, es decir que existirn
cadenas que puedan poseer una o ms x. Se hace clic en la herramienta , y se selecciona q1,
luego se escribe el valor x.
LENGUAJES Y AUTMATAS I
Luego se establece una transicin de q1 a q2 y a esta transicin se le asignara el valor y. Se hace clic
en la herramienta , y se selecciona q1, luego se arrastra el mouse a q2 y se escribe el valor y.
Finalmente colocando la ltima parte de la expresin se tiene z* esto quiere decir que se
establecer una transicin de q2 a q2, debido a que z posee una cerradura de Kleene y esto quiere
decir que podrn existir 0 ms zs. Se hace clic en la herramienta , y se selecciona q2, luego se
escribe el valor z.
xy
xyzz
xyzz
xxyzzz
zxxxyzzzz
yz
- xyyz
- xyyyz
LENGUAJES Y AUTMATAS I
1
0
Las cadenas se ingresaran en la tabla, en la primera columna Input. Una vez ingresadas las
cadenas se oprimir el botn Run Inputs.
Las cadenas aceptadas por la expresin dada muestran en la columna Result un mensaje
Accept y las que fueron rechazadas muestran en la misma columna la palabra Reject.
Analizando la tabla, se puede observar que por ejemplo la cadena xy fue aceptada por el AFD
debido que el elemento z de la expresin posea una cerradura de Kleene, por tanto pueden existir
0 o ms zs en las cadenas. Por otro lado la cadena yz fue rechaza porque el elemento x de la
expresin llevaba consigo una cerradura positiva, esto quiere decir que debe existir una o ms x.
2
ab+cd+
Paso #2. Definir el estado inicial y estado final. Se definir a q0 como estado inicial y a q4 como
estado final.
LENGUAJES Y AUTMATAS I
1
1
De q0 a q1 asignando el valor a.
De q1 a q2 se asigna el valor b.
De q2 a q3 se asigna el valor c.
De q3 a q4 se asigna el valor d.
Paso #4. Probar el autmata finito determinista. Se probaran las siguientes cadenas:
-
Abcd
Abbcdd
Abbbcddd
Abbcddd
Abbbcdd
Acd
Ac
Ad
LENGUAJES Y AUTMATAS I
1
2
Resultados:
Analizando los resultados se puede observar que la cadena abcd fue aceptada por el AFD debido a
que cumple con las cerraduras positivas al tener en la cadena 1 o ms c y d, mientras que la
cadena acd fue rechazada debido a que b contiene una cerradura positiva y deben existir 1 o ms
cs en la cadena.
3
(ab) +b
Paso #2. Definir el estado inicial y estado final. Se definir a q0 como estado inicial y a q3 como
estado final.
De q0 a q1 asignando el valor a.
LENGUAJES Y AUTMATAS I
1
3
Paso #4. Probar el autmata finito determinista. Se probaran las siguientes cadenas:
-
ababb
abababb
ababababb
abababababb
abb
aab
ab
Resultados:
Analizando los resultados se puede observar que la cadena abb fue aceptada por el AFD debido a
que cumple con las cerraduras positivas al tener en la cadena ms de un par de ab seguido de una
b, mientras que la cadena aab fue rechazada debido a que el conjunto ab posee una cerradura
positiva y este conjunto no estaba incluido en la cadena.
LENGUAJES Y AUTMATAS I
1
4
Conclusin:
La herramienta JFlap es muy til en el uso prctico de la materia Lenguajes y Autmatas, en esta
se pueden disear los AFD deseados. Adems en esta se incluyen herramientas muy tiles para
crear los AFD como la herramienta creadora de estados y transiciones; esta tambin permite
revisar el AFD ingresando cadenas en este y asi comprobar si el AFD cumple con la expectativa del
usuario, enva un mensaje de aceptado o rechazado de la cadena ingresada, asi el usuario sabr si
tuvo un error o no.
Bibliografa:
https://www.cs.duke.edu/csed/jflap/tutorial/fa/createfa/fa.html
http://es.slideshare.net/pavillalta/mini-manual-de-jflap
http://es.wikipedia.org/wiki/Aut%C3%B3mata_finito_determinista
LENGUAJES Y AUTMATAS I
1
5