Puzzle.initialize_pdb(3) # heuristica basda en distancia manhattan heuristic = Puzzle.pdb_best # una heurística basada en pattern databases que debes implementar # inicialización de la heurística basada en PDBs print('%5s%10s%10s%10s%10s%10s' % ('#prob', '#exp', '#gen', '|sol|', 'tiempo', 'maxsubopt')) problems = [] load_problems(problems) total_time = 0 total_cost = 0 total_expansions = 0 #num_problems = len(problems) # cambiar si quieres ejecutar sobre todos los problemas num_problems = 10 # solo ejecutamos los primeros 10 problemas for prob in range(0, num_problems): init = problems[prob] s = Astar( init, heuristic, 2 ) # agregar un tercer parámetro una vez que lo hayas transformado en Weighted A* result = s.search() print('%5d%10d%10d%10d%10.2f%10.2f' % (prob + 1, s.expansions, len(s.generated), result.g, s.end_time - s.start_time, s.estimate_suboptimality())) total_time += s.end_time - s.start_time total_cost += result.g total_expansions += s.expansions if show_solutions: print(result.trace()) print('Tiempo total: %.2f' % (total_time)) print('Expansiones totales: %d' % (total_expansions)) print('Costo total: %d' % (total_cost))