Decidibilidade do labirinto fractal

17

Um labirinto fractal é um labirinto que contém cópias de si mesmo. Por exemplo, o seguinte de Mark JP Wolf deste artigo :

Comece no MINUS e siga para o PLUS. Ao inserir uma cópia menor do labirinto, certifique-se de registrar o nome da letra dessa cópia, pois você terá que deixar essa cópia na saída. Você deve sair de cada cópia aninhada do labirinto em que entrou, deixando na ordem inversa em que os inseriu (por exemplo: digite A, digite B, digite C, saia C, saia B, saia B, saia A). Pense nisso como uma série de caixas aninhadas. Se não houver caminho de saída saindo da cópia aninhada, você alcançou um beco sem saída. A cor foi adicionada para tornar os caminhos mais claros, mas é apenas decorativa. Labirinto Fractal

Se houver uma solução, a primeira pesquisa de largura deverá encontrar uma solução. No entanto, suponha que não haja solução para o labirinto - então nosso programa de pesquisa será executado para sempre cada vez mais fundo.

Minha pergunta é: dado um labirinto fractal, como podemos determinar se ele tem uma solução ou não?

Ou, alternativamente, para um labirinto fractal de um determinado tamanho (número de entradas / saídas por cópia), existe um limite para o comprimento da solução mais curta? (se houvesse esse limite, poderíamos pesquisar exaustivamente apenas até esse ponto)

Nick Alger
fonte
Depois de ler o FAQ, não acredito que isso pertença. Provavelmente não é uma questão de ciência da computação teórica em nível de pesquisa. Desculpe postar no lugar errado. Alguém poderia recomendar o fórum adequado para fazer esta pergunta e / ou movê-lo para lá?
Nick Alger
Eu considerei postar no math.stackexchange desde que participei lá, mas parecia um pouco de algoritmo-y. Eu não sabia que havia uma troca de pilhas de ciência da computação. Se os moderadores quiserem mudar para um desses lugares, eu não me importaria.
Nick Alger
3
Não é óbvio para mim que este é off-topic aqui ... obviamente off-topic perguntas geralmente obter mais downvotes que upvotes
Joe
7
Você não pode representar nenhum labirinto fractal como um autômato de empilhamento, onde a pilha corresponde à sequência de submazonas em que você está? Então a questão da solubilidade se transformaria no problema de vazio para linguagens sem contexto, que é decidível.
Peter Shor

Respostas:

8

Um algoritmo informal rápido para provar que o problema é decidível:

  • suponha que há Entrada / Saídas I 1 , . . . Eu n ;nEu1 1,...Eun
  • construir um gráfico , onde cada eu i , o M I N L S e o P G L S são os nós, e substituir cada aninhada labirinto H j com um K n subgráfico (gráfico completo); adicione as arestas entre I i , M I N U S , P L U S , M j I k de acordo com o labirinto; mantenha "externo" M j I iM jGEuEuMEuNvocêSPeuvocêSMjKnEuEu,MEuNvocêS,PeuvocêS,MjEuk arestas distintas das correspondentes arestas "internas"IiIkdeMjcomo um subgráfico completo;MjEuEuMjEukEuEuEukMj
  • enumere todos os caminhos de MENOS a MAIS em (evitando ciclos);G
  • se você encontrar um caminho que não atravessa uma cópia aninhada, é uma solução; caso contrário, expanda cada travessia "interna" dos labirintos aninhados de cada caminho:Mj

Suponha que um caminho na primeira enumeração seja , então o caminho é uma solução válida se houver um caminho de I iI j e de I kI h no labirinto original (gráfico G ).MEuNvocêSUMAEuEuUMAEujBEukBEuhPeuvocêSEuEuEujEukEuhG

Portanto, temos de expandir a e B I kB I h traversals enumerando todos os caminhos de I i a I k e de I k a I h em G .UMAEuEuUMAEujBEukBEuhEuEuEukEukEuhG

Ciclos infinitos são detectados quando estamos enumerar todos os caminhos de a I K em uma expansão de um caminho que numa fase anterior já contido . . . M I iM I k. . . para alguns submaze M (existem apenas N 2 expansões possíveis).EuEuEuk...MEuEuMEuk...Mn2

A solução é encontrada, se encontrarmos uma expansão caminho que contenha apenas entradas / saídas ; o labirinto não tem solução se não pudermos expandir ainda mais os caminhos sem loops.EuEu

