Искусственный интеллект - Проблема с информированным поискомPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Искусственный интеллект - Проблема с информированным поиском

Сообщение Anonymous »

Привет, у меня есть проблемы с этим упражнением, я не могу понять, что я делаю неправильно, вот описание упражнений: < /p>
Вам дают доску 5x9, где человек размещен. Цель состоит в том, чтобы человек взобрался на стену и достиг вершины, который отмечен домом. Человек также может оставаться в нынешней позиции. Человек может быть только на полях, где расположен зеленый восьмиугольник. Поля, которые не отмечены зеленым восьмиугольником, могут быть пропущены. Человек также не может отключиться с доски. Дом может остановиться на любом поле в ряду, где он находится. Вначале дом движется в одном направлении, и когда он достигает края доски, он меняет направление. Единственное поле в верхнем ряду, где может остановиться человек, - это то, где находится дом. < /P>
На изображении 1 показано возможное начальное состояние платы. Дом всегда расположен в верхнем ряду. Начальное направление дома также читается с стандартного входа. Позиции разрешенных полей одинаковы для всех тестовых случаев. Ваша задача - реализовать движение человека и дома в функции преемника. Действия названы как «Остаться/UP 1/UP 2/up-ruight 1/up-right 2/up-left 1/up-left 2». Кроме того, вам необходимо проверить, достигли ли вы цель, то есть реализовать функцию goot_test и проверить, является ли состояние действительным. Вы должны применить информированный поиск, чтобы найти решение с наименьшим количеством шагов. /> `< /p>
``class House(Problem):
def __init__(self, state):
super().__init__(state)
self.state = state
self.allowed = [(1, 0), (2, 0), (3, 0), (1, 1), (2, 1), (0, 2), (2, 2), (4, 2), (1, 3), (3, 3), (4, 3), (0, 4),
(2, 4),
(2, 5), (3, 5), (0, 6), (2, 6), (1, 7), (3, 7)]
print("Initialized")
self.width = 5
self.height = 9

def move_house(self, state):
house_x, house_y = state[1]
direction = state[2]
if direction == "right":
if 0 0:
house_x -= 1
else:
house_x += 1
direction = "right"
return (house_x, house_y), direction

def valid_movement(self, state, move):
person_x, person_y = state[0]
new_person_x, new_person_y = (person_x + move[0], person_y + move[1])
if 0

Подробнее здесь: https://stackoverflow.com/questions/795 ... med-search
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»