Sei sulla pagina 1di 11

TECNOLÓGICO NACIONAL DE MÉXICO

INSTITUTO TECNOLÓGICO DE CERRO AZUL

ASIGNATURA: LENGUAJES Y AUTÓMATAS

ALUMNO: JESUS ALBERTO ROSAS COBOS


No. DE CONTROL:21500285

DOCENTE: GARIZURIETA CASTILLO


OSCAR ALBERTO

CARRERA:
INGENIERÍA EN SISTEMAS COMPUTACIONALES
(QUINTO SEMESTRE)

1
Índice

Ejercicios de clase................................................................................................................................ 3
Programa en java: Implementación de un autómata finito en java ............................................... 3
Diagrama en Jflap ............................................................................................................................ 5
Ejercicios de introducción a Jflap .................................................................................................... 8
Bibliografía ........................................................................................................................................ 11

2
Ejercicios de clase
Programa en java: Implementación de un autómata finito en java

3
Ejecución:

4
Diagrama en Jflap
Construir un autómata que reconozca cadenas que contienen un número par de
caracteres 'a' seguidos de un único carácter 'b'.
Para poder convertir un autómata ya sea Autómata Finito Determinista, o Autómata
Finito No Determinista, se toma en cuenta tener la expresión regular, en este caso
tenemos la expresión regular del ejercicio, la cual se muestra a continuación:
(aa)*(b)
Para que agreguemos la expresión regular, tenemos que ingresar a JFLAP, y dar
clic donde dice Regular Expresion, y allí ingresamos la expresión regular, como se
muestra en la siguiente imagen:

5
Expresión regular convertida a NFA:

Expresión regular convertida DFA:

6
Resultado:
Como resultado encontramos que los valores que ingresamos en las 3 primeras
cadenas son denegados y las ultimas 2 son aceptadas, ya que la expresión regular
(aa)*(b) se usa para buscar patrones específicos en una cadena y aceptara las
cadenas que cumplan con el patrón descrito.

7
Ejercicios de introducción a Jflap
Ejemplo: autómata que reconozca toda cadena que tenga un número impar de 1, la cadena estará
formada por elementos 0 o 1 y el autómata aceptara la cadena siempre que tenga un número impar
de 1

1. Como paso numero 1 abrimos Jflap y en su menú seleccionamos (Autómata finito)

2. Tendrá un primer estado en donde reconocerá dicha cadena

3. Se reconoce al estado como un estado inicial

8
4. Se crea un nuevo estado

5. Se crea una transición del estado inicial a q1 (se está leyendo un 1, cantidad que es impar)

6. q1 se establece como un estado final y de aceptación

9
7. Si se lee otro 1 se volvería a tener otro número par de 1 por lo cual no se puede aceptar esa
cadena. Por lo tanto, se crea otra transición hacia el estado inicial que es de no aceptación,
con esto se crea un ciclo en donde cuando se lee un 1 es decir el primer 1 se pasa a estado
final, luego el segundo 1 hace la cantidad par y se pasa a estado no final

8. Posteriormente se gestiona la lectura de los 0, como los 0 no afectan el análisis de la cadena


se creará una transición del estado q0 al estado q0 y del estado q1 al estado q1, de esta
manera siempre que lea de la entrada un 0 no se vera afectado el estado ni la cantidad de
1 que se han contado

9. Se prueba el autómata para ver si acepta para ver que las cadenas que se han ingresado,
en donde en el menú superior de Jflap seleccionaremos (input--→múltiple Run)

10
10. Se ingresa la cadena a validar

11. Se comprueba que el autómata funciona

BIBLIOGRAFÍA

1. https://youtu.be/hGpCYzN7hlA

11

Potrebbero piacerti anche