Strategy queries allow store, load, reuse and refine the strategies by assigning names to them.
AssignQuery ::=
'strategy' StrategyName '=' AssignableQuery
AssignableQuery ::=
ControlQuery
| LearningQuery
| 'loadStrategy' Features '(' Path ')'
NonAssignableQuery ::=
SymbolicQuery
| SMCQuery
| 'saveStrategy' '(' Path ',' StrategyName ')'
"
) character sequence (string) denoting a file path on the same computer as the used engine (server
or verifyta
).\
) character in (Windows) paths needs to be either escaped with another backslash or replaced with the forwardslash (/
), i.e. \
should be replaced with either \\
or /
.See rail road diagram of AssignableQuery in Query overview.
strategy Safe = A[] safe
Safe
.A[] good under Safe
good
is always satisfied when the player/controller sticks to actions permitted by Safe
strategy.E<> goal under Safe
goal
state predicate is eventually satisfied when the player/controller uses Safe
strategy.strategy SafeCheap = minE(cost)[<=10] {i,j} -> {d,f} : <> t>=10 under Safe
Safe
strategy into SafeCheap
by minimizing the expected value of cost
expression.saveStrategy("folder/file.json", Safe)
Safe
strategy to the file with path folder/file.json
.strategy Safe = loadStrategy{i,j}->{d,f}("folder/file.json")
folder/file.json
and stores it under the name Safe
.