Professional Documents
Culture Documents
AI Lab 4
AI Lab 4
AI Lab 4
import copy
Q2)
import copy
class Position:
def __init__(self, current, parent = None):
self.current = current
self.parent = parent
while q:
t = q.pop(0)
if goal in t.current:
return t
temp = copy.deepcopy(t.current)
for i in range(3):
if temp[i]:
val = temp[i][-1]
temp[i].pop()
for j in range(3):
if j != i:
temp[j].append(val)
if temp not in v:
c = copy.deepcopy(temp)
v.append(c)
q.append(Position(c, t))
temp[j].pop()
temp[i].append(val)
return False
for i in path:
print(*i)
Q5)
import heapq
class State:
def __init__(self, current, parent=None):
self.current = current
self.parent = parent
graph = {
"S": [("A", 1), ("B", 5), ("C", 15)],
"A": [("G", 10)],
"B": [("G", 5)],
"C": [("G", 5)],
"G": [],
}
while pq:
t = heapq.heappop(pq)
cost, curr = t.current
if curr == goal:
return t
v.add(curr)
for i, w in graph[curr]:
if i not in v:
heapq.heappush(pq, State((cost + w, i), t))
return -1