Linux | Mac OS X | Windows |
---|---|---|
Paket ini menyediakan antarmuka inti untuk bekerja dengan proses keputusan Markov (MDP) dan proses keputusan Markov yang dapat diobservasi sebagian (POMDP). Paket POMDPTools bertindak sebagai "perpustakaan standar" untuk antarmuka POMDPs.jl, menyediakan implementasi komponen yang umum digunakan seperti kebijakan, pembaru keyakinan, distribusi, dan simulator.
Tujuan kami adalah menyediakan kosakata pemrograman umum untuk:
POMDPs.jl terintegrasi dengan ekosistem lain:
Untuk pengenalan lebih detail, lihat kursus Julia Academy kami! Untuk bantuan, silakan posting di tab Diskusi GitHub. Kami menyambut kontribusi dari siapa pun! Lihat CONTRIBUTING.md untuk informasi tentang berkontribusi.
POMDPs.jl dan paket pemecah terkait dapat diinstal menggunakan manajer paket Julia. Misalnya, untuk menginstal POMDPs.jl dan paket pemecah QMDP, ketikkan yang berikut ini di Julia REPL:
using Pkg; Pkg . add ( " POMDPs " ); Pkg . add ( " QMDP " )
Untuk menjalankan simulasi sederhana POMDP Tiger klasik menggunakan kebijakan yang dibuat oleh pemecah QMDP, Anda dapat menggunakan kode berikut (perhatikan bahwa POMDPs.jl tidak terbatas pada masalah terpisah dengan distribusi yang ditentukan secara eksplisit seperti ini):
using POMDPs, QuickPOMDPs, POMDPTools, QMDP
m = QuickPOMDP (
states = [ " left " , " right " ],
actions = [ " left " , " right " , " listen " ],
observations = [ " left " , " right " ],
initialstate = Uniform ([ " left " , " right " ]),
discount = 0.95 ,
transition = function (s, a)
if a == " listen "
return Deterministic (s) # tiger stays behind the same door
else # a door is opened
return Uniform ([ " left " , " right " ]) # reset
end
end ,
observation = function (s, a, sp)
if a == " listen "
if sp == " left "
return SparseCat ([ " left " , " right " ], [ 0.85 , 0.15 ]) # sparse categorical distribution
else
return SparseCat ([ " right " , " left " ], [ 0.85 , 0.15 ])
end
else
return Uniform ([ " left " , " right " ])
end
end ,
reward = function (s, a)
if a == " listen "
return - 1.0
elseif s == a # the tiger was found
return - 100.0
else # the tiger was escaped
return 10.0
end
end
)
solver = QMDPSolver ()
policy = solve (solver, m)
rsum = 0.0
for (s,b,a,o,r) in stepthrough (m, policy, " s,b,a,o,r " , max_steps = 10 )
println ( " s: $s , b: $([s => pdf (b,s) for s in states (m)]) , a: $a , o: $o " )
global rsum += r
end
println ( " Undiscounted reward was $rsum . " )
Untuk lebih banyak contoh dan contoh dengan visualisasi, rujuk bagian Contoh dan Galeri Masalah POMDPs.jl dalam dokumentasi.
Selain kursus Julia Academy yang disebutkan di atas, dokumentasi dan contoh terperinci dapat ditemukan di sini.
Banyak paket menggunakan antarmuka POMDPs.jl, termasuk pemecah MDP dan POMDP, alat pendukung, dan ekstensi ke antarmuka POMDPs.jl. POMDPs.jl dan semua paket dalam proyek JuliaPOMDP didukung penuh di Linux. OSX dan Windows didukung untuk semua pemecah asli*, dan sebagian besar pemecah non-asli dapat digunakan, namun mungkin memerlukan konfigurasi tambahan.
POMDPs.jl sendiri hanya berisi antarmuka inti untuk berkomunikasi tentang definisi masalah; paket-paket ini berisi implementasi komponen yang umum digunakan:
Package | Build | Coverage |
---|---|---|
POMDPTools (dihosting di repositori ini) | ||
Filter Partikel |
Banyak model telah diimplementasikan menggunakan antarmuka POMDPs.jl untuk berbagai proyek. Daftar ini berisi beberapa model yang umum digunakan:
Package | Build | Coverage |
---|---|---|
Model POMDP | ||
Tag Laser | ||
Sampel Batuan | ||
Masalah TagPOMDP | ||
Pengawasan Drone | ||
Dunia Kontinum | ||
VDPTag2 | ||
RoombaPOMDPs (Lokalisasi Roomba) |
Package | Build/Coverage | On line/ Luring | Kontinu Negara - Tindakan | Peringkat 3 |
---|---|---|---|---|
DiscreteValueIteration | Luring | NN | ★★★★★ | |
LocalApproximationValueIteration | Luring | YN | ★★ | |
GlobalApproximationValueIteration | Luring | YN | ★★ | |
MCTS (Pencarian Pohon Monte Carlo) | On line | Y (DPW)-Y (DPW) | ★★★★ |
Package | Build/Coverage | On line/ Luring | Kontinu Negara-Tindakan-Pengamatan | Peringkat 3 |
---|---|---|---|---|
QMDP (kurang optimal) | Luring | NNN | ★★★★★ | |
FIB (kurang optimal) | Luring | NNN | ★★ | |
BeliefGridValueIteration | Luring | NNN | ★★ | |
SARSOP* | Luring | NNN | ★★★★ | |
AsliSARSOP | Luring | NNN | ★★★★ | |
PohonFilter Partikel (SparsePFT, PFT-DPW) | On line | YY 2 -Y | ★★★ | |
Dasar POMCP | On line | YNN 1 | ★★★★ | |
ARDESPOT | On line | YNN 1 | ★★★★ | |
AdaOPS | On line | YNY | ★★★★ | |
MCVI | Luring | YNY | ★★ | |
POMDP Menyelesaikan * | Luring | NNN | ★★★ | |
Pemangkasan Tambahan | Luring | NNN | ★★★ | |
POMCPOW | On line | YY 2 -Y | ★★★ | |
AEMS | On line | NNN | ★★ | |
Iterasi Nilai Berbasis Poin | Luring | NNN | ★★ |
1 : Akan berjalan, tetapi tidak konvergen ke solusi optimal
2 : Akan berjalan, namun konvergensi ke solusi optimal tidak terbukti, dan kemungkinan besar tidak akan berfungsi dengan baik pada ruang tindakan multidimensi. Lihat juga https://github.com/michaelhlim/VOOTreeSearch.jl.
Package | Build/Coverage | Kontinu Amerika | Kontinu Tindakan | Peringkat 3 |
---|---|---|---|---|
Pembelajaran TabularTD | N | N | ★★ | |
Pembelajaran DeepQ | kamu 1 | N | ★★★ |
1 : Untuk POMDP, mereka akan menggunakan observasi dan bukan negara sebagai masukan terhadap kebijakan.
3 Penilaian subyektif; Ajukan masalah jika Anda yakin ada masalah yang harus diubah
Package |
---|
PENGANIAYA |
* Paket-paket ini memerlukan ketergantungan non-Julia
Jika POMDP berguna dalam penelitian Anda dan Anda ingin mengakuinya, silakan mengutip makalah ini:
@article{egorov2017pomdps,
author = {Maxim Egorov and Zachary N. Sunberg and Edward Balaban and Tim A. Wheeler and Jayesh K. Gupta and Mykel J. Kochenderfer},
title = {{POMDP}s.jl: A Framework for Sequential Decision Making under Uncertainty},
journal = {Journal of Machine Learning Research},
year = {2017},
volume = {18},
number = {26},
pages = {1-5},
url = {http://jmlr.org/papers/v18/16-300.html}
}