Decidibilità del labirinto frattale


17

Un labirinto frattale è un labirinto che contiene copie di se stesso. Ad esempio, il seguente di Mark JP Wolf di questo articolo :

Inizia dal MINUS e raggiungi il PLUS. Quando inserisci una copia più piccola del labirinto, assicurati di registrare il nome della lettera di quella copia, poiché dovrai lasciare questa copia all'uscita. Devi uscire da ogni copia nidificata del labirinto in cui sei entrato, lasciando nell'ordine inverso in cui li hai inseriti (ad esempio: inserisci A, inserisci B, inserisci C, uscita C, uscita B, uscita A). Pensalo come una serie di scatole nidificate. Se non esiste alcun percorso di uscita che lascia la copia nidificata, è stato raggiunto un vicolo cieco. Il colore è stato aggiunto per rendere più chiari i percorsi, ma è solo decorativo. Labirinto Frattale

Se esiste una soluzione, breadth-first-search dovrebbe trovare una soluzione. Tuttavia, supponiamo che non ci sia soluzione al labirinto, quindi il nostro programma di ricerca funzionerebbe sempre più in profondità.

La mia domanda è: dato un labirinto frattale, come possiamo determinare se ha una soluzione o no?

O in alternativa, per un labirinto frattale di una determinata dimensione (numero di input / output per copia), c'è un limite sulla lunghezza della soluzione più breve? (se ci fosse un tale limite, potremmo cercare esaustivamente solo così in profondità)


Dopo aver letto le FAQ non credo che questo appartenga. Probabilmente non è una domanda di informatica teorica a livello di ricerca. Mi dispiace pubblicare nel posto sbagliato. Qualcuno potrebbe raccomandare il forum appropriato per porre questa domanda e / o spostarla lì?
Nick Alger,


Ho preso in considerazione l'idea di pubblicare post su math.stackexchange da quando partecipo lì, ma mi è sembrato un po 'troppo algoritmo-y. Non sapevo che ci fosse uno scambio di stack di informatica. Se i moderatori vogliono spostarlo in uno di quei posti non mi dispiacerebbe.
Nick Alger,

3
Non è ovvio per me che questo è fuori tema qui ... ovviamente le domande fuori tema di solito ottengono più voti negativi che voti positivi
Joe

7
Non riesci a rappresentare un labirinto frattale come un automa pushdown, dove la pila corrisponde alla sequenza di sottomarini in cui ti trovi? Quindi la questione della solubilità si trasformerebbe nel problema del vuoto per le lingue senza contesto, che è decidibile.
Peter Shor,

Risposte:


8

Un rapido algoritmo informale per dimostrare che il problema è decidibile:

  • supponiamo che ci siano Input / Output I 1 , . . . Io n ;nI1,...In
  • costruisci un grafico dove ogni I i , M I N U S e P L U S sono nodi, e sostituisci ogni labirinto nidificato M j con un sottografo K n (grafico completo); aggiungere i bordi tra I i , M I N U S , P L U S , M j I k secondo il labirinto; mantenere "esterno" M j I iM jsolioioMioNUSPLUSMjKnioio,MioNUS,PLUS,MjioK bordi distinti dai corrispondenti bordi "interni"IiIkdiMjcome un sottografo completo;MjioioMjioKIiIkMj
  • enumera tutti i percorsi da MINUS a PLUS in (evitando cicli);G
  • se trovi un percorso che non attraversa una copia nidificata, allora è una soluzione; altrimenti espandi ogni traversata "interna" dei labirinti nidificati di ogni percorso:Mj

Supponiamo che un percorso nella prima enumerazione sia , quindi il percorso è una soluzione valida se esiste un percorso da I iI j e da I kI h nel labirinto originale (grafico G ).MINUSUNioioUNiojBioKBiohPLUSioioiojioKiohsol

Quindi dobbiamo ampliare la e B mi kB I h attraversamenti enumerazione tutti i sentieri da ho io a che k e da I k a I h in G .UNioioUNiojBioKBiohioioioKioKiohsol

I loop infiniti vengono rilevati quando stiamo enumerando tutti i percorsi da a I k in un'espansione di un percorso che in una fase precedente già conteneva . . . M I iM I k. . . per alcuni submaze M (ci sono solo n 2 possibili espansioni).ioioioK...MioioMioK...Mn2

Una soluzione viene trovata se troviamo un'espansione del percorso che contiene solo input / output ; il labirinto non ha soluzione se non possiamo espandere ulteriormente i percorsi senza loop.ioio


