Проблема Супер Марио Гэлакси


140

Предположим, Марио ходит по поверхности планеты. Если он начнет идти из известного места в определенном направлении на заранее определенное расстояние, как быстро мы сможем определить, где он остановится?

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

PsPvpPP

Psv

PO(1)P

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

Известно ли что-нибудь нетривиальное о сложности этой проблемы?

n[0,1]2(0,1/2)(1,0)O(log)nlog


5
Я подумал о более простой проблеме: у нас есть простой многоугольник и луч света, идущий из данной точки. Когда он достигает края, он просто отражается. Мы хотим знать, где луч прекратит свое движение после заданного расстояния. Его можно (почти) свести к этому, взяв многогранник, который представляет собой призму очень малой высоты с верхней и нижней сторонами в форме заданного многоугольника. Может быть, решение в первую очередь может помочь.
Юлькевич

3
«[T] то есть многочлен от n и log l» не имеет смысла для меня. Если это зависит от l, оно также должно зависеть от координат P, и если вы добавляете log всех чисел во входных данных, то это точно количество бит, необходимое для представления входных данных, когда входные координаты ограничены целыми числами. Я думаю, что вы смотрите на сложность времени в реальном ОЗУ, когда ввод задается как битовая строка.
Цуёси Ито

4

2
Не очень похоже, но эта статья о NP-полноте Super Mario действительно удивительна: arxiv.org/pdf/1203.1895v1.pdf
Lamine

10
«Может быть, поэтому он так высоко оценен», - сказал кто-то совершенно безразличный к теории сложности.
Джефф

Ответы:


7

Эта проблема очень, очень сложная. Мы могли бы упростить это, чтобы сделать это проще, следующим образом.

  1. Pπ

  2. Можно предположить, что многогранник не является действительно трехмерным, но вместо этого является «двойником» многоугольника; это выглядит как наволочка. Мы можем упростить еще больше и предположить, что многоугольник имеет равные и параллельные стороны; например квадрат, как в игре Astroids.

O(log())

Если мы не предполагаем рациональность, но предполагаем, что многогранник является двойником многоугольника, то мы обсуждаем теорию «разрезания последовательностей в иррациональных бильярдах». Кажется, что по существу здесь ничего не известно; например, см. последнее предложение этого выступления Коринны Улциграй.

Если мы не сделаем ни одного предположения, хорошо, я не могу думать ни о чем в литературе.

O(log())


0

Я думаю, что вы можете сделать лучше, чем линейный. Я новичок в теоретической информатике, так что прости меня, если это мусор.

Некоторые общие идеи (различной ценности):

  • Если мы дадим каждому аспекту символ, орбиту Марио над ними можно описать как строку, где последний символ в строке является ответом.
  • Мы можем предположить без ограничения общности, что Марио начинает с ребра (просто идите назад и вытяните l к краю)
  • 2D пространство начальных положений и углов может быть разделено следующим ребром. Таким образом, начиная с ребра a, на x единиц снизу, под углом a, мы переходим к ребру V после пересечения одной грани.
  • В этот момент мы находимся на другом краю с другой ориентацией, поэтому мы можем рекурсивно вызывать функцию, чтобы разделить пространство на части 2-символьных строк и так далее.
  • На этом мы заканчиваем, если говорим, что пространство должно быть дискретизировано, чтобы проблема была реализована на ТМ. Это означает, что каждая орбита должна быть периодической, потому что на дискретизированной планете существует только конечное число точек. Мы можем вычислить функцию, описанную выше, пока не получим орбиты для всех начальных точек и сохранить эту информацию. Тогда проблема становится O (1).
  • Может быть, это что-то вроде полицейского. Некоторое гугление говорит мне, что почти все биллиардные орбиты внутри рациональных выпуклых многоугольников являются периодическими (т.е. периодические орбиты являются плотными). Так что для (скажем) квадратных планет такой же подход может сработать.
  • Другой подход заключается в том, чтобы рассматривать систему как генератор / распознаватель строк (опять же, назначая каждому фасету свой символ). Если у языка есть известный класс сложности, это ваш ответ. Если вы расширите семейство многогранников до невыпуклых и любых измерений, вы можете охватить очень широкий класс языков.

Это на самом деле не является ответом, но мне нужно вернуться к работе. :)


10
«На этом мы закончим, если скажем, что пространство должно быть дискретизировано, чтобы задача была реализована на ТМ. Это означает, что каждая орбита должна быть периодической, потому что на дискретизированной планете существует только конечное число точек». Вы только что уничтожили интересную часть проблемы. Я не хочу предполагать, что ввод дискретный; Я хочу решить реальную непрерывную задачу, хотя для этого требуется идеальный компьютер, который может выполнять точную реальную арифметику за постоянное время. В частности, путь Марио никогда не должен касаться вершины.
Джефф

Я подумал, что это было слишком просто. Вы могли бы сделать непрерывную версию на конечной машине, при условии, что отправная точка и планета могут быть точно описаны. Вы можете просто представить путь символически (в стиле mathematica). Вам нужно только оценить определенные границы, чтобы определить, в каком аспекте вы окажетесь. Если вы можете доказать, что путь почти наверняка является периодическим (как и для бильярда на рациональных выпуклых многоугольниках), вы все равно можете применить тот же трюк, но результат не будет очень практичным
Питер

12
Увы, общие геодезические на общих многогранниках не являются периодическими. (В частности, универсальные полигоны не рациональны.)
Джефф

Вы (Питер), я думаю, ссылаетесь на статью «Периодические бильярдные орбиты плотны в рациональных многоугольниках». Это не означает, что периодические пути являются общими в рациональных многоугольниках. На самом деле существует только много периодических путей (вплоть до параллелизма), поэтому у них нет шансов быть универсальными.
Сэм Нид

На самом деле, в многоугольнике "Veech" "уникально эргодические" пути являются полной мерой. Поэтому, если мы отправим Марио в случайном направлении, он (а) никогда не попадет в вершину (как говорит Джеффе в постановке задачи), (б) его путь никогда не закроется, и (в) в больших масштабах последовательность посещенные лица будут выглядеть случайными (из-за свойства "слабого смешивания"). Это не предполагает отрицательного ответа на проблему - например, цифры числа Пи тоже выглядят случайными ...
Сэм Неад
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.