Mengapa Penguatan Pembelajaran sangat jarang digunakan dalam merintis jalan?


12

Algoritma teoritik jalur terpendek grafik A * dan perbaikan selanjutnya (misalnya Hierarchical Annotated A *) jelas merupakan teknik pilihan untuk merintis jalan dalam pengembangan game.

Sebaliknya, menurut saya RL adalah paradigma yang lebih alami untuk memindahkan karakter di sekitar ruang permainan.

Namun saya tidak mengetahui adanya pengembang game tunggal yang telah mengimplementasikan mesin pathfinding berbasis pembelajaran Reinforcement Learning. (Saya tidak menyimpulkan dari sini bahwa aplikasi RL dalam pathfinding adalah 0, hanya saja itu sangat kecil relatif terhadap A * dan teman-teman.)

Apa pun alasannya, itu bukan karena para pengembang ini tidak menyadari RL, sebagaimana dibuktikan oleh fakta bahwa RL sering digunakan di tempat lain di mesin permainan.

Pertanyaan ini bukan alasan untuk menawarkan pendapat tentang RL dalam merintis jalan; sebenarnya, saya berasumsi bahwa preferensi diam-diam untuk A * et al. lebih dari RL benar - tetapi preferensi itu tidak jelas bagi saya dan saya sangat ingin tahu tentang alasannya, terutama dari siapa pun yang telah mencoba menggunakan RL untuk merintis jalan.


1
"Bukan karena pengembang ini tidak mengetahui RL" Apakah Anda yakin? Itu sepertinya asumsi besar.
Tetrad

Ingin berbagi beberapa tautan atau makalah tentang RL dalam merintis jalan?
Falstro

3
Dengan adanya berbagai bukti optimalitas / batas untuk A * (dan algoritme terkait), menurut Anda apa yang dibawa RL ke tabel untuk penelusuran jalur?

1
Terkait (menemukan ini di Pertanyaan yang berbeda): ai-blog.net/archives/000178.html
Tetrad

Jawaban:


14

Saya akan membayangkan itu karena, karena Anda tidak akan mendapatkan generalisasi kebijakan yang berguna selain masalah mainan, dan fungsi hadiah akan terlihat mencurigakan seperti heuristik A *, prospek menggunakan RL cenderung terlihat seperti benar-benar Overbuilt, cara yang tidak efisien untuk mendapatkan hasil yang identik dengan A * paling bagus, tetapi mungkin tidak akan sebagus itu.

Ini mungkin tidak adil untuk RL, dan jika demikian saya akan tertarik mendengar mengapa, tapi saya tidak benar-benar melihat sesuatu untuk menunjukkan itu.

Banyak dari kita juga ingat seperti apa pathfinding dalam game sebelum adopsi A * yang meluas, dan tidak ingin melakukan apa pun yang menyerupai pemain saat itu, atau menderita konsekuensi pasar karena melakukannya.


1
+1 untuk pernyataan Anda tentang fungsi hadiah. Dan, tidak, saya percaya itu adalah karakterisasi yang adil. RL bisa menjadi hebat dalam hal itu, tapi saya tidak akan mengharapkan pathfinding yang ketat di set itu. (Perhatikan bahwa saya sengaja mengecualikan perencanaan gerak dari diskusi ini. RL telah berhasil diterapkan pada masalah semacam itu).
Throwback1986

5

Tanpa tahu banyak tentang RL, saya akan berusaha menjawab pertanyaan Anda dengan pertanyaan lain:

Dengan menggunakan RL, dapatkah Anda menentukan apakah mungkin untuk mencapai titik A dari titik B?

Bisakah RL menjamin perilaku navigasi yang dapat direproduksi / konsisten / dapat diuji?

Bagaimana perbandingan antara persyaratan waktu menjalankan memori dan CPU vs A *? Demikian juga, berapa banyak yang dapat Anda precompute dibandingkan dengan, katakanlah, nav mesh?

Bagaimana RL adil dalam lingkungan dengan benturan dinamis?

Seberapa jauh lebih sulit untuk memahami dan mengimplementasikan RL dengan benar vs, katakanlah, perilaku kemudi?

