Update to strategy handing. Still a work in progress, but this is stable and will be merged with PRISM-games, where strategy functionality is also in progress.
Overhaul and update of key classes to store strategies (more details in e4610cba615af83ee6d2d0700d72470ebee238ef):
Strategy interface: basic purpose clarified and extended; cleaner handling of memory and randomisation; removed "interactive" methods that track the current state of a strategy.
StrategyGenerator: new interface supporting provision of interfaces at the State (not state index) level, and in an interactive fashion (states are supplied sequentially and the strategy keeps track of its current state, memory, etc.).
StrategyInfo: common super-interface for Strategy and StrategyGenerator supplying basic info (e.g., class of strategy)
StrategyExplicit: new subclass for implementations of Strategy attached to explicit engine models.
StrategyWithStates: base class for implementations of Strategy, which implements the StrategyGenerator interface, given a state-to-index look-up mechanism.
prism.Prism now retains a Strategy if generated/returned during model checking,
accessible via getStrategy(). There is a new method loadStrategyIntoSimulator()
to pass the current strategy to the simulator.
SimulatorEngine has a new mechanism for loading a strategy, as a StrategyGenerator, which it can then optionally enforce and keep track of, e.g., in generated paths (more details in 9a86ecf5a84798c367413dc31f737af7b778b3ad).
GUI support for:
requesting that a strategy be generated
exporting the last generated strategy
viewing/enforcing the last strategy in the simulator
Update to strategy handing. Still a work in progress, but this is stable and will be merged with PRISM-games, where strategy functionality is also in progress.
Overhaul and update of key classes to store strategies (more details in e4610cba615af83ee6d2d0700d72470ebee238ef):
Strategy
interface: basic purpose clarified and extended; cleaner handling of memory and randomisation; removed "interactive" methods that track the current state of a strategy.StrategyGenerator
: new interface supporting provision of interfaces at theState
(not state index) level, and in an interactive fashion (states are supplied sequentially and the strategy keeps track of its current state, memory, etc.).StrategyInfo
: common super-interface forStrategy
andStrategyGenerator
supplying basic info (e.g., class of strategy)StrategyExplicit
: new subclass for implementations ofStrategy
attached to explicit engine models.StrategyWithStates
: base class for implementations ofStrategy
, which implements theStrategyGenerator
interface, given a state-to-index look-up mechanism.prism.Prism
now retains a Strategy if generated/returned during model checking, accessible viagetStrategy()
. There is a new methodloadStrategyIntoSimulator()
to pass the current strategy to the simulator.SimulatorEngine
has a new mechanism for loading a strategy, as aStrategyGenerator
, which it can then optionally enforce and keep track of, e.g., in generated paths (more details in 9a86ecf5a84798c367413dc31f737af7b778b3ad).GUI support for: