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.
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)
fonte
Respostas:
Um algoritmo informal rápido para provar que o problema é decidível:
Suponha que um caminho na primeira enumeração seja , então o caminho é uma solução válida se houver um caminho de I i → I j e de I k → I h no labirinto original (gráfico G ).MEuNvocêS→ AEuEu→ AEuj→ BEuk→ BEuh→ PL US EuEu→ euj Euk→ euh G
Portanto, temos de expandir a e B I k → B I h traversals enumerando todos os caminhos de I i a I k e de I k a I h em G .UMAEuEu→ AEuj BEuk→ BEuh EuEu Euk Euk Euh G
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 i → M I k → . . . para alguns submaze M (existem apenas N 2 expansões possíveis).EuEu Euk . . . → MEuEu→ MEuk→ . . . M n2
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
fonte
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.
Agora considere a curva de Hilbert :
Pode-se interpretar essa curva como um "labirinto fractal" com o seguinte diagrama:
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:
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.
fonte