Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Big POMDP update #39

Open
wants to merge 68 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
68 commits
Select commit Hold shift + click to select a range
4c11342
initial belief exploration implementation
TheGreatfpmK Feb 19, 2024
683b77d
Merge branch 'master' into belief-exploration
TheGreatfpmK Feb 20, 2024
dbc126a
Prepared for experiments
TheGreatfpmK Feb 20, 2024
c6a4785
belief experiments
TheGreatfpmK Feb 20, 2024
10df8d4
use Storm results to help the synthesis
TheGreatfpmK Feb 21, 2024
881c5ce
Added average observation belief computation
TheGreatfpmK Feb 22, 2024
45cc3c1
Iterative belief FSC synthesis
TheGreatfpmK Feb 23, 2024
f907d4b
First version of enhanced SAYNT (add logging)
TheGreatfpmK Feb 27, 2024
ebb3adc
Main enhanced SAYNT loop done
TheGreatfpmK Feb 28, 2024
4dec063
Finished enhanced SAYNT
TheGreatfpmK Feb 28, 2024
6011564
first experiments for enhanced SAYNT
TheGreatfpmK Feb 29, 2024
6bb8bb5
More experiments
TheGreatfpmK Mar 1, 2024
dcdf6cf
More experiments
TheGreatfpmK Mar 3, 2024
3182bc6
enhanced SAYNT Storm first implementation
TheGreatfpmK Mar 5, 2024
cfc1fbc
Removed duplicit experiments
TheGreatfpmK Mar 5, 2024
5315da2
new order experiments
TheGreatfpmK Mar 6, 2024
185a2b1
added SAYNT logs and graph generation
TheGreatfpmK Mar 7, 2024
ff9aae5
more experiments
TheGreatfpmK Mar 7, 2024
f523d92
Updated graph generation
TheGreatfpmK Mar 8, 2024
d33beda
more experiments
TheGreatfpmK Mar 10, 2024
24a7de7
Discounted value iteration initial support
TheGreatfpmK Mar 12, 2024
75c7e77
Changed how infinity EVTs are treated for maximizing properties
TheGreatfpmK Mar 14, 2024
e827006
Merge remote-tracking branch 'upstream/master' into belief-exploration
TheGreatfpmK Mar 14, 2024
4440130
Added support for computing discounted expected visits
TheGreatfpmK Mar 14, 2024
41947b4
Changed enhanced SAYNT threads list for better code readability; Over…
TheGreatfpmK Mar 15, 2024
8bfdbba
Added over-approximation option for SAYNT; first analysis of over-app…
TheGreatfpmK Mar 18, 2024
2febef3
Dynamic threads based on overapproximation
TheGreatfpmK Mar 19, 2024
11b74cd
Finished dynamic threads based on overapproximation
TheGreatfpmK Mar 19, 2024
ce1389a
working on enhanced SAYNT example for paper
TheGreatfpmK Mar 20, 2024
1cc8000
New experiments for overapproximation beliefs
TheGreatfpmK Mar 20, 2024
635ccc5
Reworked .pomdp format export
TheGreatfpmK Mar 22, 2024
ba08799
new Storm POMDP exploration strategies added as options
TheGreatfpmK Mar 24, 2024
55c6332
Added first version of belief MC explorer (not working rn)
TheGreatfpmK Mar 25, 2024
430fed0
Fixed the binding for beliefMCExplorer
TheGreatfpmK Mar 25, 2024
56ed39c
Added the alpha vector analysis; added new POMDP Storm options
TheGreatfpmK Mar 31, 2024
1ec663f
added more experiments
TheGreatfpmK Apr 1, 2024
516a7d1
Added size threshold parameter for alpha vector analysis
TheGreatfpmK Apr 2, 2024
08b49a2
cassandra models SAYNT experiments
TheGreatfpmK Apr 2, 2024
f17878f
sarsop experiments added
TheGreatfpmK Apr 3, 2024
04d6304
you can now adjust discount factor for native discount
TheGreatfpmK Apr 3, 2024
b0d395e
added more experiments
TheGreatfpmK Apr 3, 2024
dc0e7bc
added dummy cutoff values for alpha vector analysis
TheGreatfpmK Apr 4, 2024
507abcb
Merge remote-tracking branch 'origin/belief-exploration' into belief-…
TheGreatfpmK Apr 4, 2024
c74fb7f
added some sarsop experiments
TheGreatfpmK Apr 4, 2024
a9c6541
more discounted experiments
TheGreatfpmK Apr 5, 2024
ba4275c
Merge remote-tracking branch 'origin/belief-exploration' into belief-…
TheGreatfpmK Apr 5, 2024
1511b4c
fixed last merge
TheGreatfpmK Apr 5, 2024
062bfd1
pomdp format export replaces non-existing actions with the first acti…
TheGreatfpmK Apr 5, 2024
ae10103
fixed pomdp export
TheGreatfpmK Apr 7, 2024
cf4daea
added experimental splitting
TheGreatfpmK Apr 8, 2024
583f12a
Merge remote-tracking branch 'origin/belief-exploration' into belief-…
TheGreatfpmK Apr 8, 2024
dcc7b7f
added option to use trivial cutoff bounds in beliefMCExplorer
TheGreatfpmK Apr 8, 2024
cd00b3b
saynt discounted experiments
TheGreatfpmK Apr 8, 2024
65799c6
more discount experiments
TheGreatfpmK Apr 9, 2024
680a1ee
fixed small issue after parse error; added example discounted specifi…
TheGreatfpmK Apr 10, 2024
4c6804d
added more experiments for table 5
TheGreatfpmK Apr 10, 2024
77cc8c2
added more experiments for table 5
TheGreatfpmK Apr 14, 2024
83abd78
removed all experiments files
TheGreatfpmK Apr 19, 2024
2936bde
Merge remote-tracking branch 'upstream/master' into belief-exploration
TheGreatfpmK Apr 19, 2024
4ec7ae4
removed some leftover code
TheGreatfpmK Apr 19, 2024
8c7a453
removed experimental code
TheGreatfpmK Apr 19, 2024
b8b88b1
removed unnecessary line
TheGreatfpmK Apr 19, 2024
907c3af
added user friendly SAYNT CLI option; updated README with new options…
TheGreatfpmK Apr 22, 2024
500be2c
fixed controller size computation for multiple FSCs
TheGreatfpmK Apr 24, 2024
c003cc8
fixed belief FSC size computation
TheGreatfpmK Apr 24, 2024
3599b2c
Added some comments
TheGreatfpmK Apr 26, 2024
5016eb5
Fixed posterior aware export
TheGreatfpmK Apr 27, 2024
6ff2c9f
Merge branch 'randriu:master' into belief-exploration
TheGreatfpmK Jun 19, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
__pycache__/
*.egg-info/

