Por que o aprendizado por reforço é tão raramente usado na busca de caminhos?

12

O venerável algoritmo teórico do gráfico de caminho mais curto A * e as melhorias subsequentes (por exemplo, Hierarchical Annotated A *) são claramente a técnica de escolha para a busca de caminhos no desenvolvimento de jogos.

Em vez disso, parece-me que RL é um paradigma mais natural para mover um personagem pelo espaço do jogo.

E, no entanto, não conheço um único desenvolvedor de jogos que tenha implementado um mecanismo de busca de caminhos baseado no Reinforcement Learning. (Não deduzo disso que a aplicação de RL na busca de caminhos seja 0, apenas que é muito pequena em relação a A * e amigos.)

Seja qual for o motivo, não é porque esses desenvolvedores desconhecem a RL, como evidenciado pelo fato de que a RL é freqüentemente usada em outras partes do mecanismo de jogo.

Esta questão não é um pretexto para oferecer uma opinião sobre RL na busca de caminhos; de fato, estou assumindo que a preferência tácita por A * et al. over RL está correto - mas essa preferência não é obviamente para mim e estou muito curioso sobre o motivo, principalmente de quem tentou usar o RL para encontrar caminhos.

doug
fonte
1
"não é porque esses desenvolvedores desconhecem a RL" Você tem certeza? Essa parece ser uma grande suposição.
Tetrad
Gostaria de compartilhar alguns links ou documentos sobre RL na busca de caminhos?
falstro
3
Dadas as várias provas de otimização / limites para A * (e algoritmos relacionados), o que você acha que RL traz para a tabela para busca de caminhos?
1
Relacionado (encontrado em uma pergunta diferente): ai-blog.net/archives/000178.html
Tetrad

Respostas:

14

Eu imagino que é porque, como você não obterá nenhuma generalização útil de política com nada além de problemas com brinquedos, e a função de recompensa parecerá suspeita com uma heurística A *, a perspectiva de usar RL tende a parecer realmente maneira construtiva e ineficiente de obter resultados idênticos aos da A *, na melhor das hipóteses, mas provavelmente não serão tão bons assim.

Isso pode ser injusto para a RL e, se assim for, eu estaria interessado em ouvir o porquê, mas não estou vendo nada para indicar isso.

Muitos de nós também lembramos como era a busca de caminhos nos jogos antes da ampla adoção do A *, e não estamos ansiosos para infligir algo semelhante aos dias de hoje aos jogadores ou sofrer as conseqüências do mercado.

caos
fonte
1
+1 para sua declaração na função de recompensa. E, não, acredito que seja uma caracterização justa. O RL pode ser ótimo no que faz, mas eu não esperaria que o pathfinding rigoroso estivesse nesse conjunto. (Observe que estou deliberadamente excluindo o planejamento de movimento desta discussão. A RL foi aplicada com sucesso a esse tipo de problema).
usar o seguinte código
5

Sem saber muito sobre RL, tentarei responder sua pergunta com outras perguntas:

Usando RL, você pode determinar se é possível alcançar o ponto A do ponto B?

A RL pode garantir um comportamento de navegação reproduzível / consistente / testável?

Como os requisitos de tempo de execução de memória e CPU são comparados com A *? Da mesma forma, quanto você pode pré-calcular em comparação com, digamos, malhas de navegação?

Como a RL se comporta em um ambiente com colisão dinâmica?

Quanto mais difícil é entender e implementar a RL corretamente versus, digamos, comportamentos de direção?

Existem bons fornecedores de middleware para RL?

Talvez essas perguntas possam ajudá-lo com sua resposta.

Tetrad
fonte
De uma olhada rápida, A * parece ser mais barato de implementar, mais rápido de processar, leva menos memória, é mais previsível etc. do que RL. RL pode, no entanto, produzir resultados mais realistas.
Jari Komppa
4
Pelo contrário, os agentes de RL tendem a produzir resultados hilariamente irreais durante sua fase inicial de aprendizado. A * com alguns pequenos comportamentos de direção parece muito mais natural.
Ok, resultados mais realistas, eventualmente =) #
1128 Jari Komppa
O RL precomputa essencialmente o comportamento perfeito de localização de caminhos. É mais rápido e mais simples que o A *, mas consome muito mais memória. É quando você tenta reduzir os requisitos de memória que se tornam complicados e / ou inconsistentes.
Don Reba
5

Estou confuso com a sugestão de que RL é "um paradigma mais natural". Não vejo como o aprendizado por reforço é mapeado para o domínio do problema em um lugar tão limpo ou preciso quanto a pesquisa de gráficos. Normalmente, você não quer que um agente aprenda - você assumiu que ele já conhece o caminho. Em vez disso, você deseja que eles escolham e usem a rota mais direta disponível, e a pesquisa de gráficos facilita isso da melhor maneira possível. Se você usasse o RL offline para calcular a melhor direção a ser adotada em qualquer nó para um determinado destino, isso acabaria sendo amplamente equivalente a A *, exceto exigindo significativamente mais memória * e também exigindo que os desenvolvedores fossem muito cuidadosos em garantir que todos os nós foram explorados adequadamente durante o treinamento. E esse treinamento apenas produzirá um valor que já podemos aproximar muito bem com a equação de Pitágoras, devido ao conhecimento prévio de que o gráfico obedece às regras euclidianas de distância. (Obviamente, esse não é o caso de todas as situações em que a pesquisa de gráficos e / ou o aprendizado por reforço podem ser empregados.)

(Em relação ao problema de memória: se você tivesse 1000 posições quantizadas possíveis em um mapa, seriam 1000 nós mais 1000 * M de arestas (onde M é o número médio de nós alcançáveis ​​por qualquer outro nó). Isso, além da heurística, é suficiente para A * para operar.Para que o aprendizado por reforço funcione, pelo menos da maneira que eu imagino, você também precisará de 1000 entradas para cada uma dessas arestas de 1000 * M, para obter o valor de recompensa de seguir essa aresta para qualquer um dos 1000 São muitos dados - e cada um deles precisa ser razoavelmente preciso para evitar loops, desvios ou becos sem saída.

Kylotan
fonte
3

A busca de caminhos é um problema relativamente "resolvido", RL não é.

Com o A *, os desenvolvedores podem criar heurísticas rapidamente e aprimorá-las ao longo do tempo. RL (estou falando de Q-Learning, quando me refiro a RL aqui), leva tempo para calcular as melhores taxas de aprendizado e fatores de desconto (tempo que vale a pena gastar em outros aspectos do jogo).

Ray Dey
fonte
1

Realmente depende dos tipos de jogo. Se tudo no jogo for estático, é mais eficiente usar a pesquisa A *. No entanto, se houver outros jogadores humanos se movendo na mesma área, a pesquisa A * é falha garantida. Uma pesquisa * não faz ideia de para onde outros jogadores estão indo. Por outro lado, o RL pode modelar o comportamento de outros jogadores e encontrar um caminho melhor que leve em consideração o movimento de outros jogadores.

Lono
fonte