MD - Shawkat Hossain - 20CSE046
MD - Shawkat Hossain - 20CSE046
Traversal order => Notullabad, barishal sadar, Rupatoli, Lohar pool, Nolcity ,Barishal
University , Jhalokati , Zero point, baghri bazar, medical mor, bypass mor, shohag clinic, Bari.
Traversal order => Notullabad, barishal sadar, Rupatoli, Lohar pool , Nolcity, Barishal University,
Zero point, Jhalokati, baghri bazar, medical mor ,shohag clinic, bypass mor, Bari.
Now Performing Dijkstra Algorithm To find shortest path from Notullabad to Bari:
Here source is Notullabad and destination is Bari .Cost for shortest path travel is 19.
Notullabad⇒Loharpool⇒Rupatoli⇒BarishalUniversity⇒Nolcity⇒Zeropoint⇒Jhalokati⇒
class Graph():
self.V = vertices
min = sys.maxsize
for u in range(self.V):
min = dist[u]
min_index = u
return min_index
dist[src] = 0
x = self.minDistance(dist, sptSet)
sptSet[x] = True
for y in range(self.V):
self.printSolution(dist)
if __name__ == "__main__":
g = Graph(13)
[2, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[5, 4, 0, 3, 6, 3, 0, 10, 0, 0, 0, 0, 0],
[1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 6, 0, 0, 1, 1, 4, 0, 0, 0, 0, 0],
[0, 0, 3, 0, 1, 0, 5, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 1, 5, 0, 2, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 2, 0, 3, 4, 0, 0, ],
[0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 1, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 1, 4],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 2],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2, 0]
g.dijkstra(0)
Graph coloring using Backtracking :
import networkx as nx
adj_matrix = np.array([
[0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0],
[1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0],
[0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0],
[0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0]
])
G = nx.from_numpy_matrix(adj_matrix)
if colors[neighbor] == color:
return False
return True
if node == len(G.nodes()):
return True
colors[node] = color
return True
colors[node] = 0
return False
plt.show()
else:
Code:
import numpy as np
import networkx as nx
adj_matrix = np.array([
[0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0],
[1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0],
[0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0],
[0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0]
])
G = nx.from_numpy_matrix(adj_matrix)
if colors[neighbor] == color:
return False
return True
if node == len(G.nodes()):
return True
new_remaining_colors[neighbor].discard(color)
return True
colors[node] = 0
return False
num_colors = 3
plt.show()
else:
import networkx as nx
adj_matrix = np.array([
[0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0],
[1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0],
[0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0],
[0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0]
])
G = nx.from_numpy_matrix(adj_matrix)
while queue:
(i, j) = queue.pop()
if revise(domains, i, j):
if len(domains[i]) == 0:
return False
for k in G.neighbors(i):
if k != j:
queue.append((k, i))
return True
revised = False
for x in domains[i].copy():
domains[i].remove(x)
revised = True
return revised
if node == len(G.nodes()):
return True
colors[node] = color
return True
colors[node] = 0
return False
num_colors = 3
plt.show()
else: