Professional Documents
Culture Documents
CN Final File
CN Final File
Computer Networks
Lab File
class Router:
def __init__(self, id):
self.id = id
self.adjacent_routers = {}
self.routing_table = {}
class Network:
def __init__(self):
self.routers = {}
def update_routing_tables(self):
for router_id in self.routers:
router = self.routers[router_id]
distance_vector = {router_id: 0}
for neighbor in router.adjacent_routers:
distance_vector[neighbor] = router.adjacent_routers[neighbor]
neighbor_router = self.routers[neighbor]
for n in neighbor_router.routing_table:
if n not in distance_vector:
distance_vector[n] = neighbor_router.routing_table[n]
+ router.adjacent_routers[neighbor]
router.update_routing_table(neighbor_router, distance_vector)
network=Network()
network.add_router(1)
1
network.add_router(2)
network.add_router(3)
network.add_connection(1,2,1)
network.add_connection(2,3,2)
network.add_connection(1,3,3)
network.update_routing_tables()
shortest_path=network.get_shortest_path(3,2)/2
#################################
print(shortest_path)
Output
2
12. WAP for Shortest Path Routing
# shortest path routing algorithm for
# optical networks
# Number of nodes
NODES = 7
for i in range(NODES):
if(distance_links[s][i] != INVALID):
nxt.append(i)
return nxt
nodestack = list()
indexstack = list()
current = start
i = 0
3
while True:
if i >= len(neighbors):
visited.remove(current)
if len(nodestack) < 1:
break
current = nodestack.pop()
i = indexstack.pop()
else:
nodestack.append(current)
indexstack.append(i + 1)
visited.add(neighbors[i])
current = neighbors[i]
i = 0
block = 0
l = []
for path in find_simple_paths(sour, dest):
l.append(path)
k = 0
for i in range(len(l)):
su = 0
for j in range(1, len(l[i])):
su += (distance_links[l[i][j-1]]
[l[i][j]])
k += su
# print k
dist_prob = []
probability = []
for i in range(len(l)):
s, su = 0, 0
su += (distance_links[l[i][j-1]]
[l[i][j]])
4
dist_prob.append(su/(1.0 * k))
for m in range(len(dist_prob)):
z = (dist_prob[m])
probability.append(z)
for i in range(len(probability)):
if(probability[i] == min(probability)):
z = l[i]
print("Shortest Path is", end = " ")
print(z)
# Driver Code
if __name__ == '__main__' :
source, dest = 1,5 ###########################
Output