Domanda

Ho cercato di avvolgere la testa attorno a questo problema e non riesco proprio a prenderlo.

  • Abbiamo un $ a tempi b $ matrice in cui ogni cella corrisponde a uno spazio vuoto, indicato con un punto o un muro, indicato con $ X $.

  • Ci sono due pedine in diverse posizioni all'interno del labirinto, i loro movimenti sono sincronizzati e devono lasciare il labirinto (ha più uscite) nella stessa mossa.

  • Se uno si muove e l'altro è contro un muro, è una mossa valida e l'altra rimane in posizione.

  • L'obiettivo è scrivere un algoritmo che trova le mosse più basse possibili per far uscire entrambi dal labirinto allo stesso tempo, della complessità del tempo $ mathcal o (a^2 b^2) $.

Ho ricevuto alcuni consigli per usare BFS per questo problema, ma non capisco come si occuperà di tutto il backtracking che deve essere fatto. Ho incluso due visualizzazioni con i percorsi corretti etichettati per aiutare a spiegare il problema.


Esempio 1: Posizioni di partenza del pegno mostrate come quadrati blu

Example 1


Esempio 2: Posizione di partenza del pegno mostrata come quadrato blu e quadrato

Example 2

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a cs.stackexchange
scroll top