Closed mexsser closed 5 years ago
Hi @mexsser,
We started discussing this point here #25.
You might want to look at the solution using UnderlyingMDP
from POMDPModelTools.
I think it would be better to modify QMDP such that we could use any Value Iteration solver, it would require extracting the mdp first, something like this (in QMDP.jl):
function solve(solver::QMDPSolver, pomdp::POMDP)
mdp = UnderlyingMDP(pomdp)
vi_policy = solve(solver.vi_solver, mdp)
# convert to alpha vector ...
return policy
end
where vi_solver
would be a new field in the QMDPSolver.
Fixed JuliaPOMDP/QMDP.jl#15 and #32
When I check the source code of QMDP solver, which is a POMDP solver, I find that ValueIterationSolver from this repo is used. And in this repo, a faster solver SparseValueIterationSolver is also provided. So I think maybe I can modify the source code of QMDP to add this solver as an optional solver. But soon I find that the two functions transition_matrix_a_s_sp(mdp::MDP) and reward_s_a(mdp::MDP) only accept argument of MDP Type. According to my understanding this two function can actually also accept POMDP type. I have tried the modified version in my QMDP solver and everything runs smoothly. The results are also as expected.