Influência da dimensão de autômatos celulares em classes de complexidade

9

Tomemos como exemplo a redução 3d → 2d: Qual é o custo de simular um autômato celular 3d por um autômato celular 2d?

Aqui estão algumas perguntas mais específicas:

  1. Que tipo de algoritmos terão sua complexidade de tempo alterada em quanto?

  2. Qual seria a ideia básica para a codificação; como uma grade 3d é eficientemente (ou não eficientemente ...) mapeada para uma grade 2D? (O desafio parece alcançar a comunicação entre duas células que originalmente eram vizinhas na grade 3D, mas não são mais vizinhas na grade 2d).

  3. Em particular, estou interessado no desvio da complexidade para algoritmos de complexidade exponencial (que eu acho que permanece exponencial, seja qual for a dimensão, é o caso?)

Nota: Não estou interessado em classes de baixa complexidade para as quais o método de E / S escolhido tem influência sobre complexidades. (Talvez o melhor seja supor que o método de E / S não tenha dimensão: feito localmente em uma célula específica durante um período variável de tempo.)


Algum contexto: estou interessado em reescrever graficamente locais paralelos, mas esses gráficos estão mais próximos das grades 3d (ou talvez ωd ...) do que das grades 2D, gostaria de saber o que esperar de uma implementação de hardware em um bidimensional chip de silicone.

Stéphane Gimenez
fonte

Respostas:

5

Explicarei partes deste artigo: Simulando autômatos celulares 3D com autômatos celulares 2D .

Vamos começar pela codificação da grade, uma função . Intuitivamente, não é possível preservar a distância, porque o número de células a uma distância menor que R da origem não será o mesmo. Você terá que incorporar estes cerca de R 3 células em algum o mesmo número de células, mas que será de alguma forma, da forma r 2 , mas, em seguida, você deve ter r > R . Esses R e R são um pouco como o raio da noção de vizinhança que você encontra em qualquer autômato celular.t:Z3Z2tRR3r2r>RrR

3/2dO(d3)O(d3)

No entanto, e esta é uma observação muito importante, você não obtém a mesma vizinhança do que no primeiro autômato e é por isso que eu disse anteriormente "um pouco como". Para citar o artigo:

Z3Z2

Z3Z2t:Z3Z2

É uma aposta segura dizer que a complexidade (no tempo) de qualquer algoritmo executado em uma CA 3D explodirá quando executada na codificação dessa CA 3D em uma CA 2D. O autor diz que não pode ser vinculado por nenhuma função em sua simulação. E eu digo que a explosão é pelo menos exponencial em geral, porque o tempo de propagação da informação depende da posição.

A ideia de executar algoritmos em autômatos celulares já me parece um pouco estranha, mas é pessoal. No entanto, isso não é nada comparado à idéia de uma implementação de um autômato celular em um chip de silício, ou sou apenas eu?

jmad
fonte
Muito obrigado pelo link. Essa distância arbitrária entre dois nós torna o problema muito pior do que eu pensava. No entanto, a mudança de complexidade nos algoritmos talvez não seja tão ruim, pois você não precisa simular uma implementação em um autômato 3D para executá-los em 2D. Isso significa que, para meu caso de uso, terei que confiar em uma codificação específica, pois uma solução genérica tem essa limitação terrível!
Stéphane Gimenez
Ah, e sobre a implementação de hardware possível, vamos perguntar ;-)
Stéphane Gimenez