Дано 2-мірний лабіринт, де можна дати 4 команди "рухатись вгору / вниз / вправо / вліво". Знаючи лабіринт, але не там, де людина, як знайти мінімальну послідовність команд, яка гарантує вихід лабіринту? Я шукаю єдину послідовність команд, яка працюватиме незалежно від того, з якого лабіринту ви починаєте.
Припустимо, що якщо нашому партнеру дана команда "рухатись праворуч", коли справа є стіна, він просто залишиться там, де він є.
Іншими словами, нам дарують лабіринт, і ми повинні вибрати послідовність команд. Тоді наш партнер буде розміщений десь у лабіринті і дотримуватиметься послідовності команд, які ми обрали заздалегідь. Ми хочемо, щоб ця послідовність забезпечувала втечу нашого партнера, незалежно від того, де його партнера розміщували спочатку. Зауважте, що допустимі команди не мають жодних умовних операторів, тому вони не можуть слідувати різній послідовності залежно від вашого партнера.
Чи існує алгоритм поліноміального часу для побудови такої послідовності, задавши опис лабіринту?
Ювал Філіус згадує, що це особливий випадок проблеми синхронізації слів і може бути пов’язана з універсальною послідовністю обходу. Я також знайшов документ, який видається релевантним:
Одночасне вирішення проблеми лабіринту . Штефан Функе, Андре Нуссер, Сабіне Сторандт. AAAI 2017.
На жаль, для загальних графіків це видається невирішеною проблемою, але мені цікаво, чи може бути хороший алгоритм для цього конкретного випадку. Я придумав кандидатський підхід: позначте кожну позицію кількістю мінімальних кроків, необхідних для виходу, і слідкуйте за кожним агентом у лабіринті. Це можливо зробити пошук A * таким чином.