Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import networkx as nx
- class City:
- def __init__(self, name):
- self.name = name
- def __str__(self):
- return self.name
- def __repr__(self):
- return self.name
- class Route:
- def __init__(self, fromCity, toCity, length):
- self.fromCity = fromCity
- self.toCity = toCity
- self.length = length
- class RoutesManager:
- def __init__(self):
- self.graph = nx.DiGraph()
- def add_city(self, city):
- self.graph.add_node(city)
- def add_route(self, route):
- self.graph.add_edge(route.fromCity, route.toCity, weight = route.length)
- def shortest_route(self, fromCity, toCity):
- return nx.shortest_path(self.graph, fromCity, toCity)
- routesManager = RoutesManager()
- #Graph: AB5, BC4, CD8, DC8, DE6, AD5, CE2, EB3, AE7
- A = City("A")
- B = City("B")
- C = City("C")
- D = City("D")
- E = City("E")
- routesManager.add_route(Route(A, B, 5))
- routesManager.add_route(Route(B, C, 4))
- routesManager.add_route(Route(C, D, 8))
- routesManager.add_route(Route(D, C, 8))
- routesManager.add_route(Route(D, E, 6))
- routesManager.add_route(Route(A, D, 5))
- routesManager.add_route(Route(C, E, 2))
- routesManager.add_route(Route(E, B, 3))
- routesManager.add_route(Route(A, E, 7))
- print(routesManager.shortest_route(A, C))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement