Passaggi che garantiscono l'uscita da un labirinto


14

Dato un labirinto bidimensionale in cui puoi dare 4 comandi "sposta su / giù / destra / sinistra". Conoscendo il labirinto ma non dove si trova la persona, come trovare la sequenza minima di comandi che garantisce l'uscita dal labirinto? Sto cercando una singola sequenza di comandi che funzionerà indipendentemente da dove nel labirinto inizi.

Supponiamo che se al nostro partner viene dato il comando "sposta a destra" quando c'è un muro sulla destra, rimarrà semplicemente dove si trova.

In altre parole, ci viene dato un labirinto e dobbiamo scegliere una sequenza di comandi. Quindi, il nostro partner verrà posizionato da qualche parte nel labirinto e seguirà la sequenza di comandi che abbiamo scelto in anticipo. Vogliamo che questa sequenza assicuri la fuga del nostro partner, indipendentemente da dove il nostro partner sia stato inizialmente posizionato. Si noti che i comandi consentiti non hanno alcuna istruzione condizionale, quindi non possono seguire una sequenza diversa a seconda del partner.

Esiste un algoritmo del tempo polinomiale per costruire una tale sequenza, data una descrizione del labirinto?

Yuval Filmus menziona questo è un caso speciale di un problema di sincronizzazione delle parole e potrebbe essere correlato a sequenze trasversali universali. Ho anche trovato un documento che sembra rilevante:

Il labirinto simultaneo che risolve problema . Stefan Funke, André Nusser, Sabine Storandt. AAAI 2017.

Sfortunatamente per i grafici generali questo sembra essere un problema irrisolto, ma mi chiedo se potrebbe esserci un buon algoritmo per questo caso specifico. Ho trovato un approccio candidato: etichettare ogni posizione con il numero di passaggi minimi necessari per uscire e tenere traccia di tutti gli agenti nel labirinto. Potrebbe essere possibile effettuare una ricerca A * in questo modo.


I commenti non sono per una discussione estesa; questa conversazione è stata spostata in chat .
Lucertola discreta

La strategia di Eppstein per gli automi monotonici è quella di raggruppare gli stati in modo che, piuttosto che cercare un percorso nella serie di stati a piena potenza, egli cerchi un percorso in un grafico con solo polinomialmente molti vertici. La generalizzazione più naturale degli intervalli in 2D che mi viene in mente è lo scafo convesso, ma sfortunatamente non è chiaro che il loro numero cresca polinomialmente .
Peter Taylor,

Risposte:


-1

Un algoritmo che funziona sempre è: metti la mano sinistra sul muro e continua così fino all'uscita. Non posso garantire il percorso più breve (per farlo, devi conoscere il labirinto, almeno parzialmente, ed essere in grado di guardare avanti. Dai un'occhiata all'algoritmo (A-star) , originariamente progettato per proprio tali compiti ).UN*


Non è possibile codificare wall-follow come una sequenza fissa di direzioni cardinali. Le scelte dipendono dai muri intorno a te, che è specificamente vietato dalla domanda.
Curtis F,

Se conosci il percorso più breve, puoi codificarlo come "sposta a sinistra, poi dritto, quindi ...". Se non conosci il percorso più breve, non puoi fornire tali indicazioni per la via più breve. Se non conosci un percorso, non puoi dare indicazioni per uscire.
vonbrand,
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.