Exemple #1
0
		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)