def main(): num = -1 while (num < 0): print("-------------------------------------------------") num = int(input("Digite o numero de rainhas: ")) print("-------------------------------------------------") if num < 0: print("Digite um numero valido de rainhas\n") metodo = -1 while not (metodo == 1 or metodo == 2): print("-------------------------------------------------") print("Digite qual o metodo de busca: ") print(" 1.BFS (Busca em profundidade)") print(" 2.DFS (Busca em largura)") print("OBS: 1 para Busca em profundidade ou 2 para Busca em largura") metodo = int(input()) print("-------------------------------------------------") if not (metodo == 1 or metodo == 2): print("Digite um numero valido ou 1 ou 2\n") teste = cria_tabuleiro(num) # lista de operadores do problema operadores = [gera] if metodo == 2: #Problemas: # Busca em largura # intanciando o problema problema = ia.Problema(teste, operadores, teste_meta, num) ini = time.time() # Realizando a busca em profundidade resultado = ia.busca(problema, ia.enfileira_fifo) fim = time.time() print("-------------------------------------------------") print("\nBusca em Largura") print("Estado Inicial:", teste) print("Saida Busca em Largura: ", resultado) print("Tempo: ", fim - ini) print("Numero de comparacoes: ", problema.comparacoes) print("-------------------------------------------------") if metodo == 1: #Problemas: # Busca em profundidade # intanciando o problema problema1 = ia.Problema(teste, operadores, teste_meta, num) ini1 = time.time() # Realizando a busca em profundidade resultado1 = ia.busca(problema1, ia.enfileira_lifo) fim1 = time.time() print("-------------------------------------------------") print("Busca em Profundidade") print("Estado Inicial:", teste) print("Saida Busca em profundidade: ", resultado1) print("Tempo: ", fim1 - ini1) print("Numero de comparacoes: ", problema1.comparacoes) print("-------------------------------------------------") return 0
def main(): num_func = 10 num_turnos = 21 metodo = -1 gerador = -1 while not (1 <= metodo <= 2): print("-------------------------------------------------") print("Digite qual o metodo de busca: ") print(" 1. (Tempera simulada or Simulated Annealing)") print(" 2. (Algoritmo Genetico)") metodo = int(input()) if not (metodo == 1 or metodo == 2): print("Digite um numero valido ou 1 ou 2\n") # lista de operadores do problema operadores = [gera] # Verificando o metodo pra realizar as buscas if metodo == 1: # Instancia do problema teste = "" while not (1 <= gerador <= 3): print("Digite que tipo de estado a busca deve começar: ") print(" 1. (Exemplo de estado objetivo") print(" 2. (Estado aleatório com 50 bits 1)") print(" 3. (Estado aleatório)") gerador = int(input()) if (gerador == 1): teste = exemplo_objetivo() if (gerador == 2): teste = gerar_estado_50bits(num_func, num_turnos) if (gerador == 3): teste = gerar_estado_aleatorio(num_func, num_turnos) if not (gerador == 1 or gerador == 2 or gerador == 3): print("Digite um numero valido ou 1, 2 ou 3\n") print("Digite o valor da temperatura inicial: ") temperatura = int(input()) problema = ia.ProblemaBuscaSimulatedAnnealing(teste, operadores, num_func, num_turnos, melhor_avaliado, avaliar_estado, temperatura) ini = time.time() resultado = ia.busca(problema) fim = time.time() print("Tempera simulada Finalizada") print("\nEstado Inicial:") ia.imprime_estado(problema, teste) print("\nSaida Busca Tempera simulada: ") ia.imprime_estado(problema, resultado) print("\nTempo: ", fim - ini) print("Numero de comparações: ", problema.comparacoes) if (metodo == 2): problema = ia.ProblemaBusca("", operadores, num_func, num_turnos, melhor_avaliado, avaliar_estado) print("Digite o tamanho da populacao:") populacao = int(input()) print("Digite o numero de gerações:") num_geracoes = int(input()) print("Digite a taxa de mutacao: Exemplo : 0.1, ou 0.2 ") mutacao = float(input()) print("Digite a taxa de elistimo: Exemplo : 0.1, ou 0.2 ") elitismo = float(input()) instanceAlgGenetico = ia.InstanceAlgoritmoGenetico( populacao, num_geracoes, mutacao, elitismo) ini = time.time() resultado = ia.algoritmoGenetico(instanceAlgGenetico, problema) fim = time.time() print("Algotitmo Genetico Finalizado") print("Melhor individuo encontrado: ") print(resultado) ia.imprimeCromossomo(problema, resultado.estado) print("\nTempo: ", fim - ini) return 0
def main(): num_func = 10 num_turnos = 21 metodo = -1 gerador = -1 while not (1 <= metodo <= 3): print("-------------------------------------------------") print("Digite qual o metodo de busca: ") print(" 1. (Subida da encosta") print(" 2. (Subida da encosta pelo maior aclive)") print(" 3. (Busca melhor primeiro)") metodo = int(input()) if not (metodo == 1 or metodo == 2 or metodo == 3): print("Digite um numero valido ou 1, 2 ou 3\n") while not (1 <= gerador <= 3): print("Digite que tipo de estado a busca deve começar: ") print(" 1. (Exemplo de estado objetivo") print(" 2. (Estado aleatório com 50 bits 1)") print(" 3. (Estado aleatório)") gerador = int(input()) if (gerador == 1): teste = exemplo_objetivo() if (gerador == 2): teste = gerar_estado_50bits(num_func, num_turnos) if (gerador == 3): teste = gerar_estado_aleatorio(num_func, num_turnos) if not (gerador == 1 or gerador == 2 or gerador == 3): print("Digite um numero valido ou 1, 2 ou 3\n") print("-------------------------------------------------") # lista de operadores do problema operadores = [gera] # Instancia do problema problema = ia.ProblemaBusca(teste, operadores, num_func, num_turnos, melhor_avaliado, avaliar_estado, metodo) # Verificando o metodo pra realizar as buscas if metodo == 1 or metodo == 2: ini = time.time() resultado = ia.busca(problema) fim = time.time() if (metodo == 1): print("-----------------------------------------------------") print("Busca Subida da encosta Finalizada") print("Estado Inicial:") ia.imprime_estado(problema, teste) print("\nSaida Busca Subida da encosta: ") ia.imprime_estado(problema, resultado) print("\nTempo: ", fim - ini) print("Numero de comparacoes: ", problema.comparacoes) print("-----------------------------------------------------") if (metodo == 2): print("-----------------------------------------------------") print("Busca Subida da encosta pelo maior Aclive Finalizada") print("Estado Inicial:") ia.imprime_estado(problema, teste) print("\nSaida Busca Subida da encosta pelo maior aclive: ") ia.imprime_estado(problema, resultado) print("\nTempo: ", fim - ini) print("Numero de comparacoes: ", problema.comparacoes) print("-----------------------------------------------------") if metodo == 3: ini = time.time() resultado = ia.busca(problema) fim = time.time() print("-----------------------------------------------------") print("Busca Melhor Primeiro") print("Estado Inicial:") ia.imprime_estado(problema, teste) print("\nSaida Busca Melhor Primeiro: ") ia.imprime_estado(problema, resultado) print("\nTempo: ", fim - ini) print("Numero de comparacoes: ", problema.comparacoes) print("-----------------------------------------------------") return 0
def main(): # criando apagando o arquivo para salvar o novo log arquivo = open('log.txt', 'w') arquivo.close() # items = [4,1,3,2,6,8,7,5,0] # items do tabuleiro # items = [2,0,3,1,7,4,6,8,5] items = [1, 0, 3, 8, 6, 4, 7, 5, 2] # tabuleiro com a resposta #random.shuffle(items) # embaralhando os items do tabuleiro teste1 = cria_tabuleiro(items) # criando o tabuleiro operadores = [move_baixo, move_cima, move_direita, move_esquerda] # lista de operadores do problema # instanciando o problema #teste = embaralha(t,operadores) #teste1 = [[1,2,3],[4,0,6],[7,5,8]] #Problemas: """Sem heuristica:""" #largura (Busca em amplitude - cega) problema = ia.Problema(teste1, operadores, teste_meta, funcao_custo) ini = time.time() resultado = ia.busca(problema, enfileira_fifo) fim = time.time() #profundidade problema1 = ia.Problema(teste1, operadores, teste_meta, funcao_custo) ini1 = time.time() resultado1 = ia.busca(problema1, enfileira_lifo) fim1 = time.time() """Com heuristica""" #gulosa problema2 = ia.Problema(teste1, operadores, teste_meta, heuristica_desordenado) #A* desordenado problema3 = ia.Problema(teste1, operadores, teste_meta, heuristica_desordenado) #A* Manhattan problema4 = ia.Problema(teste1, operadores, teste_meta, heuristica_manhattan) ini4 = time.time() resultado4 = ia.buscaaestrela(problema4, enfileira_lifo) fim4 = time.time() # ini2 = time.time() # resultado2 = ia.buscagulosa(problema2, enfileira_lifo) # fim2 = time.time() # ini3 = time.time() # resultado3 = ia.buscaaestrela(problema3, enfileira_lifo) # fim3 = time.time() print("Busca em Largura") print("Estado Inicial:", teste1["pecas"]) print("Saida Busca em Largura: ", resultado) print("Tempo: ", fim - ini) print("Numero de comparacoes: ", problema.comparacoes) print("-------------------------------------------------") print("Busca em Profundidade") print("Estado Inicial:", teste1["pecas"]) print("Saida Busca em Largura: ", resultado1) print("Tempo: ", fim1 - ini1) print("Numero de comparacoes: ", problema1.comparacoes) print("-------------------------------------------------") # print ("Busca em Gulosa") # print ("Estado Inicial:",teste1["pecas"]) # print ("Saida Busca em Largura: ", resultado2) # print ("Tempo: ", fim2 - ini2) # print ("Numero de comparacoes: ", problema2.comparacoes) # print ("-------------------------------------------------") # print ("Busca A* numero de pessas fora do lugar") # print ("Estado Inicial:",teste1["pecas"]) # print ("Saida Busca em Largura: ", resultado3) # print ("Tempo: ", fim3 - ini3) # print ("Numero de comparacoes: ", problema3.comparacoes) # print ("-------------------------------------------------") print("Busca A* Distancia de Manhattan") print("Estado Inicial:", teste1["pecas"]) print("Saida Busca em Largura: ", resultado4) print("Tempo: ", fim4 - ini4) print("Numero de comparacoes: ", problema4.comparacoes) print("-------------------------------------------------") """Com heuristica:""" """ Numero de pecas fora de posicao """ """problema = ia.Problema(teste, operadores, teste_meta, heuristica_desordenado)""" """ Distancia de Manhattan """ """problema = ia.Problema(teste, operadores, teste_meta, heuristica_manhattan)""" """Buscas:""" """print "Saida Busca em Profundidade:", ia.busca(problema, enfileira_lifo)""" """print "Saida Busca Gulosa:", ia.buscagulosa(problema, enfileira_lifo)""" """print "Saida Busca A*:", ia.buscaaestrela(problema, enfileira_lifo)""" return 0
def main(): items = [4, 1, 3, 2, 6, 8, 7, 5, 0] # items do tabuleiro #random.shuffle(items) # embaralhando os items do tabuleiro teste1 = cria_tabuleiro(items) # criando o tabuleiro operadores = [move_baixo, move_cima, move_direita, move_esquerda] # lista de operadores do problema # instanciando o problema #teste = embaralha(t,operadores) #teste1 = [[1,2,3],[4,0,6],[7,5,8]] #Problemas: """Sem heuristica:""" #largura problema = ia.Problema(teste1, operadores, teste_meta, funcao_custo) #profundiade problema1 = ia.Problema(teste1, operadores, teste_meta, funcao_custo) #gulosa problema2 = ia.Problema(teste1, operadores, teste_meta, heuristica_desordenado) #A* desordenado problema3 = ia.Problema(teste1, operadores, teste_meta, heuristica_desordenado) #A* Manhattan problema4 = ia.Problema(teste1, operadores, teste_meta, heuristica_manhattan) ini = time.time() resultado = ia.busca(problema, enfileira_fifo) fim = time.time() ini1 = time.time() resultado1 = ia.busca(problema1, enfileira_lifo) fim1 = time.time() ini2 = time.time() resultado2 = ia.buscagulosa(problema2, enfileira_lifo) fim2 = time.time() ini3 = time.time() resultado3 = ia.buscaaestrela(problema3, enfileira_lifo) fim3 = time.time() ini4 = time.time() resultado4 = ia.buscaaestrela(problema4, enfileira_lifo) fim4 = time.time() print "Busca em Largura" print "Estado Inicial:", teste1["pecas"] print "Saida Busca em Largura: ", resultado print "Tempo: ", fim - ini print "Numero de comparacoes: ", problema.comparacoes print "-------------------------------------------------" print "Busca em Profundiade" print "Estado Inicial:", teste1["pecas"] print "Saida Busca em Largura: ", resultado1 print "Tempo: ", fim1 - ini1 print "Numero de comparacoes: ", problema1.comparacoes print "-------------------------------------------------" print "Busca em Gulosa" print "Estado Inicial:", teste1["pecas"] print "Saida Busca em Largura: ", resultado2 print "Tempo: ", fim2 - ini2 print "Numero de comparacoes: ", problema2.comparacoes print "-------------------------------------------------" print "Busca A* numero de pessas fora do lugar" print "Estado Inicial:", teste1["pecas"] print "Saida Busca em Largura: ", resultado3 print "Tempo: ", fim3 - ini3 print "Numero de comparacoes: ", problema3.comparacoes print "-------------------------------------------------" print "Busca A* Distancia de Manhattan" print "Estado Inicial:", teste1["pecas"] print "Saida Busca em Largura: ", resultado4 print "Tempo: ", fim4 - ini4 print "Numero de comparacoes: ", problema4.comparacoes print "-------------------------------------------------" """Com heuristica:""" """ Numero de pecas fora de posicao """ """problema = ia.Problema(teste, operadores, teste_meta, heuristica_desordenado)""" """ Distancia de Manhattan """ """problema = ia.Problema(teste, operadores, teste_meta, heuristica_manhattan)""" """Buscas:""" """print "Saida Busca em Profundidade:", ia.busca(problema, enfileira_lifo)""" """print "Saida Busca Gulosa:", ia.buscagulosa(problema, enfileira_lifo)""" """print "Saida Busca A*:", ia.buscaaestrela(problema, enfileira_lifo)""" return 0