Esempio n. 1
0
	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
Esempio n. 2
0
	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
Esempio n. 3
0
	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
Esempio n. 4
0
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}`'
)
Esempio n. 5
0
'''
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()
Esempio n. 6
0
'''
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}`:"
Esempio n. 7
0
'''
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()
Esempio n. 8
0
'''
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()
Esempio n. 9
0
'''
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:')
Esempio n. 11
0
'''
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()
Esempio n. 13
0
# -*- 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)
 
Esempio n. 14
0
'''
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()
Esempio n. 15
0
	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
Esempio n. 16
0
            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}`'