Искусственный интеллект - агент разведки, который очищает и рисует - PullRequest
2 голосов
/ 25 сентября 2010

Я помню, когда я учился в колледже, мы столкнулись с некоторой проблемой, когда был умный агент, который был на сетке квадратов, и он должен был чистить квадраты. Был награжден баллами за уборку. Также были вычтены очки за переезд. Время от времени ему приходилось заправляться, и в конце он получал окончательную оценку, основываясь на том, сколько квадратов на сетке было грязным или чистым.

Я пытаюсь изучить эту проблему, так как она была очень интересной, когда я увидел ее в колледже, однако я не могу найти ничего в Википедии или где-либо в Интернете. Есть ли конкретное название для этой проблемы, о которой вы знаете? Или, может быть, это было что-то, что мой учитель придумал для класса.

Я ищу средство для чистки AI и подобные вещи, но ничего не нахожу. Я не знаю, я думаю, может быть, у него есть другое имя.

Если вы знаете, где я могу найти больше информации об этой проблеме, я был бы признателен. Спасибо.

Ответы [ 3 ]

2 голосов
/ 25 сентября 2010

Возможно, «стигмергирующий» подход тесно связан с вашей проблемой. Здесь есть отправная точка здесь , и вы можете найти что-то, выполнив поиск "мертвых муравьев" и "роботов" в google scholar .

В основном: вместо моделирования точной стратегии вы работаете над вероятностным подходом. Муравьи (вероятно) собирают своих мертвецов, накапливая их по простому правилу, например, «если там куча мертвых муравьев, я принесу этот труп сюда, иначе я соберу новую кучу». Вы можете начать с упрощения ситуации с «очисткой» и посмотреть, куда вы пойдете.

Кроме того, я думаю, (другой?) Подходящий подход можно смоделировать с помощью генетического алгоритма, используя тщательно выбранную комбинацию фитнес-функций, таких как:

  • конечный номер «чистых» плиток
  • количество шагов, сделанных роботом

конечно, если роботы «умирают» от голода, они автоматически удаляются из генофонда, а-ля дарвиновские награды :)

Вы могли бы начать с моделирования очень, очень простого генотипа, который будет «вычислен» в поведении. Подумайте об использовании простого ГА, такого как этого Инмана Харви, затем каждому гену присвойте либо часть стратегии, либо полное поведение. Например: если ген А повернут к 1, робот будет случайным образом бродить; если ген B также повернут к 1, то он будет отдавать приоритет самозарядке, если на расстоянии X не будет грязных тайлов. Или используйте поплавки и вероятность модели. Ваш пробег может отличаться, но я могу заверить, что это будет весело :) 1021 *

2 голосов
/ 25 сентября 2010

Эта проблема напоминает Shakey , хотя здесь и используется очистка (которая похожа на Roomba - устройство, которое также можно запрограммировать для выполнения этих самых задач).

Если «проблемное пространство» (или комната) достаточно мало, вы можете найти оптимальное решение с помощью простого поиска на основе A *, но, скорее всего, этого не произойдет, поскольку это не приведет к очень интересному проблемы.

Подход машинного обучения, предложенный здесь с использованием генетических алгоритмов, является интересным подходом. Учитывая проблемную область, у вас будет только одно «правило» (действие move-to, поскольку clean может быть устранено путем неявной очистки любого квадрата, на который вы двигаетесь, который является грязным), так что ваш ученик, по сути, научится перемещаться среда. Проблема заключалась бы в том, чтобы создать учащегося, который был бы адаптирован к любому заданному плану этажа, вместо того, чтобы просто научиться чистить очень специфическое пространство.

Какой бы подход вы ни использовали, я бы также подумал о том, чтобы сделать еще один шаг мета-рассуждения, если наборы задач достаточно велики, и использовать разделенный подход, чтобы разделить пол на отдельные области, а затем завоевывать их по одному за раз.

Можете ли вы использовать методы для создания данных для использования в автономном режиме? В этом случае я бы даже подумал о создании «базы данных» оптимальных маршрутов для очистки определенных площадей (от 1x1 до, скажем, 5x5), которые включают все возможные начальные и конечные квадраты. Это похоже на «базы данных эндшпиля», которые игровые ИИ используют для эффективного «решения» игр, когда они достигают определенной глубины (ср. Чинук ).

0 голосов
/ 25 сентября 2010

Эта проблема напоминает мне это . Подобная проблема кратко упоминается в книге Сложность в качестве примера генетического алгоритма. Эти версии упрощены, но они не учитывают расход топлива.

...