prerequisites/
prerequisites/
26 changes: 17 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -75,13 +75,20 @@ Options associated with the synthesis of finite-state controllers (FSCs) for a P
- ``--pomdp-memory-size INTEGER`` implicit memory size for POMDP FSCs [default: 1]
- ``--fsc-synthesis``: enables incremental synthesis of FSCs for a POMDP using iterative exploration of k-FSCs
- ``--posterior-aware``: enables the synthesis of posterior aware FSCs
- ``--native-discount``: runs synthesis with discounted model checking instead of performing model transformation

SAYNT [6] and Storm associated options (pomdp-api branch of Storm and Stormpy are needed):
SAYNT [6] and New SAYNT [CAV23SI] basic options:
- ``--saynt``: run SAYNT with default options (15min timeout, to adjust look at advanced SAYNT options)
- ``--new-saynt``: run SAYNT with computing multiple cut-off FSCs (15min timeout)

Advanced SAYNT [6] and Storm associated options:
- ``--storm-pomdp``: enables the use of Storm features, this flag is necessary for the other options in this section to work
- ``--iterative-storm INTEGER INTEGER INTEGER``: runs the SAYNT algorithm, the parameters represent overall timeout, paynt timeout, storm timeout respectivelly. The recommended parameters for 15 minute runtime are 900 60 10
- ``--get-storm-result INTEGER``: runs PAYNT for specified amount of seconds and then runs Storm using the computed FSC at cut-offs
- ``--storm-options [cutoff|clip2|clip4|overapp|5mil|10mil|20mil|refine]``: sets the options for Storm [default: ``cutoff``]
- ``--prune-storm``: if enabled Storm results are used to prune the family of FSCs
- ``--saynt-threads INTEGER``: specifies the number of cut-off FSCs SAYNT should compute in one iteration, if set to 0 the number is chosen automatically based on the belief exploration
- ``--saynt-overapprox``: enables the use of overapproximations in choosing from what beliefs FSCs should be computed
- ``--unfold-strategy-storm [paynt|storm|cutoff]``: sets how the memory is unfolded [default: ``storm``]
- ``--use-storm-cutoffs``: if enabled the actions from cut-offs are considered in the prioritization and unfolding
- ``--export-fsc-paynt PATH``: stores the best found FSC from PAYNT to specified file
Expand All @@ -91,18 +98,19 @@ Other options:
- ``--help``: shows the help message of the PAYNT and aborts
- ``--export [drn|pomdp]``: exports the model to *.drn/*.pomdp and aborts
- ``--incomplete-search``: uses incomplete search during synthesis
- ``--alpha_vector_analysis PATH``: takes alpha vector set from specified file and performs unrolling on the given POMDP using these alpha vectors to analyse their quality


Here are various PAYNT calls:
```shell
python3 paynt.py --project models/cav21/maze --props hard.props
python3 paynt.py --project models/cav21/maze --props hard.props --method hybrid
python3 paynt.py --project models/pomdp/uai/grid-avoid-4-0
python3 paynt.py --project models/pomdp/uai/grid-avoid-4-0 --pomdp-memory-size 2
python3 paynt.py --project models/pomdp/uai/grid-avoid-4-0 --pomdp-memory-size 5 --method ar_multicore
timeout 10s python3 paynt.py --project models/pomdp/uai/grid-avoid-4-0 --fsc-synthesis
python3 paynt.py --project models/pomdp/storm-integration/4x3-95 --fsc-synthesis --storm-pomdp --iterative-storm 180 60 10
python3 paynt.py --project models/pomdp/storm-integration/rocks-12 --fsc-synthesis --storm-pomdp --get-storm-result 0
python3 paynt.py --project models/archive/cav21-paynt/maze --props hard.props
python3 paynt.py --project models/archive/cav21-paynt/maze --props hard.props --method hybrid
python3 paynt.py --project models/archive/uai22-pomdp/grid-avoid-4-0
python3 paynt.py --project models/archive/uai22-pomdp/grid-avoid-4-0 --pomdp-memory-size 2
python3 paynt.py --project models/archive/uai22-pomdp/grid-avoid-4-0 --pomdp-memory-size 5 --method ar_multicore
timeout 10s python3 paynt.py --project models/archive/uai22-pomdp/grid-avoid-4-0 --fsc-synthesis
python3 paynt.py --project models/archive/cav23-saynt/4x3-95 --saynt --iterative-storm 180 60 10
python3 paynt.py --project models/archive/cav23-saynt/rocks-12 --fsc-synthesis --storm-pomdp --get-storm-result 0
```

The Python environment can be deactivated by runnning
Expand Down
Loading
Loading