Кроки, які гарантують вихід лабіринту


14

Дано 2-мірний лабіринт, де можна дати 4 команди "рухатись вгору / вниз / вправо / вліво". Знаючи лабіринт, але не там, де людина, як знайти мінімальну послідовність команд, яка гарантує вихід лабіринту? Я шукаю єдину послідовність команд, яка працюватиме незалежно від того, з якого лабіринту ви починаєте.

Припустимо, що якщо нашому партнеру дана команда "рухатись праворуч", коли справа є стіна, він просто залишиться там, де він є.

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

Чи існує алгоритм поліноміального часу для побудови такої послідовності, задавши опис лабіринту?

Ювал Філіус згадує, що це особливий випадок проблеми синхронізації слів і може бути пов’язана з універсальною послідовністю обходу. Я також знайшов документ, який видається релевантним:

Одночасне вирішення проблеми лабіринту . Штефан Функе, Андре Нуссер, Сабіне Сторандт. AAAI 2017.

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


Коментарі не для розширеного обговорення; ця розмова була переміщена до чату .
Дискретна ящірка

Стратегія Еппштейна для монотонних автоматів полягає в кластеризації станів, щоб замість того, щоб шукати шлях у повному наборі станів, він шукав шлях у графіку з лише багаточленовими вершинами. Найбільш природним узагальненням інтервалів до 2D, про які я можу придумати, є опуклий корпус, але, на жаль, не ясно, що їх кількість зростає поліноміально .
Пітер Тейлор

Відповіді:


-1

Ви не можете кодувати слідування стіни як фіксовану послідовність вказівок Кардинала. Вибір залежить від стін навколо вас, що конкретно заборонено питанням.
Кертіс F

Якщо ви знаєте найкоротший шлях, ви можете кодувати його як "рухатись вліво, потім прямо, потім ...". Якщо ви не знаєте найкоротшого шляху, ви не можете дати таких вказівок для найкоротшого виходу. Якщо ви не знаєте шляху, ви не можете дати вказівки вийти.
vonbrand
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.