Может, это уже обсуждалось много раз, но я не нашла именно того, что мне нужно. Если кому-то будет не сильно лень мне ответить - спасибо за помощь.
Есть лаба по ИИ - симуляция миры пылесоса со следующими входящими данными:
пылесос находится в комнате, которая окружена стеной.
В комнате могут находится препятствия - тоже стены.
Робот не может пройти через стену.
Робот может перемещаться в 4х направлениях.
Каждая клетка комнаты может содержать мусор, который появляется в ней в неопределенный момент времени.
Каждый шаг робота стоит ему единицу энергии.
Чтоб очистить 10 единиц мусора роботу надо две еденицы энергии.
За один раз робот может очистить не больше 10 единиц мусора.
Задача в том, чтоб минимизировать затраты энергии и максимизировать кол-во убранного мусора.
Что уже есть:
1) когда робот выбирает клетку, куда он хочет перейти, он может посмотреть стена она или нет и узнать есть ли на ней мусор. (фактически, он туда перемещается, но если она стена - он переходит на предыдущую)
2) на данный момент он у меня перемещается случайно выбирая направление из 4х возможных.
Попробовала написать свой алгоритм его перемещения, учитывая его прошлые перемещения, но эффективность только упала. Не буду его тут приводить, ибо вариант выбирать направление рандомом пока лучше.
Думала записать всю среду в матрицу, чтоб можно было ориентироваться по ней и сделать обход, отталкиваяся от алгоритма змейки, но это плохой вариант, ибо размер комнаты неизвестен, а для того, чтоб его узнать, надо будет пройти всю комнату по стенам, не говоря уже о том, что их надо будет найти, а тут задача усложняется еще наличием стен в самой комнате.
Что надо:
Буду благодарна, если кто-то сможет предложить алгоритм, который будет более эффективен.
ПС если что - простите за ваше потраченное время
ППС книги, литературы и статьи на эту тему приветствуются, но хотелось бы больше конкретики.
Спасибо