TSP

 from itertools import permutations


def tsp(graph, start):

    nodes = list(graph.keys())

    nodes.remove(start)

    min_cost, best_path = float('inf'), []

    

    for perm in permutations(nodes):

        path = [start] + list(perm) + [start]

        cost = sum(graph[path[i]][path[i+1]] for i in range(len(path) - 1))

        if cost < min_cost:

            min_cost, best_path = cost, path

    

    return best_path, min_cost


graph = {

    'A': {'B': 10, 'C': 15, 'D': 20},

    'B': {'A': 10, 'C': 35, 'D': 25},

    'C': {'A': 15, 'B': 35, 'D': 30},

    'D': {'A': 20, 'B': 25, 'C': 30}

}

print(tsp(graph, 'A'))

 Traveling salesman

Comments

Popular posts from this blog

Web

Lab 1 ai