Оптимальний міопічний лабіринт


10

Я дуріла з демонстрацією Maze Google Blocky і згадала старе правило, що якщо ви хочете вирішити лабіринт, просто тримайте ліву руку до стіни. Це працює для будь-якого простого підключеного лабіринту і може бути реалізовано кінцевим перетворювачем.

Нехай наш робот представлений перетворювачем із наступними діями та спостережуваними характеристиками:

  • Дії: рухайтеся вперед ( ), поверніть ліворуч ( ), поверніть праворуч ( )
  • Спостерігається: стіна попереду ( ), стіна попереду ( )

Тоді ми можемо побудувати лівий лабіринт як (пробачте про мій ледачий малюнок):

перетворювач для вирішення лабіринту

Якщо побачення спостережуваного змусить нас слідувати відповідним краєм поза станом, виконуючи дії, пов'язані з цим краєм. Цей автомат вирішить усі просто підключені лабіринти, хоча це може зайняти свій час після тупиків. Ми називаємо інший автомат кращим, ніж A, якщо:B A

  1. вживає суворіших кроків лише за обмеженою кількістю лабіринтів, іB

  2. робить суворо менше кроків (в середньому; для імовірнісних варіантів) на нескінченну кількість лабіринтів.B

Мої два питання:

  1. Чи є кінцевий автомат кращий, ніж намальований вище? Що робити, якщо дозволити ймовірнісні перетворювачі?

  2. Чи існує кінцевий автомат для вирішення лабіринтів, які не обов'язково просто пов'язані між собою?


@jmad і я провели досить плідну дискусію в чаті з цього питання. Якщо ви замислюєтесь над питанням (особливо з визначеннями кращого ), то рекомендую перевірити стенограму.
Артем Казнатчеєв

Я не бачу, як це питання стосується AI (зокрема, наші агенти не змінюють свою поведінку за даними екземплярів), але я не є експертом у цій галузі.
Рафаель

3
@Raphael вирішення лабіринтів та пошук шляхів (від огляду BFS, DFS, до A * та на підопічних) є базовою навчальною програмою вступного курсу AI. Я погоджуюсь, як інтелект, це не особливо захоплююче, але якщо AI мене чомусь навчив: більшість AI - це лише проблема пошуку.
Артем Казнатчеєв

Відповіді:


6

Якщо я добре зрозумів це питання, я думаю, що ви можете застосувати прискорений трюк, щоб отримати швидші автомати на нескінченну кількість лабіринтів (за умови, що вихід розміщений на одному з кордонів): ви можете просто використовувати внутрішні стани для зберігання магазину кінцева кількість кроків і розпізнати тупики, як на малюнку:

введіть тут опис зображення

Коли правий наступний автомат знаходиться в положенні і його стан "сигналізує" про те, що він щойно слідував за закритим квадратом ( з фіксованим розміром, закодованим, а не довільним великим квадратом ), він може спокійно повернути ліворуч і уникнути відвідування глухого кута зона. Як підкреслено в моєму коментарі нижче, автомат застосує ярлик на кожному лабіринті, який містить одну (або більше) "підмайстрів", як на малюнку, тому він буде краще працювати на нескінченно багатьох лабіринтах. На лабіринтах, які не містять субмазу, як на малюнку, вона буде виконуватись як стандартний правий наступний автомат.A

Аналогічним чином ви можете кодувати обмежену кількість різних фігур фіксованого розміру, щоб уникнути тупиків і пришвидшити ваш автомат. Як наслідок, не існує «оптимального» міопічного лабіринту для просто з'єднаних лабіринтів з виходом, розміщеним на кордоні.

Трюк працює, якщо вхід розміщений всередині лабіринту і вихід на кордон; але якщо вихід розміщений всередині лабіринту, він не працює, тому що всі місця потрібно відвідувати, і в цьому випадку ваш короткозорий вирішувач є оптимальним.

Очевидно, ви не можете застосувати один і той же трюк для вирішення не просто підключених лабіринтів (але це має спрацювати, якщо є фіксована верхня межа розміру кожного непоєднаного компонента).


Це класна хитрість для випадку входу-виходу на кордон (який є підкласом просто з'єднаних лабіринтів). Звідси видно, що в цьому обмеженому випадку впорядкований мною порядок не містить мінімальних елементів. Я не думаю, що це може бути узагальнено до всіх просто з’єднаних лабіринтів (що наліво ліворуч працює далі).
Артем Казнатчеєв

@ArtemKaznatcheev: Я думаю, що трюк працює на лабіринтах з входом всередину лабіринту і виходом на межу. Крім того, він працює на (нескінченно багато) лабіринтах, в яких є субмаз, подібний до малюнка). Я відредагую питання, щоб уточнити цей момент.
Vor

k

4k1

5

питання 1

Я вважаю, що ваше визначення кращого є надто суворим у тому сенсі, що кінцеве є занадто обмежуючим (але в мене немає кращого визначення).

R=(Ri)iRiiLARALRLARAL

ARRAR

Ймовірні перетворювачі, ймовірно, можуть бути виключені, оскільки детермінований перетворювач буде швидшим на цих нескінченних наборах лабіринтів.

Питання 2 (завдяки обговоренню з ОП )

Ні (джерело: цей новаторський документ Лотара Будаха. Теорема чіткіше викладена в рефераті цієї статті Франка Гофмана.)


так, нам потрібно було б визначити деякі класи еквівалентності на лабіринтах під стандартними перетвореннями (наприклад, обертання та відбиття), щоб зробити ліву і праву стінки наступними еквівалентами. На жаль, ваше питання 1 розділ не відповідає на моє перше запитання . Ви показуєте, що є незрівнянні (у «кращому» ніж частковому порядку) розв'язувачі (такі як лівий і правий, якщо ми не робимо припущень щодо симетрії), але це не доводить, що не існує такого, який є краще, ніж ліва рука.
Артем Казнатчеєв

ABABLRRLLRAALLA

ABBA

AB

#{A(M)<B(M)|M|n}/#{M|M|n}=o(1)
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.