JuliaPOMDP / JuliaPOMDP/DynamicDecisionNetworks.jl

Customizing the DDN for MOMDPs : Attempt

Open
#6 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
Julia
Stars
3
Forks
1
PR merge metrics
No merged PRs in 30d

Description

Hello Guys,

I am asking what customization need to be performed on the DNNStructure of the DBNs to allow modeling MOMDPs.

I know that the DBN should be like this one

![MOMDPs](https://user-images.githubusercontent.com/29976582/69828337-8551bc80-11e9-11ea-8db1-353c6e85ebf1.png)

and I wondering if we could have a skeleton like this (my julia skills are very poor):

```julia

function momdp_ddn()
DDNStructure((
x = InputDDNNode(),
y = InputDDNNode(),
s = (x, y),
a = InputDDNNode(),
sp = DistributionDDNNode(transition),
o = DistributionDDNNode(observation),
r = FunctionDDNNode(reward),
xp = sp[1],
yp = sp[2],
),
(x = (),
y = (),
a = (),
sp = map(DDNNode, (:s, :a)),
o = map(DDNNode, (:s, :a, :sp)),
r = map(DDNNode, (:s, :a, :sp, :o)),
)
)
end

```

or

```julia

function momdp_ddn()
DDNStructure((
x = InputDDNNode(),
y = InputDDNNode(),
s = FunctionDDNNode(merge_state),
a = InputDDNNode(),
sp = DistributionDDNNode(transition),
o = DistributionDDNNode(observation),
r = FunctionDDNNode(reward),
xp = FunctionDDNNode(split_state_hidden),
yp = FunctionDDNNode(split_state_observable),
),
(x = (),
y = (),
a = (),
s = map(DDNNode, (:x, :y)),
sp = map(DDNNode, (:s, :a)),
xp = map(DDNNode, (:sp)),
yp = map(DDNNode, (:sp)),
o = map(DDNNode, (:s, :a, :sp)),
r = map(DDNNode, (:s, :a, :sp, :o)),
)
)
end
```

Does this definition be compatible with the JuliaPOMDPs Solvers?
What is a good way to deal with MOMDPs?

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.