def main(): bf_limit = 11 sizes = range(4, 19) t = PrettyTable(['Cities', 'Brute Force (s)', 'Held-Karp (s)', 'BF/HK']) bf_elapsed_prev = 0 for size in sizes: P = read_tsp_instance('test.tsp', size) D = create_distance_matrix(P) bf_elapsed = 0 if size < bf_limit: start_time = time() brute_force(D) bf_elapsed = (time() - start_time) bf_elapsed_str = format(bf_elapsed, '.5f') else: bf_elapsed = bf_elapsed_prev * size bf_elapsed_str = colored('{0:,.5f}'.format(bf_elapsed), 'yellow') bf_elapsed_prev = bf_elapsed start_time = time() held_karp(D) hc_elapsed = (time() - start_time) t.add_row([ size, bf_elapsed_str, '{0:,.5f}'.format(hc_elapsed), '{0:,.5f}'.format(bf_elapsed / hc_elapsed) ]) print(t)
def main(): global edges, edges2, edges3, edges4 if args.distances is None: generate_random_graph() else: parse_distances() bf_load_graph(graph) print("Using BruteForce algorithm") edges = brute_force() edges[0] = edges[0][:-1] hm_load_graph(graph) print("Using HeuristicMax algorithm") edges2 = heuristic("MAX") edges2[0] = edges2[0][:-1] hm_load_graph(graph) print("Using HeuristicMin algorithm") edges3 = heuristic("MIN") edges3[0] = edges3[0][:-1] hm_load_graph(graph) print("Using HeuristicRandom algorithm") edges4 = heuristic("RANDOM") edges4[0] = edges4[0][:-1] url = "http://0.0.0.0:8000" webbrowser.open_new_tab(url) app.run(port=8000, host="0.0.0.0")
def run_brute_force(filename): boards = read_boards(filename) stats = [] success = 0 max_states = -1 min_states = sys.maxint total_states = 0 for board in boards: states = [] r = brute_force(board, states) if r == True: cur_states = len(states) max_states = max(max_states, cur_states) min_states = min(min_states, cur_states) total_states += cur_states stats.append(cur_states) success += 1 print "success " + str(success) result = {} result['max'] = max_states result['min'] = min_states result['total'] = total_states result['average'] = float(total_states) / 20 result['median'] = numpy.median(stats) return result
def main(): size = 14 P = read_tsp_instance('test.tsp', size) D = create_distance_matrix(P) D = D[:size + 1] for i in range(len(D)): D[i] = D[i][:size + 1] if 1: hc_path = held_karp(D) test_path(hc_path, D, P) else: bf_path = brute_force(D) test_path(bf_path, D, P)
def POST(self): signal = web.input().action if signal == 'load_easy': print "easy" board = json.dumps(get_easy_board()) return board if signal == 'b_easy': board = get_easy_board() result = [] brute_force(board, result) return json.dumps(result) if signal == 's_easy': board = get_easy_board() result = [] simulated_annealing(board, 3, result) return json.dumps(result) if signal == 'load_medium': board = json.dumps(get_medium_board()) return board if signal == 'b_medium': board = get_medium_board() result = [] brute_force(board, result) return json.dumps(result) if signal == 's_medium': board = get_medium_board() result = [] simulated_annealing(board, 3, result) return json.dumps(result) if signal == 'load_hard': board = json.dumps(get_hard_board()) return board if signal == 'b_hard': board = get_hard_board() result = [] brute_force(board, result) return json.dumps(result) if signal == 's_hard': board = get_hard_board() result = [] simulated_annealing(board, 3, result) return json.dumps(result) return "..."
# Create Routing Model routing = pywrapcp.RoutingModel(len(coords), 1, 0) # Define weight of each edge distance_callback = create_distance_callback(algorithm_ID, coords) routing.SetArcCostEvaluatorOfAllVehicles(distance_callback) add_distance_dimension(routing, distance_callback) # Setting first solution heuristic (cheapest addition). search_parameters = pywrapcp.RoutingModel.DefaultSearchParameters() search_parameters.first_solution_strategy = routing_enums_pb2.FirstSolutionStrategy.PATH_CHEAPEST_ARC # Solve the problem. assignment = routing.SolveWithParameters(search_parameters) if assignment: solution, overallDistance, points = get_solution( coords, routing, assignment) t = timeit.default_timer() - start print_solution_on_console(solution, overallDistance, t) save_to_output_file(input_file, points, overallDistance, t) if __name__ == '__main__': input_file, algorithm_ID = parse_input() with open(str(input_file)) as f: locations = [tuple(map(float, i.split(','))) for i in f] if algorithm_ID != BRUTE_FORCE: find_routing(locations) else: brute_force(locations, input_file)