This repository has been archived by the owner on Mar 30, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
demo.py
92 lines (84 loc) · 2.65 KB
/
demo.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#!/usr/bin/env python3
# Authors: Manuel Martín Malagón
# Eduardo Marqués De La Fuente
# José Carlos Gago Hernández
# Created: 2019/03/11
# Last update: 2019/03/12
from af import AF
from main import banner
def primer_AF():
return AF(
estados={'q0', 'q1', 'q2', 'q3', 'q4'},
alfabeto={'a', 'b', 'c'},
transiciones={
'q0': {
'a': {'q2'},
'b': {'q1', 'q2'}
},
'q1': {
'a': {'q1'},
'b': {'q1'},
'c': {'q1', 'q2'}
},
'q2': {
'a': {'q3'},
'b': {'q2', 'q3'},
},
'q3': {
'a': {'q4'},
'b': {'q2'},
},
'q4': {
'c': {'q2'}
}
},
estado_inicial='q0',
estados_finales={'q4'}
)
def segundo_AF():
return AF(
estados={'S', 'A', 'B', 'C', 'D', 'E', 'F'},
alfabeto={'a', 'b', 'c'},
transiciones={
'S': {
'a': {'A', 'D', 'F'},
'b': {'C', 'D', 'F'},
},
'A': {},
'B': {
'b': {'A', 'B', 'F'},
},
'C': {},
'D': {
'a': {'C'},
'c': {'E'}
},
'E': {
'b': {'F'},
},
'F': {}
},
estado_inicial='S',
estados_finales={'F'}
)
def convertir_y_mostrar_automata(automata):
# Mostramos la creación del autómata finito
print("\nANTES:")
automata.imprimir()
# Realizamos lo que pide el enunciado y mostramos lo que sucede con el autómata
automata.convertir_a_17th_automaton()
print("\n\nDESPUÉS:")
automata.imprimir()
if __name__ == "__main__":
banner()
# Creamos los dos autómatas finitos de ejemplo
primer_AF = primer_AF()
segundo_AF = segundo_AF()
# Mostramos la creación del primer autómata finito
print("\n\n\n---------------------------------------------PRIMER AF----------------------------------------------")
convertir_y_mostrar_automata(primer_AF)
print("\n----------------------------------------------------------------------------------------------------")
# Mostramos la creación del segundo autómata finito
print("\n\n---------------------------------------------SEGUNDO AF---------------------------------------------")
convertir_y_mostrar_automata(segundo_AF)
print("\n----------------------------------------------------------------------------------------------------")