Wow! Che idea intelligente. Penso che funzioni ma è ancora un po 'confuso nella mia mente, quindi mi prenderò un po' di tempo per rimuginare prima di accettare.
Nick Alger,

Ok sì abbastanza sicuro che questo algoritmo sia corretto. Osservando il commento di Peter Shor sopra, mi chiedo se potresti capovolgerlo per fornire una prova per il problema della decidibilità del vuoto linguistico senza contesto ..? Per un dato problema di vuoto del linguaggio libero dal contesto, costruisci un labirinto frattale equivalente, quindi applica questo algoritmo.
Nick Alger,

@Nick: un labirinto frattale corrisponde a un automa pushdown reversibile , dove se puoi effettuare una transizione da uno stato S a uno stato T, puoi anche effettuare la transizione da T a S. Dovrebbe essere semplice mostrare che i labirinti frattali sono in effetti equivalente agli automi pushdown reversibili. C'è un teorema che dice che (fino a fattori polinomiali) le macchine Turing reversibili hanno la stessa potenza delle normali macchine Turing. Non so se qualcuno abbia già esaminato automi pushdown reversibili prima, quindi non so se si sappia qualcosa al riguardo.
Peter Shor,

@Peter: ho trovato questo Revata reversibile Automata , ma la definizione di "reversibile" sembra diversa. (Congratulazioni PS per l'interpretazione semplice e chiara di un labirinto frattale come un PDA !!!)
Marzio De Biasi

1
2n2ioKioj iojioK

1

Questa non è una "risposta" alla mia domanda, ma piuttosto un commento esteso che le persone qui potrebbero trovare interessanti.

Sostengo che esiste una definizione di "tipo di analisi" naturale di un labirinto e una soluzione, che differisce dalla definizione di informatica / teoria dei grafi che abbiamo usato qui. In particolare, puoi avere un labirinto frattale che ha una "soluzione" sotto la definizione dell'analisi, ma sarebbe dichiarato irrisolvibile dall'algoritmo di Marizio De Biasi e dalla tecnica degli automi pushdown di Peter Shor.

MMR2S,eMf:[0,T]Mf(0)=Sf(T)=e

Consideriamo ora la curva di Hilbert :

Gif di Hilbert curve da Wikipedia

Si potrebbe interpretare questa curva come un "labirinto frattale" con il seguente diagramma: inserisci qui la descrizione dell'immagine

P

P=UNPUN-1BPB-1CPC-1DPD-1

Ora potresti sostenere che questo non è nello spirito dei labirinti frattali poiché la curva di Hilbert riempie l'intero quadrato e quindi potresti semplicemente tracciare un segmento di linea retta dall'inizio alla fine. Questa obiezione può essere facilmente ignorata, basta semplicemente usare direttamente il diagramma della curva di Hilbert, come mostrato qui:

inserisci qui la descrizione dell'immagine

Anche questo contiene una sequenza di percorsi continui uniformemente convergenti che vanno dall'inizio alla fine, con lo stesso argomento usato per mostrare la convergenza uniforme della curva di Hilbert. Tuttavia è un vero "labirinto frattale", nel senso che non riempie l'intero spazio.

Quindi abbiamo un labirinto frattale che è risolvibile dalla definizione analitica, ma irrisolvibile dalla definizione teorica del grafico ..!?

Comunque, sono abbastanza sicuro che la mia logica sia corretta, ma sembra controintuitivo, quindi se qualcuno può far luce su questo, lo apprezzerei.


Un commento ingenuo: i "sottomarini" della curva di Hilbert sono più piccoli, quindi nel "mondo continuo" funziona; nel "mondo discreto" non farai mai una mossa di "uscita" perché continui ad entrare nel primo sottomarino (come uno zoom infinito nella parte in basso a sinistra della curva di Hilbert). Assomiglia ai paradossi di Zenone
Marzio De Biasi

2
PS Penso che non ci sia bisogno di una curva frattale: una semplice linea orizzontale da s a f con un singolo sottomaze centrale (che ha una sola linea orizzontale con un sub-submaze ecc. Ecc.) Porta alle stesse considerazioni.
Marzio De Biasi,

Buon punto. Se lo fai con una sotto-scatola di larghezza 1/2 posizionata all'estrema destra, non è proprio come il paradosso di Zenone, ottieni esattamente il paradosso di Zenone. Dopo ulteriori considerazioni sembra che la definizione continua non sia adatta ai labirinti frattali poiché rende quasi ogni labirinto frattale risolvibile.
Nick Alger,

ma è adatto alla meditazione del labirinto Zen (Google in giro per la differenza tra un labirinto e un labirinto in un contesto di meditazione) :-)
Marzio De Biasi
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.