#python #artificial-intelligence #priority-queue #a-star
#питон #искусственный интеллект #приоритет-очередь #a-star
Вопрос:
Я реализую алгоритм поиска * в Python.
для получения минимального граничного узла я использую класс очереди приоритетов python. часть реализации алгоритма.
кодекс —
from queue import PriorityQueue
def a_star_search(g_edge, h_value, des):
path = []
class node:
def __init__(self, node_no, prev, actual_cost, total_cost):
self.node_no = node_no
self.prev = prev
self.actual_cost = actual_cost
self.total_cost = total_cost
minQ = PriorityQueue()
new = node(0, None, 0, 10)
minQ.put(new)
path.append(0)
while not minQ.empty():
NOb = minQ.get()
if NOb.node_no == des:
return path
for list in g_edge:
for element in list:
if element[0] == NOb.node_no:
prev = NOb.node_no
actual_cost = NOb.actual_cost element[2]
for l in h_value:
if l[0] == 0:
total_cost = NOb.actual_cost l[1]
NObNew = node(element[1], prev, actual_cost, total_cost)
minQ.put(NObNew)
path.append(NOb.node_no)
ошибка произошла в этой строке ->
NObNew = узел(элемент[1], предыдущий, actual_cost, total_cost)
в чем проблема?
Комментарии:
1. Вы абсолютно уверены , что ошибка произошла в этой строке, а не в
minQ.put(NObNew)
?2. да. интерпретатор Google colab поймал это