- 
                Notifications
    You must be signed in to change notification settings 
- Fork 107
Description
Hey developers of JuliaPOMP !
I am working on a package for cognitive modelling (i.e. the field of reverse-engineering which models how people use to solve tasks), and in that context, I wanted to see if I could rely on your extensive ecosystem for POMDP-related models.
To test that, I just need an example with a simple updater/solver for a simple POMDP (notably, I do not necesarily need to rely on your POMDP tasks or environments).
However, I need to be able to run the action-perception loop manually (because I need to intervene in it), so I can’t use your otherwise very useful simulation functions.
I have been looking around, but have found it a little difficult to figure out how to do this naturally.
I wondered if you would be kind enough to provide me with a brief dummy code example looking something like this:
using ...
#create pomdp
#create updater
#create solver
#initialise beliefs
for i in 1:n_timesteps
   #update belief based on observation (and previous action)
   #choose action based on belief
end
Notably, it would be a great advantage if the loop were fully differentiable (preferably with ForwardDiff.jl, although that requires support for Dual Numbers, so alternatively Mooncake.jl or Enzyme.jl).
Additionally, I would much prefer it if it were possible to return not just an action, but a probability distribution over actions (or something from which I could generate such a distribution). Then the action could be sampled from that afterwards.
And finally, I would also be happy if I could construct a simple interface for setting parameters of the POMDP solver and belief updater (since those are the ones I would try to estimate for a given experimental subject, based on their behaviour in an experiment).
Let me know if there is anything I can do - and lots of admiration for your incredible work!