visitedNodes = visitedNodes + 1 current = getShortest(openNodes) if current.data == goal: print("*** {avaliados} estados avaliados".format(avaliados=visitedNodes)) Busca_Largura.imprimir_caminho(Busca_Largura.determinar_caminho(current)) planning = Busca_Largura.gerar_planejamento(current) return planning neighbors_data = Busca_Largura.transicoes_possiveis(current.data) for neighbor_data in neighbors_data: new_cost = cost_so_far[repr(current.data)] + 1 if repr(neighbor_data) not in cost_so_far or new_cost < cost_so_far[repr(neighbor_data)]: cost_so_far[repr(neighbor_data)] = new_cost heuristic_cost = cost_so_far[repr(current.data)] + heuristic(goal, neighbor_data) openNodes.append([Node(neighbor_data, current), heuristic_cost]) raise Exception('O estado {destino} não é alcançável a partir de {origem}'.format(origem=start, destino=goal)) #def execute(): print("Origem: {origem}".format(origem=estadoInicial)) print("Destino: {destino}".format(destino=estadoFinal)) print("") planejamento = A_Star_search(estadoInicial, estadoFinal) robotControl = RobotControl() robotControl.execute_commands(planejamento)
final_position, population_size=20, mutation_probability=0.01, map_size=10, with_elitism=True) for i in range(maximum_generations): next_generation = genetic.generateNextGeneration() # print(genetic.best_score) # print(genetic.best_chromosome) print("Melhor cromossomo: {best_chromosome}".format( best_chromosome=genetic.best_chromosome)) print("Avaliação: {best_score}".format(best_score=genetic.best_score)) print() print("Primeira parte do caminho:") first_path_segment = Busca_Largura.search(initial_position, genetic.best_chromosome) print("Parte final do caminho:") final_path_segment = Busca_Largura.search(genetic.best_chromosome, final_position) full_path = first_path_segment + final_path_segment print("Caminho encontrado ({size} passos):".format(size=len(full_path))) print(full_path) RobotControl.execute_commands(full_path)