Apakah ada penyedia middleware yang bagus untuk RL?

Mungkin pertanyaan-pertanyaan itu dapat membantu Anda dengan jawaban Anda.


Dari pandangan sekilas, A * tampaknya lebih murah untuk diimplementasikan, lebih cepat untuk diproses, membutuhkan lebih sedikit memori, lebih mudah diprediksi, dll. Daripada RL. RL mungkin, bagaimanapun, menghasilkan hasil yang lebih realistis.
Jari Komppa

4
Sebaliknya, agen RL cenderung menghasilkan hasil yang tidak nyata yang lucu selama fase pembelajaran awal mereka. A * dengan beberapa perilaku kemudi kecil terlihat jauh lebih alami.

Oke, hasil yang lebih realistis pada akhirnya =)
Jari Komppa

RL pada dasarnya mencegah perilaku pencarian jalan yang sempurna. Ini lebih cepat dan lebih sederhana daripada A *, tetapi membutuhkan lebih banyak memori. Itu adalah ketika Anda mencoba untuk menurunkan persyaratan memori yang menjadi rumit dan / atau tidak konsisten.
Don Reba

5

Saya bingung dengan saran bahwa RL adalah "paradigma yang lebih alami". Saya tidak melihat bagaimana penguatan peta pembelajaran ke domain masalah di dekat bersih atau seakurat pencarian grafik. Biasanya Anda tidak ingin agen belajar - Anda berasumsi bahwa mereka sudah mengetahui rute. Alih-alih, Anda ingin mereka memilih dan menggunakan rute paling langsung yang tersedia, dan pencarian grafik memudahkannya dalam cara yang hampir optimal. Jika Anda menggunakan RL offline untuk menghitung arah terbaik untuk diambil pada titik tertentu untuk tujuan apa pun, yang pada akhirnya akan secara luas setara dengan A *, kecuali membutuhkan lebih banyak memori * dan juga mengharuskan pengembang sangat berhati-hati untuk memastikan bahwa semua node dieksplorasi secara memadai selama pelatihan. Dan pelatihan itu hanya akan menghasilkan nilai yang sudah bisa kita perkirakan dengan sangat baik dengan persamaan Pythagoras, karena mengetahui sebelumnya bahwa grafik mematuhi aturan jarak Euclidean. (Ini, tentu saja, bukan kasus untuk semua situasi di mana pencarian grafik dan / atau pembelajaran penguatan dapat digunakan.)

(Mengenai masalah memori: Jika Anda memiliki 1000 kemungkinan posisi quantis pada peta, itu 1000 node plus 1000 * M edge (di mana M adalah jumlah rata-rata node yang dapat dicapai dari node lain.) Itu, ditambah heuristik, cukup untuk A * untuk beroperasi. Untuk memperkuat pembelajaran agar bekerja, setidaknya dengan cara saya membayangkannya, Anda juga akan membutuhkan 1000 entri untuk masing-masing tepi 1000 * M, untuk mencetak nilai hadiah mengikuti tepi itu untuk salah satu dari 1000 tujuan yang mungkin. Itu banyak data - dan setiap bitnya harus cukup akurat untuk menghindari loop, jalan memutar, atau jalan buntu.


3

Pathfinding adalah masalah yang relatif "diselesaikan", RL tidak.

Dengan A *, pengembang dapat membuat heuristik dengan cepat dan memperbaikinya seiring waktu. RL (saya berbicara tentang Q-Learning, ketika merujuk ke RL di sini), membutuhkan waktu untuk menghitung tingkat pembelajaran terbaik dan faktor diskon (waktu yang layak dihabiskan untuk aspek-aspek lain dari permainan).


1

Itu benar-benar tergantung pada jenis gim. Jika semua yang ada di dalam game itu statis, lebih efisien menggunakan pencarian A *. Namun, jika ada pemain manusia lain yang bergerak di area yang sama, pencarian A * dijamin gagal. Pencarian * tidak tahu ke mana arah pemain lain. Di sisi lain, RL dapat memodelkan perilaku pemain lain dan menemukan jalur yang lebih baik yang mempertimbangkan pergerakan pemain lain.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.