Припустимо, Маріо ходить по поверхні планети. Якщо він починає ходити з відомого місця, у фіксованому напрямку, на заздалегідь задану відстань, то як швидко ми можемо визначити, де він зупиниться?
Більш формально, припустимо, нам дають опуклий багатогранник у 3-просторі, вихідну точку на поверхні , вектор напрямку (у площині деякої грані, що містить ), та відстань . Як швидко ми можемо визначити, яка грань Mario зупиниться всередині? (В якості технічного моменту припустимо, що якщо Маріо заходить у вершину , він негайно вибухає; на щастя, цього майже ніколи не відбувається.)s P v p ℓ P P
Або якщо ви віддаєте перевагу: припустимо, нам заздалегідь задають політоп , вихідну точку та вектор напрямку . Як попередньо обробити, як швидко ми можемо відповісти на питання про задану відстань ?s v ℓ
Легко простежити сліди Маріо, особливо якщо має лише трикутні грані. Щоразу, коли Маріо входить у грань через один із її країв, ми можемо за час визначити, який із двох інших ребер він повинен залишити. Хоча час роботи цього алгоритму є тільки лінійним по числа ребер перетинів, це необмежено як функція від розміру вхідного, так як відстань може бути як завгодно великим , ніж діаметр . Чи можемо ми зробити краще?О ( 1 ) ℓ П
(На практиці довжина шляху насправді не є необмеженою; існує глобальна верхня межа щодо кількості бітів, необхідних для представлення вводу. Але наполягання на цілих введеннях виникає досить неприємне числове питання - Як ми точно обчислимо , де саме зупинити? - тож давайте дотримуватимемось реальних входів та точної реальної арифметики.)
Чи відомо щось нетривіальне про складність цієї проблеми?
Оновлення: У світлі коментаря julkiewicz здається зрозумілим, що час роботи в реальній оперативній пам'яті обмежений суто з точки зору (складність політопа) неможливий. Розглянемо особливий випадок двостороннього одиничного квадрата , Маріо починається з і йде в напрямку . Маріо зупиниться на передній або задній частині квадрата залежно від паритету цілого числа . Ми не можемо обчислити функцію статі в постійна час на реальній пам'яті, якщо ми не будемо щасливі прирівнювання PSPACE і P . Але ми можемо обчислити в[ 0 , 1 ] 2 ( 0 , 1 / 2 ) ( 1 , 0 ) ⌊ л ⌋ ⌊ л ⌋ Про ( увійти л ) н увійти лчас шляхом експоненціального пошуку, що є експоненціальним вдосконаленням над наївним алгоритмом. Чи завжди досяжний багаточлен у та ?