В проекте для этого конкретного вопроса говорится:
В угловых лабиринтах есть четыре точки, по одной в каждом углу. Наша новая задача поиска — найти кратчайший путь через лабиринт, который касается всех четырех углов (независимо от того, есть ли в лабиринте еда или нет). Обратите внимание, что в некоторых лабиринтах, таких как tinyCorners, кратчайший путь не всегда сначала ведет к ближайшей пище! Подсказка: кратчайший путь через tinyCorners занимает 28 шагов.
Реализуйте задачу поиска CornersProblem в searchAgents.py. Вам нужно будет выбрать представление состояния, которое закодирует всю информацию, необходимую для определения того, были ли достигнуты все четыре угла.
BFS:
Код: Выделить всё
fringe = util.Queue()
fringe.push( (problem.getStartState(), [], 0) )
visited = set()
while not fringe.isEmpty():
curState, curAction, curCost = fringe.pop()
if curState in visited:
continue
visited.add(curState)
if problem.isGoalState(curState):
return curAction
for state, action, cost in problem.getSuccessors(curState):
fringe.push( (state, curAction + [action], cost ) )
return []
util.raiseNotDefined()
Код: Выделить всё
def getStartState(self):
"""
Returns the start state (in your state space, not the full Pacman state
space)
"""
"*** YOUR CODE HERE ***"
return self.startingPosition
util.raiseNotDefined()
Код: Выделить всё
"""
Returns whether this search state is a goal state of the problem.
"""
"*** YOUR CODE HERE ***"
// TODO
util.raiseNotDefined()
Код: Выделить всё
*** FAIL: test_cases/q5/corner_tiny_corner.test
*** Corners missed: [(1, 1), (1, 6), (6, 1), (6, 6)]
*** Tests failed.
Подробнее здесь: https://stackoverflow.com/questions/481 ... ersproblem
Мобильная версия