Ejemplo n.º 1
0
def teste2():
    af2 = automato_finito.AutomatoFinito()

    af2.add_transicao('q0', 'a', 'q1')
    af2.add_transicao('q1', 'b', 'q2')
    af2.add_transicao('q2', 'b', 'q3')
    af2.add_transicao('q3', 'a', 'qf')
    af2.add_transicao('q3', 'a', 'q2')
    af2.add_transicao('qf', 'a', 'qf')

    af2.add_estados_finais('qf')
    af2.set_estado_inicial('q0')

    af3 = af2.to_afd()


    

    print('Automato teste2')
    print(af2.print())
    print('Automato Deterministico resultante de teste2: \n')
    print(af3.print())

    print('Automato testando \n')
    print(af2.print())
Ejemplo n.º 2
0
	def load_automatos(self):
		file_object = open("automatos.txt",'r')
		ret = []
		aut = af.AutomatoFinito()

		lines = file_object.readlines()

		for i in range(0, len(lines)):
			if (i%5 == 0):
				aut = af.AutomatoFinito(lines[i])
			if (i%5 == 1):
				aut.inicial = lines[i]
			if (i%5 == 2):
				aut.finais = lines[i]
			if (i%5 == 3):
				aut.estados = lines[i]
			if (i%5 == 4):
				aut.transicoes = lines[i]
				ret.append(aut)
		return ret
def teste3():
    af = automato_finito.AutomatoFinito()

    af.add_transicao('q0', 'a', 'q1')
    af.add_transicao('q1', 'a', 'q1')
    af.add_transicao('q1', 'b', 'q2')
    af.add_transicao('q2', 'b', 'qf')

    af.add_estados_finais('qf')
    af.set_estado_inicial('q0')

    print('Automato teste3')
    print(af.print())
    print('Automato teste3 transformado em gr: \n')
    print(af.to_gr().print())
def teste7():
    af2 = automato_finito.AutomatoFinito()

    af2.add_transicao('q0', 'a', 'q1')
    af2.add_transicao('q1', 'b', 'q2')
    af2.add_transicao('q2', 'b', 'q3')
    af2.add_transicao('q3', 'a', 'qf')
    af2.add_transicao('q3', 'a', 'q2')
    af2.add_transicao('qf', 'a', 'qf')

    af2.add_estados_finais('qf')
    af2.set_estado_inicial('q0')

    print('Automato teste7')
    print(af2.print())
    print(
        'Verifica se o automato reconhece uma palavra, retorna true caso reconheca: \n'
    )
    palavra = 'aaaba'
    af2.check(palavra)
Ejemplo n.º 5
0
 def to_afnd(self):
     af = automato_finito.AutomatoFinito()
     final = '_F_'
     af.estados = self.variaveis.union((final, ))
     af.inicial = self.inicial
     af.finais.add(final)
     for v in self.variaveis:
         for e in self.transicoes[v]:
             if e[0] == '&' and e[1] == '&':
                 af.finais.add(v)
             elif e[0] != '&' and e[1] == '&':
                 if (v, e[0]) in af.transicoes.keys():
                     af.transicoes[(v, e[0])].append(final)
                 else:
                     af.transicoes[(v, e[0])] = [final]
             else:
                 if (v, e[0]) in af.transicoes.keys():
                     af.transicoes[(v, e[0])].append(e[1])
                 else:
                     af.transicoes[(v, e[0])] = [e[1]]
     return af
Ejemplo n.º 6
0
def teste6():
    af2 = automato_finito.AutomatoFinito()

    af2.add_transicao('q0', 'a', 'q1')
    af2.add_transicao('q1', 'b', 'q2')
    af2.add_transicao('q2', 'b', 'q3')
    af2.add_transicao('q3', 'a', 'qf')
    af2.add_transicao('q3', 'a', 'q2')
    af2.add_transicao('qf', 'a', 'qf')

    af2.add_estados_finais('qf')
    af2.set_estado_inicial('q0')

    af3 = af2.minimizar()

    print('Automato teste6')
    print(af2.print())
    print('Automato minimo resultante de teste6: \n')
    print(af3.print())

    print('Automato Entrada \n')
    print(af2.print())