AIML Lab Programs
AIML Lab Programs
graph = {
'5' : ['3','7'],
'3' : ['2', '4'],
'7' : ['8'],
'2' : [],
'4' : ['8'],
'8' : []
}
# Driver Code
print("Following is the Breadth-First Search")
bfs(visited, graph, '5') # function calling
DFS Algorithm
graph = {
'5' : ['3','7'],
'3' : ['2', '4'],
'7' : ['8'],
'2' : [],
'4' : ['8'],
'8' : []
}
# Driver Code
print("Following is the Depth-First Search")
dfs(visited, graph, '5')
Greedy algorithm (coin change)
return coins_used
# Example usage:
amount_to_change = 63
coin_denominations = [1, 2, 5, 10, 20, 50]
def astaralgo(start_node,stop_node):
open_set = set(start_node)
closed_set= set()
g={}
parents = {}
g[start_node] = 0
parents[start_node] = start_node
n=None
for v in open_set:
n=v
if n==stop_node or Graph_nodes[n]==None:
pass
else:
for(m,weight) in get_neighbors(n):
open_set.add(m)
parents[m]=n
else:
parents[m]=n
if m in closed_set:
closed_set.remove(m)
open_set.add(m)
if n==None:
return None
if n==stop_node:
path=[]
while parents[n]!=n:
path.append(n)
n=parents[n]
path.append(start_node)
path.reverse()
return path
open_set.remove(n)
closed_set.add(n)
return None
def get_neighbors(v):
if v in Graph_nodes:
return Graph_nodes[v]
else:
return None
def heuristic(n):
H_dist = {
'A' : 11,
'B' : 6,
'C' : 99,
'D' : 1,
'E' : 7,
'G' : 0,
return H_dist[n]
Graph_nodes = {
'A' : [('B',2),('E',3)],
'B' : [('C',1),('G',9)],
'C' : None,
'E' : [('D',6)],
'D' : [('G',1)],
astaralgo('A','G')