Les dejo un código de un Autómata Finito Determinista (ADF) programado de manera sencilla en Python. Espero que les sirva para realizar alguna tarea.
#Alfabeto aceptado
A = ['a','b']
#Bandera por si la entrada no pertenece
#al alfabeto de entrada
bandera = True
#Tabla de transición
TablaT = [[0,'a',1],[1,'a',1],[1,'b',2]]
#Tabla de estados de la comparación
TablaC = []
#Estados finales
EF = [1]
#Estado inicial
E = 0
#Estado Actual
EA = E
#Cadena de entrada
CE = "aaaaa"
#Recorremos la Cadena de entrada
for c in CE:
print(c)
#Verificamos que sea del alfabeto aceptado
if c in A:
print("Esta en el alfabeto")
#Buscamos en la tablaT
for f in TablaT:
#Recorrido de las producciones
#Buscamos el estado actual y el caracter de entrada
if c in f and EA in f:
#Agregamos a la tabla final
TablaC.append([EA,c,f[2]])
#print(f[2])
#Actualizamos el estado actual
EA = f[2]
print("Estado Actual: "+str(EA))
else:
print("Cadena no pertenece al alfabeto")
bandera = False
#Comparamos el estado final
#Para saber si es terminal y se acepta
#o no la cadena de entrada.
if EA in EF and bandera == True:
print("---------------------------------\n")
print("Se acepta la cadena de entrada!!!\n")
print("-----Tabla de transiciones-------\n")
for t in TablaC:
print(t)
else:
print("No se acepta la cadena de entrada!!!\n")
print("-----Tabla de transiciones-------\n")
for t in TablaC:
print(t)
P.O.O, Estructura de Datos, Tópicos Selectos de Programación, Fundamentos de Programación, Teoría de la Computación, Matemáticas para Computadoras, Fundamentos de Desarrollo de Sistemas, Programación Web, Graficación.
Mostrando entradas con la etiqueta Lenguajes y Autómatas. Mostrar todas las entradas
Mostrando entradas con la etiqueta Lenguajes y Autómatas. Mostrar todas las entradas
martes, 26 de marzo de 2019
Autómata Finito Determinista con Python.
Etiquetas:
2019,
ADF,
Autómata,
Determinista,
Durango,
Finito,
Gómez Palacio,
Lenguajes y Autómatas,
Lerdo Dgo.,
Python,
Teoría de la Computación
Suscribirse a:
Entradas (Atom)