Perché l'apprendimento del rinforzo è così raramente utilizzato nella ricerca di percorsi?


12

Il venerabile algoritmo teorico A * del percorso più breve e i successivi miglioramenti (ad es. Hierarchical Annotated A *) è chiaramente la tecnica di scelta per l'individuazione del percorso nello sviluppo del gioco.

Invece, mi sembra che RL sia un paradigma più naturale per spostare un personaggio in uno spazio di gioco.

Eppure non sono a conoscenza di uno sviluppatore di giochi singoli che ha implementato un motore di tracciamento basato sull'apprendimento di rinforzo. (Non deduco da ciò che l'applicazione di RL nel pathfinding sia 0, solo che è molto piccola rispetto ad A * e agli amici.)

Qualunque sia la ragione, non è perché questi sviluppatori non sono a conoscenza di RL, come dimostra il fatto che RL è spesso utilizzato altrove nel motore di gioco.

Questa domanda non è un pretesto per offrire un'opinione su RL nel pathfinding; infatti, presumo che la preferenza tacita per A * et al. su RL è corretto, ma quella preferenza non è ovviamente per me e sono molto curioso del motivo, in particolare da parte di chiunque abbia provato a utilizzare RL per l'individuazione dei percorsi.


1
"Non è perché questi sviluppatori non sono a conoscenza di RL" Sei sicuro? Sembra un grande presupposto.
Tetrad

Vuoi condividere alcuni link o documenti su RL nel pathfinding?
falstro,

3
Date le varie prove di ottimalità / limiti per A * (e relativi algoritmi), cosa pensi che RL porti sul tavolo per l'individuazione dei percorsi?

1
Related (trovato questo in una domanda diversa): ai-blog.net/archives/000178.html
Tetrade

Risposte:


14

Immagino che sia perché, dal momento che non otterrai alcuna utile generalizzazione della politica da tutto tranne che dai problemi del giocattolo, e la funzione di ricompensa sembrerà sospettosamente un euristico A *, la prospettiva di usare RL tende a sembrare davvero modo troppo costruito e inefficiente di ottenere risultati identici a quelli di A *, ma probabilmente non saranno così buoni.

Questo può essere ingiusto per RL, e in tal caso sarei interessato a sapere perché, ma non vedo davvero nulla che lo indichi.

Molti di noi ricordano anche com'era il pathfinding nei giochi prima della diffusa adozione di A * e non sono desiderosi di infliggere ai giocatori qualcosa di simile a quei giorni o di subire le conseguenze del mercato.


1
+1 per la tua dichiarazione sulla funzione di ricompensa. E, no, credo che sia una giusta caratterizzazione. RL può essere bravo in quello che fa, ma non mi aspetterei che in questo set ci sia un rigido pathfinding. (Nota che sto deliberatamente escludendo la pianificazione del movimento da questa discussione. RL è stato applicato con successo a quel tipo di problema).
Ritorno

5

Senza sapere molto su RL, tenterò di rispondere alla tua domanda con altre domande:

Usando RL, puoi determinare se è possibile raggiungere il punto A dal punto B?

RL può garantire un comportamento di navigazione riproducibile / coerente / testabile?

Come si confrontano i requisiti di tempo di esecuzione della memoria e della CPU rispetto ad A *? Allo stesso modo, quanto puoi pre-calcolare rispetto, ad esempio, alle mesh nav?

Come funziona RL in un ambiente con una collisione dinamica?

Quanto è più difficile comprendere e implementare correttamente RL rispetto, per esempio, ai comportamenti di guida?

Esistono buoni fornitori di middleware per RL?

Forse quelle domande possono aiutarti con la tua risposta.


Da una rapida occhiata, A * sembra essere più economico da implementare, più veloce da elaborare, richiede meno memoria, è più prevedibile, ecc. Rispetto a RL. RL potrebbe, tuttavia, produrre risultati più realistici.
Jari Komppa,

4
Al contrario, gli agenti di RL tendono a produrre risultati esilaranti e irreali durante la fase iniziale di apprendimento. Un * con alcuni piccoli comportamenti di guida sembra molto più naturale.

Bene, risultati più realistici alla fine =)
Jari Komppa,

RL essenzialmente precompone il comportamento perfetto per il pathfinding. È più veloce e più semplice di A *, ma richiede molta più memoria. È quando si tenta di ridurre i requisiti di memoria che diventa complicato e / o incoerente.
Don Reba,

5

Sono confuso dal suggerimento che RL sia "un paradigma più naturale". Non vedo come l'apprendimento del rinforzo si associ al dominio problematico da nessuna parte vicino in modo pulito o accurato come fa la ricerca di grafici. In genere non vuoi che un agente apprenda, hai pensato che conoscessero già il percorso. Invece, vuoi che scelgano e utilizzino il percorso più diretto disponibile e la ricerca grafica facilita ciò in un modo quasi ottimale. Se dovessi utilizzare RL offline per calcolare la migliore direzione da prendere in un dato nodo per una determinata destinazione, ciò comporterebbe un equivalente sostanzialmente di A *, tranne che richiede molta più memoria * e richiede anche che gli sviluppatori siano stati molto attenti a assicurarsi che tutti i nodi siano stati adeguatamente esplorati durante l'addestramento. E quell'allenamento produrrà solo un valore che possiamo già approssimare molto bene con l'equazione di Pitagora, grazie alla conoscenza anticipata che il grafico obbedisce alle regole euclidee della distanza. (Questo, ovviamente, non è il caso di tutte le situazioni in cui è possibile utilizzare la ricerca di grafici e / o l'apprendimento per rinforzo.)

(Per quanto riguarda il problema di memoria: se su una mappa c'erano 1000 possibili posizioni quantizzate, sono 1000 nodi più 1000 * M bordi (dove M è il numero medio di nodi raggiungibili da qualsiasi altro nodo.) Questo, oltre all'euristica, è sufficiente per A * per funzionare. Affinché l'apprendimento del rinforzo funzioni, almeno nel modo in cui lo prevedo, occorrerebbero anche 1000 voci per ciascuno di quei bordi da 1000 * M, per ottenere il valore di ricompensa che segue quel bordo per uno qualsiasi dei 1000 possibili destinazioni. Sono molti i dati - e ogni singolo bit deve essere ragionevolmente accurato per evitare loop, deviazioni o vicoli ciechi.


3

Il pathfinding è un problema relativamente "risolto", RL no.

Con A *, gli sviluppatori possono creare euristiche rapidamente e migliorarle nel tempo. RL (sto parlando di Q-Learning, quando mi riferisco a RL qui), richiede tempo per calcolare i migliori tassi di apprendimento e fattori di sconto (tempo che vale la pena spendere per altri aspetti del gioco).


1

Dipende molto dai tipi di gioco. Se tutto nel gioco è statico, è più efficiente utilizzare la ricerca A *. Tuttavia, se ci sono altri giocatori umani che si muovono nella stessa area, la ricerca A * è garantita. Una ricerca * non ha idea di dove si stiano dirigendo gli altri giocatori. D'altra parte, RL può modellare il comportamento degli altri giocatori e trovare un percorso migliore che tenga conto del movimento degli altri giocatori.

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.