Ai File
Ai File
class Graph:
def __init__(self):
self.graph = defaultdict(list)
while queue:
start = queue.pop(0)
print(start, end=" ")
for i in self.graph[start]:
if not visited[i]:
queue.append(i)
visited[i] = True
for i in self.graph[v]:
if not visited[i]:
self.dfs_util(i, visited)
g = Graph()
g.add_edge(0, 1)
g.add_edge(0, 2)
g.add_edge(1, 2)
g.add_edge(2, 0)
g.add_edge(2, 3)
g.add_edge(3, 3)
1
SHASHANK
g.bfs(2)
print("\nDepth First Search (DFS):")
g.dfs(2)
OUTPUT
35316702022
2
SHASHANK
Q2.Write a Program for the Best First Search and A* search algorithm
for v, c in graph[u]:
if visited[v] == False:
visited[v] = True
pq.put((c, v))
print()
addedge(0, 1, 3)
addedge(0, 2, 6)
addedge(0, 3, 5)
addedge(1, 4, 9)
addedge(1, 5, 8)
addedge(2, 6, 12)
addedge(2, 7, 14)
addedge(3, 8, 7)
addedge(8, 9, 5)
addedge(8, 10, 6)
addedge(9, 11, 1)
addedge(9, 12, 10)
addedge(9, 13, 2)
35316702022
3
SHASHANK
source = 0
target = 9
best_first_search(source, target, v)
OUTPUT
35316702022
4
SHASHANK
if 'OR' in condition:
OR_nodes = condition['OR']
Path_B =' OR '.join(OR_nodes)
PathB = min(H[node]+weight for node in OR_nodes)
cost[Path_B] = PathB
return cost
Next = key[Index].split()
if len(Next) == 1:
Start =Next[0]
Path += '<--' +shortest_path(Start, Updated_cost, H)
else:
Path +='<--('+key[Index]+') '
35316702022
5
SHASHANK
Start = Next[0]
Path += '[' +shortest_path(Start, Updated_cost, H) + ' + '
Start = Next[-1]
Path += shortest_path(Start, Updated_cost, H) + ']'
return Path
H = {'A': -1, 'B': 5, 'C': 2, 'D': 4, 'E': 7, 'F': 9, 'G': 3, 'H': 0, 'I':0, 'J':0}
Conditions = {
'A': {'OR': ['B'], 'AND': ['C', 'D']},
'B': {'OR': ['E', 'F']},
'C': {'OR': ['G'], 'AND': ['H', 'I']},
'D': {'OR': ['J']}
}
weight = 1
OUTPUT
35316702022
6
SHASHANK
current_pathweight = 0
k=s
for j in i:
current_pathweight += graph[k][j]
k=j
current_pathweight += graph[k][s]
return min_path
if __name__ == "__main__":
OUTPUT
35316702022
7
SHASHANK
Q8(a) Write a program to implement List operations (Nested List, Length, Concatenation,
Membership, Iteration, Indexing and Slicing)? (b) Write a program to implement List methods
(Add, Append, and Extend & Delete).
(A)=
list1 = [1, 2, 3, 4, 5]
print(len(list1))
print(list3)
print(4 in list1)
for i in list1:
print(i)
print(list1[2])
print(list1[2:4])
OUTPUT
35316702022
8
SHASHANK
(B)=
list1 = [1, 2, 3, 4, 5]
list1.append(6)
print(list1)
list1.append([7, 8, 9])
print(list1)
list1.remove(6)
print(list1)
list1.remove([7, 8, 9])
print(list1)
OUTPUT
35316702022
9
SHASHANK
knowledge_base = {
'parent': [('shashank', 'haardeek'), ('haardeek', 'rohan')],
'grandparent': [('?', '?')], # Placeholder for inferred knowledge
}
goal_predicate = 'grandparent'
goal_arguments = ('shashank', 'rohan')
if result:
print(f"Yes, {goal_arguments[0]} is a {goal_predicate} of {goal_arguments[1]}.")
else:
print(f"No, {goal_arguments[0]} is not a {goal_predicate} of {goal_arguments[1]}.")
35316702022
10
SHASHANK
OUTPUT
(B)-class KnowledgeBase:
def __init__(self):
self.facts = []
self.rules = []
while True:
new_inferred = set()
if not new_inferred:
break
inferred |= new_inferred
kb = KnowledgeBase()
kb.add_fact("Parent(john, Mary)")
kb.add_fact("Parent(Mary, Bob)")
kb.add_fact("Parent(Mary, Alice)")
if result:
35316702022
11
SHASHANK
OUTPUT
35316702022
12
SHASHANK
35316702022
13