def buscaCega(self , arquivo = "eil101.tsp"): l = Leitor(arquivo) grafo = l.lerMatriz() iniciorandom.randint(0, len(grafo)) solucao = [] visitados, pilha = set(), [inicio] while pilha: vertice = pilha.pop() if vertice not in visitados: #solucao.append(vertice) visitados.add(vertice) pilha.extend(set(grafo[vertice].keys()) - visitados) #print "visitados= " + str (visitados) + "\n\n grafo: "+ str (pilha) print "solucao " + str (solucao) +" valor " + str (self.calculaValorSolucao(solucao)) print "\n-------------------------------\n" return visitados
def algoritmo(self, populacaoInicial = 50, geracoes = 100, arquivo = "eil101.tsp"): l = Leitor(arquivo) self.d = l.lerMatriz() populacao = self.gerarPopulacao(populacaoInicial, len(self.d)) populacao_anterior = copy.copy(populacao) for g in range(geracoes): populacao.sort() selecionados = selecionar_cruzamento(populacao) self.cruzamento(selecionados, populacao) selecionados = selecionar_mutacao(populacao) for sel in selecionados: sel.multar() populacao.sort() populacao_anterior = copy.copy(populacao) populacao = [] for i in range(populacaoInicial): populacao.append(populacao_anterior[i]) print populacao[0].cidades print populacao[0].custo
def guloso(self, arquivo = "eil101.tsp", ini = 0): custo_solucao = 0 s = [] l = Leitor (arquivo) d = l.lerMatriz() qt_vertice = len(d) alelos = range(qt_vertice) #s.append( alelos[random.randint(0, qt_vertice)] ) s.append(ini) alelos.remove(s[0]) for i in range (1, qt_vertice): ant = s[i-1] menor_custo = sys.maxint melhor_alelo = -1 for al in alelos: custo_al = d[ant][al] if custo_al < menor_custo: menor_custo = custo_al melhor_alelo = al if melhor_alelo == -1: break else: alelos.remove(melhor_alelo) s.append(melhor_alelo) custo_solucao = menor_custo + custo_solucao custo_solucao = custo_solucao + d[ s[len(s)-1] ][ s[0] ] print "" print s print custo_solucao return custo_solucao
from Leitor import Leitor from src.operacoes_reconhecimento_ap import criar_tabela_de_analise leitor = Leitor('../Testes/Analise_Sintatica/GLC1.txt') glc1 = leitor.ler_arquivo() print( f'\n\n====> Reconhecimento de sentença para a GLC abaixo, lido do arquivo `{leitor.arquivo}`' ) glc1.display() print('\n====> Saídas:') print(f'Sentença: idvid^id\nResultado: {glc1.reconhecer("idvid^id")}') print(f'Sentença: idvid\nResultado: {glc1.reconhecer("idvid")}') print(f'Sentença: idvid^\nResultado: {glc1.reconhecer("idvid^")}') print(f'Sentença: !id^idvid\nResultado: {glc1.reconhecer("!id^idvid")}') leitor.arquivo = '../Testes/Analise_Sintatica/GLC2.txt' glc2 = leitor.ler_arquivo() print( f'\n\n====> Reconhecimento de sentença para a GLC abaixo, lido do arquivo `{leitor.arquivo}`' ) glc2.display() print('\n====> Saídas:') print(f'Sentença: abdc\nResultado: {glc2.reconhecer("abdc")}') leitor.arquivo = '../Testes/Analise_Sintatica/GLC3.txt' glc3 = leitor.ler_arquivo() print( f'\n\n====> Reconhecimento de sentença para a GLC abaixo, lido do arquivo `{leitor.arquivo}`' )
''' Testa remoção de recursão a esquerda de gramáticas ''' from structures import GLC from Leitor import Leitor from src.operacoes_glc import remover_recursao_esquerda_direta, remover_recursao_esquerda_indireta input_file = '../Testes/Recursao_Esquerda/teste1rec_direta.txt' glc = Leitor(input_file).ler_arquivo() print( f'\n\n===> Removendo recursão direta da GLC abaixo, lida de `{input_file}`:' ) glc.display() glc = remover_recursao_esquerda_direta(glc) print('\n===> Saída::') glc.display() input_file = '../Testes/Recursao_Esquerda/teste1rec_indireta.txt' glc = Leitor(input_file).ler_arquivo() print( f'\n\n===> Removendo recursão indireta da GLC abaixo, lida de `{input_file}`:' ) glc.display() glc = remover_recursao_esquerda_indireta(glc) print('\n===> Saída::') glc.display()
''' Teste algoritmo de minimizaçãod e autômatos finitos ''' from Leitor import Leitor from src.operacoes_automatos_gr import minimizar leitor = Leitor('../Testes/Minimizacao/teste1minimizacao.txt') af1 = leitor.ler_arquivo() print( f"\n\n====> Minimização para o AF abaixo, lido do arquivo `{leitor.arquivo}`:" ) af1.display() minimizar(af1) print('\n====> Saída:') af1.display() leitor.arquivo = '../Testes/Minimizacao/teste2minimizacao.txt' af2 = leitor.ler_arquivo() print( f"\n\n====> Minimização para o AF abaixo, lido do arquivo `{leitor.arquivo}`:" ) af2.display() minimizar(af2) print('\n====> Saída:') af2.display() leitor.arquivo = '../Testes/Minimizacao/teste3minimizacao.txt' af3 = leitor.ler_arquivo() print( f"\n\n====> Minimização para o AF abaixo, lido do arquivo `{leitor.arquivo}`:"
''' Este arquivo demonstra o método de determinização implementado nos autômatos finitos. ''' from Leitor import Leitor leitor = Leitor('../Testes/Determinizacao/teste1determinizacao.txt') automato1 = leitor.ler_arquivo() print( f'\n\n====> Teste de determinização para o AF abaixo, lido do arquivo `{leitor.arquivo}`' ) automato1.determinizar() print('\n====> Saída:') automato1.display() leitor.arquivo = '../Testes/Determinizacao/teste2determinizacao.txt' automato2 = leitor.ler_arquivo() print( f'\n\n====> Teste de determinização para o AF abaixo, lido do arquivo `{leitor.arquivo}`' ) automato2.determinizar() print('\n====> Saída:') automato2.display() leitor.arquivo = '../Testes/Determinizacao/teste3determinizacao.txt' automato3 = leitor.ler_arquivo() print( f'\n\n====> Teste de determinização para o AF abaixo, lido do arquivo `{leitor.arquivo}`' ) automato3.determinizar()
''' Testa transformação de GLC para a sua forma normal de Chomsky ''' from Leitor import Leitor from src.operacoes import transformar_em_fnc input_file = '../Testes/Producoes_Vazias/teste1fnc.txt' leitor = Leitor(input_file) glc1 = leitor.ler_arquivo() print(f'\n\n====> Transformação em FNC para a GLC abaixo, lida do arquivo `{leitor.arquivo}`') glc1.display() transformar_em_fnc(glc1) print('\n====> Saída:') glc1.display() input_file = '../Testes/Producoes_Vazias/teste2fnc.txt' leitor.arquivo = input_file glc2 = leitor.ler_arquivo() print(f'\n\n====> Transformação em FNC para a GLC abaixo, lida do arquivo `{leitor.arquivo}`') glc2.display() transformar_em_fnc(glc2) print('\n====> Saída:') glc2.display()
''' Testa reconhecimento de sentenças em autômatos finitos ''' from Leitor import Leitor leitor = Leitor('../Testes/Reconhecimento_Sentenca/teste1reconhecimento_sentenca.txt') automato1 = leitor.ler_arquivo() print(f'\n\n====> Reconhecimento de sentença para o AF abaixo, lido do arquivo `{leitor.arquivo}`') automato1.display() print('\n====> Saídas:') print(f'Sentença: aacbb\nResultado: {automato1.reconhecer("aacbb")}') print(f'\nSentença: aacbb\nResultado: {automato1.reconhecer("")}') print(f'\nSentença: aacbb\nResultado: {automato1.reconhecer("aacbbb")}') # L1 = {#a + #c % 3 == 0 & #b % 2 == 0} assert (automato1.reconhecer('aacbb') == True) assert (automato1.reconhecer('') == True) assert (automato1.reconhecer('aacbbb') == False) leitor.arquivo = '../Testes/Reconhecimento_Sentenca/teste2reconhecimento_sentenca.txt' automato2 = leitor.ler_arquivo() print(f'\n\n====> Reconhecimento de sentença para o AF abaixo, lido do arquivo `{leitor.arquivo}`') automato2.display() print('\n====> Saídas:') print(f'Sentença: bab\nResultado: {automato2.reconhecer("bab")}') print(f'\nSentença: bab\nResultado: {automato2.reconhecer("")}') print(f'\nSentença: bab\nResultado: {automato2.reconhecer("bb")}') # L2 = {|w| impar & sem b's consecutivos} assert (automato2.reconhecer('bab') == True)
''' Este arquivo testa a fatoração de gramáticas livre de contexto a partir de três exemplos ''' from Leitor import Leitor from src.operacoes_glc import fatorar leitor = Leitor('../Testes/Fatoracao/teste1fatoracao.txt') glc1 = leitor.ler_arquivo() print(f"\n\n====> Fatoração para a GLC abaixo, lida do arquivo `{leitor.arquivo}`:") glc1.display() fatorar(glc1) print('\n====> Saída:') glc1.display() leitor.arquivo = '../Testes/Fatoracao/teste2fatoracao.txt' glc2 = leitor.ler_arquivo() print(f"\n\n====> Fatoração para a GLC abaixo, lida do arquivo `{leitor.arquivo}`:") glc2.display() fatorar(glc2) print('\n====> Saída:') glc2.display() leitor.arquivo = '../Testes/Fatoracao/teste3fatoracao.txt' glc3 = leitor.ler_arquivo() print(f"\n\n====> Fatoração para a GLC abaixo, lida do arquivo `{leitor.arquivo}`:") glc3.display() fatorar(glc3) print('\n====> Saída:')
''' Testa remoção de produções vazias e unitárias de gramáticas ''' from Leitor import Leitor from src.operacoes_glc import remover_producoes_por_epsilon, remover_producoes_unitarias leitor = Leitor('../Testes/Producoes_Vazias/teste1fnc.txt') glc1 = leitor.ler_arquivo() print( f'\n\nTestando remoção de produções vazias e unitárias para a GLC abaixo, lida do arquivo `{leitor.arquivo}`' ) glc1.display() remover_producoes_por_epsilon(glc1) remover_producoes_unitarias(glc1) print('\n====> Saída:') glc1.display() leitor.arquivo = '../Testes/Producoes_Vazias/teste2fnc.txt' glc2 = leitor.ler_arquivo() print( f'\n\nTestando remoção de produções vazias e unitárias para a GLC abaixo, lida do arquivo `{leitor.arquivo}`' ) glc2.display() remover_producoes_por_epsilon(glc2) remover_producoes_unitarias(glc2) print('\n====> Saída:') glc2.display() leitor.arquivo = '../Testes/Producoes_Vazias/teste3fnc.txt'
from Leitor import Leitor from src.operacoes_automatos_gr import uniao, intersecao leitor = Leitor('../Testes/Uniao_Intersecao/R1.txt') r1 = leitor.ler_arquivo() print("========================================= UNIÃO E INTERSEÇÃO =========================================") print("====> ENTRADAS:") r1.display() leitor.arquivo = '../Testes/Uniao_Intersecao/S1.txt' s1 = leitor.ler_arquivo() s1.display() r1_uniao_s1 = uniao(r1,s1) r1_inter_s1 = intersecao(r1,s1) print("====> UNIÃO:") r1_uniao_s1.display() print("====> INTESEÇÃO:") r1_inter_s1.display() print("========================================= UNIÃO E INTERSEÇÃO =========================================") print("====> ENTRADAS:") leitor.arquivo = '../Testes/Uniao_Intersecao/R2.txt' r2 = leitor.ler_arquivo() r2.display()
# -*- coding: utf-8 -*- from Leitor import Leitor from AlgGenetico import AlgGenetico l = Leitor ("teste.txt") x = l.lerMatriz() #print (l.algoritmoBuscaProfundidadeRecursivo(x, "1")) #l.DSF(x, "1") #l.func("1", x) alg = AlgGenetico (x)
''' Este teste demonstra a conversão de expressões regulares para autômatos finitos, a partir de três exemplos ''' from Leitor import Leitor from src.operacoes_automatos_gr import er_para_afd leitor = Leitor('../Testes/ER_AFD/teste1er_para_afd.txt') er1 = leitor.ler_arquivo() print(f'\n\n====> Testando conversão de ER para AF com a ER abaixo, lida do arquivo `{leitor.arquivo}`') er1.display() af1 = er_para_afd(er1) print('\n====> Saída:') af1.display() leitor.arquivo = '../Testes/ER_AFD/teste2er_para_afd.txt' er2 = leitor.ler_arquivo() print(f'\n\n====> Testando conversão de ER para AF com a ER abaixo, lida do arquivo `{leitor.arquivo}`') er2.display() af2 = er_para_afd(er2) print('\n====> Saída:') af2.display() leitor.arquivo = '../Testes/ER_AFD/teste1er_para_afd.txt' er3 = leitor.ler_arquivo() print(f'\n\n====> Testando conversão de ER para AF com a ER abaixo, lida do arquivo `{leitor.arquivo}`') er3.display()
def Diksjtra(self, arquivo= "eil101.tsp", ini = 0): custo_solucao = 0 s = [] l = Leitor (arquivo) d = l.lerMatriz() qt_vertice = len(d) alelos = range(qt_vertice) pai = [] distancia = [] for i in range(qt_vertice): pai.append(-1) distancia.append(sys.maxint) #u = int(alelos[random.randint(0, qt_vertice)]) u = ini expandido = [] inicio = u ultimo = -1 pai[inicio] = 0 distancia[u] = 0 alelos.remove(u)# tira o inicio da solucao para nao dar ciclos antes de percorret todos while not u == -1: menor_alelo = -1 menor_custo = sys.maxint for al in alelos: if(distancia[al] > distancia[u] + d[u][al]): distancia[al] = distancia[u] + d[u][al] pai[al] = u expandido.append(u) #atualizou todas as distancias #agora vai procurar a menor distancia para expandir menor_alelo = -1 menor_custo = sys.maxint for possivel in alelos: if possivel in expandido: continue if(menor_alelo == -1): menor_alelo = al menor_custo = distancia[u] + d[u][al] continue elif (distancia[u] + d[u][al]) < menor_custo: menor_alelo = al menor_custo = (distancia[u] + d[u][al]) #ao fim desse for tem um novo vertice a ser visitado u = menor_alelo if not (u == -1): ultimo = menor_alelo alelos.remove(menor_alelo) print pai print distancia custo_solucao = distancia[ultimo] + d[ultimo][inicio] while ultimo != inicio: s.insert(0, ultimo) ultimo = pai[ultimo] s.insert(0, ultimo) self.completarSolucao(s, d, qt_vertice, pai, distancia) custo_solucao = 0 for i in range(len(s)-1): custo_solucao = custo_solucao + d[s[i]][s[i+1]] custo_solucao = custo_solucao + d[s[0]][s[-1]] print "" print s print custo_solucao return custo_solucao
sub_op = input("Qual Entidade deseja incluir: ") if sub_op == 1: nome = raw_input("Digite o nome do autor: ") cod = raw_input("De um codigo para ele: ") autor = Autor(cod, nome) novo_autor = IncluiCommand(sub_op, autor) novo_autor.execute(sub_op) if sub_op == 2: nome = raw_input("Digite o nome do leitor: ") cod = raw_input("De um codigo para ele: ") leitor = Leitor(cod, nome) novo_leitor = IncluiCommand(sub_op, leitor) novo_leitor.execute(sub_op) if sub_op == 3: titulo = raw_input("Digite o titulo do livro: ") cod = raw_input("De um codigo do livro: ") livro = Livro(cod, titulo) novo_livro = IncluiCommand(sub_op, livro) novo_livro.execute(sub_op) if sub_op == 4: codL = raw_input("Digite o codigo do livro: ")
''' Testa algoritmos de remoção de simbols improdutivos de gramáticas ''' from Leitor import Leitor from src.operacoes import remover_simbolos_improdutivos leitor = Leitor('../Testes/Inuteis/teste1simbolos_inuteis.txt') glc1 = leitor.ler_arquivo() print( f'\n\n====> Remoção de improdutivos da GLC abaixo, lida do arquivo`{leitor.arquivo}`' ) glc1.display() remover_simbolos_improdutivos(glc1) print('\n====> Saída:') glc1.display() leitor.arquivo = '../Testes/Inuteis/teste2simbolos_inuteis.txt' glc2 = leitor.ler_arquivo() print( f'\n\n====> Remoção de improdutivos da GLC abaixo, lida do arquivo`{leitor.arquivo}`' ) glc2.display() remover_simbolos_improdutivos(glc2) print('\n====> Saída:') glc2.display() leitor.arquivo = '../Testes/Inuteis/teste3simbolos_inuteis.txt' glc3 = leitor.ler_arquivo() print( f'\n\n====> Remoção de improdutivos da GLC abaixo, lida do arquivo`{leitor.arquivo}`'