AFN A AFD

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 2

UNIVERSIDAD MARIANO GALVEZ

FACULTAD DE INGENIERIA
SISTEMAS DE INFORMACIÓN
AUTÓMATAS Y LENGUAJES FORMALES
ING. JUAN CARLOS MONTERROSO

PRIMER PROYECTO

DESCRIPCIÓN

El proyecto consiste en la elaboración de un programa en lenguaje C ó C++, el cual


leerá la definición de un autómata finito no determinista con transiciones épsilon, y partiendo de
está, se aplicará el algoritmo de conversión de AFN a AFD. Con el AFD generado, se deberá
poder validar cadenas las cuales serán ingresadas desde teclado, produciendo como salida su
reconocimiento o no.

DEFINICIÓN

El programa será alimentado por un archivo de entrada, el cual contendrá la definición


de un autómata finito no determinista con transiciones épsilon. Una vez cargada esta
información, el programa deberá generar un autómata finito determinista, tomando como base el
AFN anteriormente cargado. Al realizar la conversión al AFD, generar un archivo de salida con
la definición formal del AFD, este archivo deberá llamarse “AFD.TXT”. En este punto, el
programa entrará en modo de línea de comando, en esta modalidad, se podrá ingresar por
teclado cadenas de caracteres, las cuales deberán ser validadas contra el AFD previamente
calculado, generando un mensaje que indique que la cadena ha sido correctamente reconocida o
no. En este modo, es posible ingresar tantas cadenas de caracteres como el usuario quiera,
terminando la ejecución de este con la tecla ESC.

El símbolo $ representará la cadena vacía.

FORMATO DEL ARCHIVO DE ENTRADA

El archivo de entrada contendrá la definición de un AFN-є siguiendo el siguiente


formato:

S = { estado1, estado2, estado3, … , estadon }


S0 = { estado1 }
T = { estado1, estado2, estado3, … , estadon }
A = {simbolo1, simbolo2, simbolo3., … }
F (estado1, símbolo1) = {estado1, estado2, …}

FORMATO DEL ARCHIVO DE SALIDA

Se deberá generar en el mismo formato que el archivo de entrada. El estudiante será


libre de utilizar cualquier tipo de estructura que considere necesario y apropiado.
EJEMPLO

A continuación se muestra el archivo de entrada para la expresión regular (a|b)*abb.

S = {0,1,2,3,4,5,6,7,8,9,10}
S0 = {0}
T = {10}
A = {a,b}
F(0,$) = {1,7}
F(1,$) = {2,4}
F(2,a) = {3}
F(3,$) = {6}
F(4,b) = {5}
F(5,$) = {6}
F(6,$) = {1,7}
F(7,a) = {8}
F(8,b) = {9}
F(9,b) = {10}

También podría gustarte