Я реализовал это в проекте (Pacman), но он просто не двигается вообще, кажется, что он входит в бесконечный цикл или что-то еще ... может кто-то скажи мне, что с ним не так ??? Я застрял здесь в течение нескольких дней .....Что не так с этим итеративным углубляющим поисковым кодом? (Python)
def depthLimitedSearch(problem, limit):
explored = set()
node = problem.getStartState()
path = []
def recursive_DLS(node, problem, limit, path):
if node not in explored :
explored.add(node)
if problem.goalTest(node):
return path
elif limit == 0 :
return 'cutoff'
else:
cutoff_occurred = False
for successor in problem.getActions(node):
child = problem.getResult(node,successor) #next state
result = recursive_DLS(child ,problem, limit - 1, path)
if result == 'cutoff':
cutoff_occurred = True
elif result != None:
path.append(successor)
if cutoff_occurred:
return 'cutoff'
else:
return None
return recursive_DLS(node, problem, limit, path)
def iterativeDeepeningSearch(problem):
for depth in xrange(sys.maxint):
result = depthLimitedSearch(problem, 1)
if result is not 'cutoff':
return result
Не могли бы вы привести пример ввода и результата? – jonrsharpe
Это довольно абстрактная проблема. Проблема относится к конкретной проблеме, и результат должен быть списком действий. – Jolyu
В принципе, гораздо проще понять, что не так, если вы приведете пример, который мы можем ** запустить **, и посмотреть, что происходит. Предположительно, у вас есть такая вещь, или вы не знаете, что она не работает. – jonrsharpe