Browse Source

More POMDP tests.

accumulation-v4.7
Dave Parker 5 years ago
parent
commit
e2ac8ee84e
  1. 29
      prism-tests/functionality/verify/pomdps/guess-multi.prism
  2. 5
      prism-tests/functionality/verify/pomdps/guess-multi.prism.props
  3. 4
      prism-tests/functionality/verify/pomdps/guess-multi.prism.props.args
  4. 28
      prism-tests/functionality/verify/pomdps/guess.prism
  5. 2
      prism-tests/functionality/verify/pomdps/guess.prism.props

29
prism-tests/functionality/verify/pomdps/guess-multi.prism

@ -0,0 +1,29 @@
pomdp
const int N;
module M
s : [0..2]; // state
h : [0..3]; // hidden var
g : [0..N] init N; // num guesses left
[toss] s=0 -> 0.1:(s'=1)&(h'=1) + 0.3:(s'=1)&(h'=2) + 0.6:(s'=1)&(h'=3);
[guess1] s=1&g>0 -> (s'=(h=1)?2:s) & (g'=g-1);
[guess2] s=1&g>0 -> (s'=(h=2)?2:s) & (g'=g-1);
[guess3] s=1&g>0 -> (s'=(h=3)?2:s) & (g'=g-1);
[timeup] s=1&g=0 -> (s'=3);
[loop] s=2 -> true;
endmodule
observables s, g endobservables
label "correct" = s=2;
rewards "guesses"
[guess1] true : 1;
[guess2] true : 1;
[guess3] true : 1;
endrewards

5
prism-tests/functionality/verify/pomdps/guess-multi.prism.props

@ -0,0 +1,5 @@
// RESULT (N=1): 0.6
// RESULT (N=2): 0.9
// RESULT (N=3): 1.0
// RESULT (N=4): 1.0
Pmax=? [ F "correct" ];

4
prism-tests/functionality/verify/pomdps/guess-multi.prism.props.args

@ -0,0 +1,4 @@
-const N=1
-const N=2
-const N=3
-const N=4

28
prism-tests/functionality/verify/pomdps/guess.prism

@ -0,0 +1,28 @@
pomdp
const double p = 0.2;
module M
s : [0..2]; // state
h : [0..3]; // hidden var
[toss] s=0 -> 0.1:(s'=1)&(h'=1) + 0.3:(s'=1)&(h'=2) + 0.6:(s'=1)&(h'=3);
//[loop] s=0 -> true; // uncommenting this gives bad bounds
[guess1] s=1 -> (s'=(h=1)?2:3);
[guess2] s=1 -> (s'=(h=2)?2:3);
[guess3] s=1 -> (s'=(h=3)?2:3);
[loop] s=2 -> true;
endmodule
observables s endobservables
label "correct" = s=2;
rewards "guesses"
[guess1] true : 1;
[guess2] true : 1;
[guess3] true : 1;
endrewards

2
prism-tests/functionality/verify/pomdps/guess.prism.props

@ -0,0 +1,2 @@
// RESULT: 0.6
Pmax=? [ F "correct" ];
Loading…
Cancel
Save