def nearest_neighbour(start_point, vectors): min_dist = None nearest = None for potential in vectors: dist_to = Vector.distance(start_point, potential) if min_dist is None or dist_to < min_dist: min_dist = dist_to nearest = potential return nearest
def nearest_neighbour(start_point, vectors): min_dist = None nearest = None for potential in vectors: dist_to = Vector.distance(start_point, potential) if min_dist is None or dist_to < min_dist: min_dist = dist_to nearest = potential return nearest
def greedy_ts_path(vec_list): graph = dict() used = [] current = vec_list[0] # print vec_list while len(used) + 1 < len(vec_list): used.append(current) min_dist = None nearest_neighbour = None for potential in vec_list: if potential not in used: dist_to = Vector.distance(current, potential) if min_dist is None or dist_to < min_dist: min_dist = dist_to nearest_neighbour = potential graph[current] = nearest_neighbour current = nearest_neighbour return graph
def greedy_ts_path(vec_list): graph = dict() used = [] current = vec_list[0] # print vec_list while len(used) + 1 < len(vec_list): used.append(current) min_dist = None nearest_neighbour = None for potential in vec_list: if potential not in used: dist_to = Vector.distance(current, potential) if min_dist is None or dist_to < min_dist: min_dist = dist_to nearest_neighbour = potential graph[current] = nearest_neighbour current = nearest_neighbour return graph
def __inner(from_node, to_node): return Vector.distance(vec_list[from_node], vec_list[to_node])
def length(tour): length = 0 for i in range(len(tour) - 1): length += Vector.distance(tour[i], tour[i + 1]) return length
def __inner(from_node, to_node): return Vector.distance(vec_list[from_node], vec_list[to_node])
def length(tour): length = 0 for i in range(len(tour) - 1): length += Vector.distance(tour[i], tour[i + 1]) return length