Example #1
0
def main():
    cities, distance = tsm.read_file()
    permutations = tsm.get_permutations(cities[:10])

    best = -1
    for p in permutations:
        dist = tsm.distance_permutation(p, cities, distance)
        best = dist if best == -1 else best
        best = dist if dist < best else best
    print best
def main():
    cities, distance = tsm.read_file()
    random_cities = random_permutation( cities[:10] )
    best_cities = random_cities
    best_distance = tsm.distance_permutation( random_cities, cities, distance )
    
    not_optimum = True
    while not_optimum:
        temp_distance, temp_cities = check_neighbours( cities, distance, best_distance, best_cities )
        if temp_distance == None:
            not_optimum = False
        else:
            best_distance, best_cities = temp_distance, temp_cities
            
    print best_distance , best_cities
def check_neighbours( cities, distance, best_distance, permutation ):

    neighbours = generate_neighbours( permutation )
    for n in neighbours:
        d = tsm.distance_permutation( n, cities, distance)
        if d < best_distance:
            return d, n
    return None, None