Super Mario Galaxy problem


140

Suponha que Mario esteja andando na superfície de um planeta. Se ele começar a andar de um local conhecido, em uma direção fixa, por uma distância predeterminada, com que rapidez podemos determinar onde ele irá parar?

insira a descrição da imagem aqui

Mais formalmente, suponha que recebamos um pólipo convexo no espaço 3, um ponto de partida s na superfície de P , um vetor de direção v (no plano de alguma faceta que contém p ) e uma distância . Com que rapidez podemos determinar qual faceta de P Mario vai parar lá dentro? (Como ponto técnico, suponha que, se Mario entra em um vértice de P , ele explode imediatamente; felizmente, isso quase nunca acontece.)PsPvpPP

Ou, se preferir: suponha que recebamos o politopo , o ponto de origem s e o vetor de direção v com antecedência. Após o pré-processamento, com que rapidez podemos responder à pergunta para uma determinada distância ?Psv

É fácil simplesmente seguir os passos de Mario, especialmente se tiver apenas facetas triangulares. Sempre que Mario entra em uma faceta através de uma de suas arestas, podemos determinar em O ( 1 ) tempo em que das outras duas arestas ele deve sair. Embora o tempo de execução deste algoritmo só é linear no número de cruzamentos de borda, é ilimitada como uma função do tamanho da entrada, porque a distância poderia ser arbitrariamente maior do que o diâmetro de P . Podemos fazer melhor?PO(1)P

(Na prática, o comprimento do caminho não é realmente ilimitado; existe um limite superior global em termos do número de bits necessários para representar a entrada. Mas insistir em entradas inteiras levanta alguns problemas numéricos bastante desagradáveis ​​- Como calculamos exatamente onde parar? - então, vamos nos ater às entradas reais e à aritmética exata real.)

Há algo não trivial conhecido sobre a complexidade desse problema?

Atualização: À luz do comentário de julkiewicz, parece claro que um tempo de execução na RAM real é limitado exclusivamente em termos de (a complexidade do polítopo) é impossível. Consideremos o caso especial de uma unidade quadrada de dois lados [ 0 , 1 ] 2 , com Mario a partir de ( 0 , 1 / 2 ) e caminhando em direcção ( 1 , 0 ) . Mario para na frente ou atrás do quadrado, dependendo da paridade do número inteiro . Não podemos calcular a função de piso em tempo constante na RAM real, a menos que estejamos felizesn[0,1]2(0,1/2)(1,0)igualando PSPACE e P . Mas podemos calcular no tempo O ( log ) por pesquisa exponencial, que é uma melhoria exponencial em relação ao algoritmo ingênuo. Polinomial vez em é n e log sempre alcançável?O(log)nlog


5
Pensei em um problema mais simples, ou seja: temos um polígono simples e um feixe de luz viajando de um determinado ponto. Quando atinge um limite, é espelhado. Queremos saber onde o feixe terminará sua viagem após a distância especificada. Poderia (quase) ser reduzido a este, pegando um politopo que é um prisma de uma altura muito pequena com os lados superior e inferior na forma de um determinado polígono. Talvez resolver isso primeiro possa ajudar.
julkiewicz

3
“[Você] polinômio em n e log l” não faz sentido para mim. Se depender de l, também deverá depender das coordenadas de P e se você adicionar log de todos os números na entrada, esse é exatamente o número de bits necessários para representar a entrada quando as coordenadas de entrada estiverem restritas a números inteiros. Eu acho que você está olhando para a complexidade do tempo em uma RAM real quando a entrada é fornecida como uma sequência de bits.
Tsuyoshi Ito

4
Mesmo decidir se Mario atinge um vértice (independente de ) parece difícil. Acho que aqui encontramos muitas incógnitas na área da dinâmica do bilhar.
Joseph O'Rourke

2
Não está realmente relacionado, mas este artigo sobre a NP-Completeness de Super Mario é realmente incrível: arxiv.org/pdf/1203.1895v1.pdf
Lamine

10
"Talvez seja por isso que seja tão bem avaliado", disse alguém completamente apático sobre a teoria da complexidade.
Jeffε

Respostas:


7

Este problema é muito, muito difícil. Poderíamos simplificá-lo para facilitar, da seguinte maneira.

  1. Pπ

  2. Podemos assumir que o politopo não é verdadeiramente tridimensional, mas sim o "duplo" de um polígono; isso parece um pouco com uma fronha. Podemos simplificar ainda mais e supor que o polígono tenha lados iguais e paralelos; por exemplo um quadrado, como no jogo Astroids.