Marzio De Biasi
fonte
Uau! Que ideia inteligente. Eu acho que isso funciona, mas ainda está um pouco confuso em minha mente, então vou demorar um pouco para refletir sobre isso antes de aceitar.
Nick Alger
Ok, sim, com certeza esse algoritmo está correto. Observando o comentário de Peter Shor acima, pergunto-me se você poderia mudar isso para fornecer uma prova do problema de decidibilidade do vazio da linguagem sem contexto ..? Para um determinado problema de vazio de linguagem sem contexto, construa um labirinto fractal equivalente e aplique esse algoritmo.
Nick Alger
@ Nick: Um labirinto fractal corresponde a um autômato pushdown reversível , onde se você pode fazer a transição de um estado S para um estado T, também pode fazer a transição de T para S. Deveria ser simples mostrar que os labirintos fractal são de fato, equivalente a autômatos de empilhamento reversíveis. Existe um teorema dizendo que (até fatores polinomiais) as máquinas de Turing reversíveis têm o mesmo poder que as máquinas de Turing comuns. Não sei se alguém já examinou autômatos de empilhamento reversível antes, então não sei se há algo sobre eles.
Peter Shor
@ Peter: Encontrei este autômato de empilhamento reversível , mas a definição de "reversível" parece diferente. (Parabéns PS para a interpretação simples e limpo de um labirinto fractal como um PDA !!!)
Marzio de Biasi
11
2n2EukEuj EujEuk
1

Esta não é uma "resposta" para minha pergunta, mas um comentário estendido que as pessoas aqui podem achar interessantes.

Afirmo que existe uma definição "tipo de análise" natural de labirinto e solução, e difere da definição de ciência da computação / teoria de grafos que usamos aqui. Em particular, você pode ter um labirinto fractal que possui uma "solução" sob a definição de análise, mas seria declarado insolúvel pelo algoritmo de Marizio De Biasi e pela técnica de autômatos de empilhamento de Peter Shor.

MMR2s,eMf:[0 0,T]Mf(0 0)=sf(T)=e

Agora considere a curva de Hilbert :

Hilbert curva gif da wikipedia

Pode-se interpretar essa curva como um "labirinto fractal" com o seguinte diagrama: insira a descrição da imagem aqui

P

P=UMAPUMA-1 1BPB-1 1CPC-1 1DPD-1 1

Agora você pode argumentar que isso não está no espírito dos labirintos fractais, já que a curva de Hilbert preenche todo o quadrado e, portanto, você pode simplesmente desenhar um segmento de linha reta do início ao fim. Essa objeção é facilmente anulada - basta usar o diagrama de curva de hilbert incorporado diretamente, como mostrado aqui:

insira a descrição da imagem aqui

Isso também contém uma sequência de caminhos contínuos uniformemente convergentes que vão do início ao fim, pelo mesmo argumento usado para mostrar a convergência uniforme da curva de Hilbert. No entanto, é um verdadeiro "labirinto fractal" no sentido de que não preenche todo o espaço.

Assim, temos um labirinto fractal que pode ser resolvido pela definição analítica, mas não pode ser resolvido pela definição teórica do gráfico ..!?

De qualquer forma, tenho certeza de que minha lógica está correta, mas parece contra-intuitivo, portanto, se alguém puder lançar alguma luz sobre isso, eu apreciaria.

Nick Alger
fonte
Um comentário ingênuo: as "sub-imagens" da curva de Hilbert são menores, portanto, no "mundo contínuo" funciona; no "mundo discreto", você nunca fará uma "saída" porque continua a entrar na primeira sub-imagem (como um zoom sem fim na parte inferior esquerda da curva de Hilbert). Assemelha-se ao paradoxos de Zenão
Marzio De Biasi
2
PS Penso que não há necessidade de uma curva fractal: uma simples linha horizontal de s a f com uma única submaze central (que tem uma única linha horizontal com uma sub-submaze ecc. Ecc.) Leva às mesmas considerações.
Marzio De Biasi
Bom ponto. Se você fizer isso com uma sub-caixa de largura 1/2 colocada na extrema direita, não é apenas como o paradoxo do zeno, você obtém exatamente o paradoxo do zeno. Após uma análise mais aprofundada, parece que a definição contínua não é adequada para labirintos fractais, pois torna quase todo labirinto fractal solucionável.
Nick Alger
mas é bem adequado para meditação Zen labirinto (Google ao redor para a diferença entre um labirinto e labirinto em um contexto de meditação) :-)
Marzio De Biasi