Hi Jin,
Let me clarify (or confuse) matters further regarding your question (1).
PRISM has two distinct methods for checking these multi-objective
properties: "linear programming" and "value iteration", each with
different limitations. Currently, the latter is the default, where
possible, but we only have adversary generation implemented for the
former. Unfortunately, it seems that the value iteration method
currently outputs some intermediate adversaries used during model
checking. So the adversary you have seen is actually not the correct one
for your query (multi(P max=?[F x=0],R<=10[C<=2])).
You can export the correct one by making some changes. First, you will
need to ask PRISM to use the linear programming method, by adding the
switch -lp. However, this does not support time-bounded properties such
as C<=2. The solution is to change the property to:
multi(P max=?[F x=0],R<=10[C])
which uses the long-run cumulated reward, rather than the reward
cumulated over 2 steps. To make that consistent with the model you had
before, change the action of the transition from state x=1 to something
other than k1 (say, k3) to make sure there is no reward attached, and
there are no extra rewards cumulated after 2 steps. The adversary
exported, when using the -lp switch is then:
3 ?
0 2 1 k3
1 0 0.0571429 k2
1 2 0.514286 k2
1 0 0.385714 k0
1 2 0.0428571 k0
2 2 1 _ec
This has the complication mentioned by Joachim that the adversary is
over a product model. Using -exportprodstates and mapping the state
indices above to their value of variable x, you get:
2 1 0.0571429 k2
2 0 0.514286 k2
2 1 0.385714 k0
2 0 0.0428571 k0
1 0 1 k3
0 0 1 _ec
This reveals an additional complication that, if you want to maximise
the probability of reaching x=0, whist keeping the expected cumulative
reward at most 10, the optimal adversary is actually a randomised one.
From the above, you can deduce that, from state x=2, it picks the k0
action with probability 0.4285711 and the k2 action with probability
0.5714289. In fact, the optimal adversary for such constrained queries
(maximising or minimising one objective, whilst putting a bound on the
other) is very often randomised.
Best wishes,
Dave
> --
> You received this message because you are subscribed to the Google
> Groups "PRISM model checker" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to
prismmodelchec...@googlegroups.com
> <mailto:
prismmodelchec...@googlegroups.com>.
> To post to this group, send email to
prismmod...@googlegroups.com
> <mailto:
prismmod...@googlegroups.com>.
> Visit this group at
https://groups.google.com/group/prismmodelchecker.
> For more options, visit
https://groups.google.com/d/optout.