O(log())

Se não assumimos racionalidade, mas assumimos que o pólipo é o dobro de um polígono, estamos discutindo a teoria de "cortar seqüências em bilhar irracional". Parece que essencialmente nada se sabe aqui; por exemplo, veja a sentença final desta palestra de Corinna Ulcigrai.

Se não fizermos nenhuma suposição, bem, não consigo pensar em nada na literatura.

O(log())


0

Eu acho que você pode fazer melhor do que linear. Eu sou novo na ciência da computação teórica, então me perdoe se isso é lixo.

Algumas idéias gerais (de valor variável):

  • Se dermos um símbolo a cada faceta, a órbita de Mario sobre eles pode ser descrita como uma corda, onde o símbolo final na corda é a resposta.
  • Podemos presumir, sem perda de generalidade, que Mario começa no limite (basta andar para trás e estender l até o limite)
  • O espaço 2D das posições e ângulos iniciais pode ser particionado pela próxima aresta. Então, começando na aresta a, x unidades da parte inferior, com um ângulo de a, terminamos na aresta V depois de cruzar uma faceta.
  • Nesse ponto, estamos em outra extremidade com outra orientação, para que possamos chamar a função recursivamente para subdividir o espaço em partições de cadeias de dois símbolos e assim por diante.
  • Nesse ponto, terminamos se dissermos que o espaço precisa ser discretizado para que o problema seja implementado em uma TM. Isso significa que toda órbita deve ser periódica, porque há apenas muitos pontos finitos no planeta discretizado. Podemos calcular a função descrita acima até termos órbitas para todos os pontos de partida e armazenar essas informações. Então o problema se torna O (1).
  • Talvez isso seja um pouco fora de controle. Alguns pesquisadores me dizem que quase todas as órbitas de bilhar dentro de polígonos convexos racionais são periódicas (ou seja, as órbitas periódicas são densas). Portanto, para planetas quadrados (digamos), a mesma abordagem pode funcionar.
  • Outra abordagem seria considerar o sistema como um gerador / reconhecedor de strings (novamente atribuindo a cada faceta seu próprio símbolo). Se o idioma tiver uma classe de complexidade conhecida, essa é sua resposta. Se você ampliar a família de politopos para não-convexos e para qualquer dimensão, poderá capturar uma classe muito ampla de idiomas.

Isso realmente não constitui uma resposta, mas preciso voltar ao trabalho. :)


10
"Neste ponto, terminamos se dissermos que o espaço precisa ser discretizado para que o problema seja implementado em uma TM. Isso significa que toda órbita deve ser periódica, porque há apenas muitos pontos finitos no planeta discretizado". Você acabou de destruir a parte interessante do problema. Eu não quero assumir a entrada é discreta; Quero resolver o problema contínuo real, mesmo que isso exija um computador ideal que possa fazer aritmética real exata em tempo constante. Em particular, o caminho de Mario nunca precisa tocar em um vértice.
Jeffε

Achei que era muito fácil. Você poderia fazer a versão contínua em uma máquina finita, desde que o ponto de partida e o planeta possam ser descritos finitamente. Você pode apenas representar o caminho simbolicamente (no estilo mathematica). Você só precisa avaliar certos limites para descobrir em qual faceta você termina. Se você puder provar que o caminho é quase certamente periódico (como é para bilhar em polígonos convexos racionais), você ainda pode aplicar o mesmo truque, mas o resultado não seria muito prático.
Peter

12
Infelizmente, geodésicos genéricos em poliedros genéricos não são periódicos. (Em particular, polígonos genéricos não são racionais.)
Jeffε

Penso que você (Peter) está se referindo ao artigo "Órbitas periódicas de bilhar são densas em polígonos racionais". Isso não significa que caminhos periódicos são genéricos em polígonos racionais. De fato, só existem muitos caminhos periódicos contáveis ​​(até o paralelismo), portanto eles não têm chance de serem genéricos.
Sam Nead 18/10/2015

De fato, em um polígono "Veech", os caminhos "exclusivamente ergódicos" são a medida completa. Portanto, se enviarmos Mario para uma direção aleatória, ele (a) nunca atingirá um vértice (como Jeffe diz na declaração do problema), (b) seu caminho nunca se fechará e (c) em larga escala, a sequência de os rostos visitados terão uma aparência aleatória (devido a uma propriedade "mistura fraca"). Isso não sugere uma resposta negativa para o problema - por exemplo, os dígitos do pi também olhar aleatório ...
Sam Nead
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.