Ottimo risolutore di labirinti miopi


10

Stavo scherzando con la demo di Google Blocky Maze e mi sono ricordato della vecchia regola che se vuoi risolvere un labirinto, tieni semplicemente la mano sinistra contro il muro. Funziona con qualsiasi labirinto collegato in modo semplice e può essere implementato da un trasduttore finito.

Lascia che il nostro robot sia rappresentato da un trasduttore con le seguenti azioni e osservabili:

  • Azioni: vai avanti ( ), gira a sinistra ( ), gira a destra ( )
  • Osservabili: muro davanti ( ), nessun muro davanti ( )

Quindi possiamo costruire il risolutore del labirinto sinistro come (scusate il mio disegno pigro):

trasduttore per risolvere il labirinto

Dove vedere un osservabile ci farà seguire il limite appropriato fuori dallo stato mentre eseguiamo l'azione associata a quel limite. Questo automa risolverà tutti i labirinti semplicemente connessi, anche se potrebbe richiedere del tempo dopo vicoli ciechi. Chiamiamo un altro automa migliore di A se:B UN

  1. fa rigorosamente più passi su solo un numero finito di labirinti, eB

  2. compie rigorosamente meno passaggi (in media; per varianti probabilistiche) su un numero infinito di labirinti.B

Le mie due domande:

  1. Esiste un automa finito migliore di quello disegnato sopra? Cosa succede se consentiamo trasduttori probabilistici?

  2. Esiste un automa finito per risolvere labirinti che non sono necessariamente semplicemente collegati?


@jmad e io abbiamo avuto una discussione abbastanza fruttuosa in chat su questa domanda. Se stai pensando alla domanda (in particolare le definizioni di meglio di ), ti consiglio di dare un'occhiata alla trascrizione.
Artem Kaznatcheev,

Non riesco a vedere come questa domanda si riferisca all'intelligenza artificiale (in particolare ai nostri agenti di non modificare il loro comportamento dati i dati di istanza), ma non sono un esperto in questo campo.
Raffaello

3
La risoluzione dei labirinti di @Raphael e la ricerca del percorso (dalla revisione di BFS, DFS, A * e in corsia) sono programmi di base in un corso di introduzione all'intelligenza artificiale. Concordo, come intelligenza, non è particolarmente eccitante, ma se l'IA mi ha insegnato qualcosa: la maggior parte dell'IA è solo un problema di ricerca.
Artem Kaznatcheev il

Risposte:


6

Se ho capito bene la domanda, penso che puoi applicare un trucco per accelerare per ottenere automi più veloci su un numero infinito di labirinti (a condizione che l'uscita sia posizionata su uno dei bordi): puoi semplicemente usare gli stati interni per memorizzare un numero finito di passi e riconoscere i vicoli ciechi come quello nella figura:

inserisci qui la descrizione dell'immagine

Quando un automa che segue a destra è in posizione e il suo stato "segnala" che ha appena seguito un quadrato chiuso ( con codifica di dimensioni fisse, non un quadrato grande arbitrario ), allora può tranquillamente girare a sinistra ed evitare di visitare il vicolo cieco zona. Come sottolineato nel mio commento qui sotto, l'automa applicherà la scorciatoia su ogni labirinto che contiene uno (o più) "sommersi" come quello nella figura, quindi funzionerà meglio su infiniti labirinti. Su labirinti che non contengono un sommergibile come quello nella figura si esibirà come un normale automa che segue la destra.UN

Allo stesso modo è possibile codificare un numero finito di forme di dimensioni fisse diverse per evitare vicoli ciechi e accelerare l'automa. Di conseguenza, non esiste un risolutore di labirinti miopi "ottimale" per labirinti semplicemente collegati con l'uscita posta sul bordo.

Il trucco funziona se l'ingresso è posizionato all'interno del labirinto e anche l'uscita sul confine; ma se l'uscita si trova all'interno del labirinto, allora non funziona perché tutte le posizioni devono essere visitate e in questo caso il tuo risolutore miope è ottimale.

Ovviamente non puoi applicare lo stesso trucco per risolvere labirinti non semplicemente connessi (ma dovrebbe funzionare se c'è un limite superiore fisso sulla dimensione di ciascun componente non collegato).


Questo è un bel trucco per il caso di entrata-uscita sul confine (che è una sottoclasse di labirinti semplicemente connessi). Mostra che in questo caso limitato, l'ordinamento che ho definito non ha elementi minimi. Non penso che possa essere generalizzato a tutti i labirinti semplicemente collegati (che è l'insieme della mano sinistra che segue i lavori su).
Artem Kaznatcheev,

@ArtemKaznatcheev: penso che il trucco funzioni sui labirinti con l'entrata all'interno del labirinto e anche l'uscita sul confine. Inoltre funziona su (infiniti) labirinti in cui c'è un sottomesso come quello nella figura). Modificherò la domanda per chiarire questo punto.
Vor

K

4K-1

5

Domanda 1

Penso che la tua definizione di meglio sia troppo rigorosa, nel senso che il finito è troppo restrittivo (ma non ho una definizione migliore).

R=(Rio)ioRioioLUNRUNLRLUNRUNL

UNRRUNR

I trasduttori probabilistici possono probabilmente essere esclusi poiché un trasduttore deterministico sarà più veloce su questi infiniti set di labirinti.

Domanda 2 (grazie alla discussione con OP )

No. (fonte: questo innovativo articolo di Lothar Budach. Il teorema è più chiaramente affermato nell'abstract di questo articolo di Frank Hoffmann.)


sì, avremmo bisogno di definire alcune classi di equivalenza su labirinti sotto trasformazioni standard (come rotazioni e riflessioni) per rendere la parete sinistra e destra seguendo l'equivalente. Sfortunatamente, la sezione della tua domanda 1 non risponde alla mia prima domanda . Dimostri che ci sono risolutori incomparabili (nell'ordine parziale "migliore di") (come la mano sinistra e la mano destra se non facciamo ipotesi di simmetria) ma non prova che non ce ne sia uno che sia meglio della mano sinistra.
Artem Kaznatcheev,

UNBUNBLRRLLRUNUNLLUN

UNBBUN

UNB

#{UN(M)<B(M)||M|n}/#{M||M|n}=o(1)
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.