Linux | Mac OS X | Windows |
---|---|---|
แพคเกจนี้จัดเตรียมอินเทอร์เฟซหลักสำหรับการทำงานกับกระบวนการตัดสินใจของ Markov (MDP) และกระบวนการตัดสินใจของ Markov ที่สังเกตได้บางส่วน (POMDP) แพ็คเกจ POMDPTools ทำหน้าที่เป็น "ไลบรารีมาตรฐาน" สำหรับอินเทอร์เฟซ POMDPs.jl ซึ่งจัดให้มีการใช้งานส่วนประกอบที่ใช้กันทั่วไป เช่น นโยบาย ตัวอัปเดตความเชื่อ การแจกจ่าย และเครื่องจำลอง
เป้าหมายของเราคือการจัดเตรียมคำศัพท์การเขียนโปรแกรมทั่วไปสำหรับ:
POMDPs.jl ทำงานร่วมกับระบบนิเวศอื่นๆ:
สำหรับการแนะนำโดยละเอียด โปรดดูหลักสูตร Julia Academy ของเรา! หากต้องการความช่วยเหลือ โปรดโพสต์ในแท็บการสนทนา GitHub เรายินดีรับการสนับสนุนจากทุกคน! ดู CONTRIBUTING.md สำหรับข้อมูลเกี่ยวกับการบริจาค
POMDPs.jl และแพ็คเกจตัวแก้ปัญหาที่เกี่ยวข้องสามารถติดตั้งได้โดยใช้ตัวจัดการแพ็คเกจของ Julia ตัวอย่างเช่น เมื่อต้องการติดตั้ง POMDPs.jl และแพ็คเกจตัวแก้ปัญหา QMDP ให้พิมพ์ดังต่อไปนี้ใน Julia REPL:
using Pkg; Pkg . add ( " POMDPs " ); Pkg . add ( " QMDP " )
หากต้องการรันการจำลอง Tiger POMDP แบบคลาสสิกอย่างง่ายโดยใช้นโยบายที่สร้างโดยโปรแกรมแก้ปัญหา QMDP คุณสามารถใช้โค้ดต่อไปนี้ (โปรดทราบว่า POMDPs.jl ไม่ได้จำกัดอยู่เพียงปัญหาแบบแยกที่มีการแจกแจงที่กำหนดไว้อย่างชัดเจนเช่นนี้):
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 . " )
สำหรับตัวอย่างเพิ่มเติมและตัวอย่างที่มีการแสดงภาพ โปรดดูส่วนตัวอย่างและแกลเลอรีของปัญหา POMDPs.jl ของเอกสาร
นอกเหนือจากหลักสูตร Julia Academy ที่กล่าวถึงข้างต้นแล้ว สามารถดูเอกสารและตัวอย่างโดยละเอียดได้ที่นี่
แพ็คเกจจำนวนมากใช้อินเทอร์เฟซ POMDPs.jl รวมถึงตัวแก้ปัญหา MDP และ POMDP เครื่องมือสนับสนุน และส่วนขยายไปยังอินเทอร์เฟซ POMDPs.jl POMDPs.jl และแพ็คเกจทั้งหมดในโปรเจ็กต์ JuliaPOMDP ได้รับการสนับสนุนอย่างสมบูรณ์บน Linux OSX และ Windows ได้รับการรองรับสำหรับโปรแกรมแก้ปัญหาแบบเนทีฟทั้งหมด* และโปรแกรมแก้ปัญหาแบบเนทีฟส่วนใหญ่ควรใช้งานได้ แต่อาจต้องมีการกำหนดค่าเพิ่มเติม
POMDPs.jl นั้นมีเพียงอินเทอร์เฟซหลักสำหรับการสื่อสารเกี่ยวกับคำจำกัดความของปัญหา แพ็คเกจเหล่านี้ประกอบด้วยการใช้งานส่วนประกอบที่ใช้กันทั่วไป:
Package | Build | Coverage |
---|---|---|
POMDPTools (โฮสต์ในพื้นที่เก็บข้อมูลนี้) | ||
ตัวกรองอนุภาค |
มีหลายโมเดลที่ถูกนำมาใช้โดยใช้อินเทอร์เฟซ POMDPs.jl สำหรับโปรเจ็กต์ต่างๆ รายการนี้มีโมเดลที่ใช้กันทั่วไปบางรุ่น:
Package | Build | Coverage |
---|---|---|
POMDPโมเดล | ||
เลเซอร์แท็ก | ||
ร็อคตัวอย่าง | ||
แท็กPOMDPPปัญหา | ||
การเฝ้าระวังด้วยโดรน | ||
โลกต่อเนื่อง | ||
VDPTag2 | ||
RoombaPOMDP (การแปล Roomba) |
Package | Build/Coverage | ออนไลน์/ ออฟไลน์ | ต่อเนื่อง รัฐ--การดำเนินการ | เรตติ้ง 3 |
---|---|---|---|---|
DiscreteValueIteration | ออฟไลน์ | เอ็นเอ็น | ||
การประมาณค่าท้องถิ่นการวนซ้ำ | ออฟไลน์ | YN | ||
GlobalApproximationValueIteration | ออฟไลน์ | YN | ||
MCTS (ค้นหาต้นไม้มอนติคาร์โล) | ออนไลน์ | ใช่ (DPW)-Y (DPW) |
Package | Build/Coverage | ออนไลน์/ ออฟไลน์ | ต่อเนื่อง รัฐ-การกระทำ-ข้อสังเกต | เรตติ้ง 3 |
---|---|---|---|---|
QMDP (ต่ำกว่ามาตรฐาน) | ออฟไลน์ | เอ็นเอ็นเอ็น | ||
FIB (ต่ำกว่ามาตรฐาน) | ออฟไลน์ | เอ็นเอ็นเอ็น | ||
BeliefGridValueIteration | ออฟไลน์ | เอ็นเอ็นเอ็น | ||
ซาร์สป* | ออฟไลน์ | เอ็นเอ็นเอ็น | ||
พื้นเมืองSARSOP | ออฟไลน์ | เอ็นเอ็นเอ็น | ||
ParticleFilterTrees (SparsePFT, PFT-DPW) | ออนไลน์ | ปป 2 -ป | ||
POMCP พื้นฐาน | ออนไลน์ | วายเอ็นเอ็น 1 | ||
อาร์เดสปอต | ออนไลน์ | วายเอ็นเอ็น 1 | ||
AdaOPS | ออนไลน์ | YNY | ||
เอ็มซีวีไอ | ออฟไลน์ | YNY | ||
POMDPแก้ปัญหา* | ออฟไลน์ | เอ็นเอ็นเอ็น | ||
การตัดแต่งกิ่งแบบเพิ่มหน่วย | ออฟไลน์ | เอ็นเอ็นเอ็น | ||
ปอมโคว์ | ออนไลน์ | ปป 2 -ป | ||
เอมส์ | ออนไลน์ | เอ็นเอ็นเอ็น | ||
การวนซ้ำตามมูลค่าตามจุด | ออฟไลน์ | เอ็นเอ็นเอ็น |
1 : จะทำงาน แต่จะไม่มาบรรจบกันเป็นทางออกที่ดีที่สุด
2 : จะทำงาน แต่การบรรจบกันเป็นโซลูชันที่ดีที่สุดไม่ได้รับการพิสูจน์ และมีแนวโน้มว่าจะทำงานได้ไม่ดีในพื้นที่การดำเนินการหลายมิติ ดูเพิ่มเติมที่https://github.com/michaelhlim/VOOTreeSearch.jl
Package | Build/Coverage | ต่อเนื่อง รัฐ | ต่อเนื่อง การดำเนินการ | เรตติ้ง 3 |
---|---|---|---|---|
ตารางTDการเรียนรู้ | เอ็น | เอ็น | ||
ดีพคิวเลิร์นนิง | ใช่ 1 | เอ็น |
1 : สำหรับ POMDP จะใช้การสังเกตแทนสถานะเป็นอินพุตของนโยบาย
3 การให้คะแนนแบบอัตนัย; แจ้งปัญหาหากคุณเชื่อว่าควรมีการเปลี่ยนแปลง
Package |
---|
เผด็จการ |
* แพ็คเกจเหล่านี้ต้องการการพึ่งพาที่ไม่ใช่ของจูเลีย
หาก POMDP มีประโยชน์ในการวิจัยของคุณและคุณต้องการรับทราบ โปรดอ้างอิงบทความนี้:
@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}
}