Supponiamo che Mario stia camminando sulla superficie di un pianeta. Se inizia a camminare da una posizione nota, in una direzione fissa, per una distanza predeterminata, quanto velocemente possiamo determinare dove si fermerà?
Più formalmente, supponiamo che ci venga dato un polytope convesso in 3 spazi, un punto iniziale sulla superficie di , un vettore di direzione (nel piano di una sfaccettatura contenente ) e una distanza . Quanto velocemente possiamo determinare quale aspetto di Mario si fermerà all'interno? (Dal punto di vista tecnico, supponiamo che se Mario si imbatte in un vertice di , esplode immediatamente; per fortuna, questo non accade quasi mai .)
O se preferisci: supponiamo che ci vengano dati in anticipo il politopo , il punto di origine e il vettore di direzione . Dopo la preelaborazione, quanto velocemente possiamo rispondere alla domanda per una data distanza ?
È facile tracciare semplicemente i passi di Mario, specialmente se ha solo sfaccettature triangolari. Ogni volta che Mario entra in una sfaccettatura attraverso uno dei suoi bordi, possiamo determinare nel tempo quale degli altri due bordi deve passare. Sebbene il tempo di esecuzione di questo algoritmo è lineare solo nel numero di incroci di bordo, è illimitato in funzione della dimensione di ingresso, perché la distanza potrebbe essere arbitrariamente maggiore del diametro di . Possiamo fare di meglio?
(In pratica, la lunghezza del percorso non è in realtà illimitata; esiste un limite superiore globale in termini di numero di bit necessari per rappresentare l'input. Ma insistere su input di numeri interi solleva alcuni problemi numerici piuttosto sgradevoli: come calcolare esattamente dove smettere? - quindi atteniamoci agli input reali e all'esatta aritmetica reale.)
Si sa qualcosa di non banale sulla complessità di questo problema?
Aggiornamento: alla luce del commento di julkiewicz, sembra chiaro che un tempo di esecuzione della RAM reale limitato esclusivamente in termini di (la complessità del politipo) è impossibile. Considera il caso speciale di un'unità quadrata su due lati , con Mario che inizia da e cammina in direzione . Mario si fermerà sul fronte o sul retro del quadrato a seconda della parità dell'intero . Non possiamo calcolare la funzione di piano in un tempo costante sulla reale RAM, a meno che non siamo felici equiparare PSPACE e P . Ma possiamo calcolare intempo dalla ricerca esponenziale, che è un miglioramento esponenziale rispetto all'algoritmo ingenuo. Il tempo polinomiale in e sempre raggiungibile?