Stormpy.pomdp¶
- class BeliefExplorationModelCheckerDouble(self: stormpy.pomdp._pomdp.BeliefExplorationModelCheckerDouble, model: stormpy.storage._storage.SparsePomdp, options: storm::pomdp::modelchecker::BeliefExplorationPomdpModelCheckerOptions<double>)¶
- check(self: stormpy.pomdp._pomdp.BeliefExplorationModelCheckerDouble, formula: stormpy.logic._logic.Formula, cutoff_values: collections.abc.Sequence[collections.abc.Sequence[collections.abc.Mapping[SupportsInt, SupportsFloat]]]) storm::pomdp::modelchecker::BeliefExplorationPomdpModelChecker<storm::models::sparse::Pomdp<double, storm::models::sparse::StandardRewardModel<double> >, double, double>::Result ¶
- check_with_environment(self: stormpy.pomdp._pomdp.BeliefExplorationModelCheckerDouble, environment: stormpy._core.Environment, formula: stormpy.logic._logic.Formula, cutoff_values: collections.abc.Sequence[collections.abc.Sequence[collections.abc.Mapping[SupportsInt, SupportsFloat]]]) storm::pomdp::modelchecker::BeliefExplorationPomdpModelChecker<storm::models::sparse::Pomdp<double, storm::models::sparse::StandardRewardModel<double> >, double, double>::Result ¶
- check_with_environment_and_pre_processing_environment(self: stormpy.pomdp._pomdp.BeliefExplorationModelCheckerDouble, environment: stormpy._core.Environment, formula: stormpy.logic._logic.Formula, pre_processing_environment: stormpy._core.Environment, cutoff_values: collections.abc.Sequence[collections.abc.Sequence[collections.abc.Mapping[SupportsInt, SupportsFloat]]]) storm::pomdp::modelchecker::BeliefExplorationPomdpModelChecker<storm::models::sparse::Pomdp<double, storm::models::sparse::StandardRewardModel<double> >, double, double>::Result ¶
- check_with_preprocessing_environment(self: stormpy.pomdp._pomdp.BeliefExplorationModelCheckerDouble, formula: stormpy.logic._logic.Formula, pre_processing_environment: stormpy._core.Environment, cutoff_values: collections.abc.Sequence[collections.abc.Sequence[collections.abc.Mapping[SupportsInt, SupportsFloat]]]) storm::pomdp::modelchecker::BeliefExplorationPomdpModelChecker<storm::models::sparse::Pomdp<double, storm::models::sparse::StandardRewardModel<double> >, double, double>::Result ¶
- continue_unfolding(self: stormpy.pomdp._pomdp.BeliefExplorationModelCheckerDouble) None ¶
- get_interactive_belief_explorer(self: stormpy.pomdp._pomdp.BeliefExplorationModelCheckerDouble) storm::builder::BeliefMdpExplorer<storm::models::sparse::Pomdp<double, storm::models::sparse::StandardRewardModel<double> >, double> ¶
- get_interactive_result(self: stormpy.pomdp._pomdp.BeliefExplorationModelCheckerDouble) storm::pomdp::modelchecker::BeliefExplorationPomdpModelChecker<storm::models::sparse::Pomdp<double, storm::models::sparse::StandardRewardModel<double> >, double, double>::Result ¶
- get_status(self: stormpy.pomdp._pomdp.BeliefExplorationModelCheckerDouble) int ¶
- has_converged(self: stormpy.pomdp._pomdp.BeliefExplorationModelCheckerDouble) bool ¶
- is_exploring(self: stormpy.pomdp._pomdp.BeliefExplorationModelCheckerDouble) bool ¶
- is_result_ready(self: stormpy.pomdp._pomdp.BeliefExplorationModelCheckerDouble) bool ¶
- pause_unfolding(self: stormpy.pomdp._pomdp.BeliefExplorationModelCheckerDouble) None ¶
- set_fsc_values(self: stormpy.pomdp._pomdp.BeliefExplorationModelCheckerDouble, value_list: collections.abc.Sequence[collections.abc.Sequence[collections.abc.Mapping[SupportsInt, SupportsFloat]]]) None ¶
- terminate_unfolding(self: stormpy.pomdp._pomdp.BeliefExplorationModelCheckerDouble) None ¶
- class BeliefExplorationModelCheckerOptionsDouble(self: stormpy.pomdp._pomdp.BeliefExplorationModelCheckerOptionsDouble, discretize: bool, unfold: bool)¶
- property clipping_grid_res¶
- property cut_zero_gap¶
- property exploration_heuristic¶
- property exploration_time_limit¶
- property gap_threshold_init¶
- property interactive_unfolding¶
- property refine¶
- property refine_precision¶
- property refine_step_limit¶
- property size_threshold_factor¶
- property size_threshold_init¶
- property skip_heuristic_schedulers¶
- property use_clipping¶
- property use_state_elimination_cutoff¶
- class BeliefExplorationPomdpModelCheckerResultDouble¶
- property cutoff_schedulers¶
- property induced_mc_from_scheduler¶
- property lower_bound¶
- property upper_bound¶
- class BeliefMdpExplorerDouble¶
- set_fsc_values(self: stormpy.pomdp._pomdp.BeliefMdpExplorerDouble, value_list: collections.abc.Sequence[collections.abc.Sequence[collections.abc.Mapping[SupportsInt, SupportsFloat]]]) None ¶
- class BeliefSupportTrackerDouble(self: stormpy.pomdp._pomdp.BeliefSupportTrackerDouble, pomdp: stormpy.storage._storage.SparsePomdp)¶
Tracker for BeliefSupports
- get_current_belief_support(self: stormpy.pomdp._pomdp.BeliefSupportTrackerDouble) stormpy.storage._storage.BitVector ¶
What is the support given the trace so far
- track(self: stormpy.pomdp._pomdp.BeliefSupportTrackerDouble, action: SupportsInt, observation: SupportsInt) None ¶
- class BeliefSupportTrackerExact(self: stormpy.pomdp._pomdp.BeliefSupportTrackerExact, pomdp: stormpy.storage._storage.SparseExactPomdp)¶
Tracker for BeliefSupports
- get_current_belief_support(self: stormpy.pomdp._pomdp.BeliefSupportTrackerExact) stormpy.storage._storage.BitVector ¶
What is the support given the trace so far
- track(self: stormpy.pomdp._pomdp.BeliefSupportTrackerExact, action: SupportsInt, observation: SupportsInt) None ¶
- class BeliefSupportWinningRegion¶
- static load_from_file(filepath: str) tuple[stormpy.pomdp._pomdp.BeliefSupportWinningRegion, str] ¶
- store_to_file(self: stormpy.pomdp._pomdp.BeliefSupportWinningRegion, filepath: str, preamble: str, append: bool = False) None ¶
- class BeliefSupportWinningRegionQueryInterfaceDouble(self: stormpy.pomdp._pomdp.BeliefSupportWinningRegionQueryInterfaceDouble, pomdp: stormpy.storage._storage.SparsePomdp, BeliefSupportWinningRegion: storm::pomdp::WinningRegion)¶
- query_action(self: stormpy.pomdp._pomdp.BeliefSupportWinningRegionQueryInterfaceDouble, current_belief: stormpy.storage._storage.BitVector, action: SupportsInt) bool ¶
- query_current_belief(self: stormpy.pomdp._pomdp.BeliefSupportWinningRegionQueryInterfaceDouble, current_belief: stormpy.storage._storage.BitVector) bool ¶
- class IterativeQualitativeSearchOptions(self: stormpy.pomdp._pomdp.IterativeQualitativeSearchOptions)¶
Options for the IterativeQualitativeSearch
- class IterativeQualitativeSearchSolverDouble¶
Solver for POMDPs that solves qualitative queries
- compute_winning_policy_for_initial_states(self: stormpy.pomdp._pomdp.IterativeQualitativeSearchSolverDouble, lookahead: SupportsInt) bool ¶
- compute_winning_region(self: stormpy.pomdp._pomdp.IterativeQualitativeSearchSolverDouble, lookahead: SupportsInt) None ¶
- property last_winning_region¶
get the last computed winning region
- class NondeterministicBeliefTrackerDoubleSparse(self: stormpy.pomdp._pomdp.NondeterministicBeliefTrackerDoubleSparse, pomdp: stormpy.storage._storage.SparsePomdp, options: stormpy.pomdp._pomdp.NondeterministicBeliefTrackerDoubleSparseOptions)¶
Tracker for belief states and uncontrollable actions
- dimension(self: stormpy.pomdp._pomdp.NondeterministicBeliefTrackerDoubleSparse) int ¶
- obtain_beliefs(self: stormpy.pomdp._pomdp.NondeterministicBeliefTrackerDoubleSparse) set[stormpy.pomdp._pomdp.SparseBeliefStateDouble] ¶
- obtain_current_risk(self: stormpy.pomdp._pomdp.NondeterministicBeliefTrackerDoubleSparse, max: bool = True) float ¶
- obtain_last_observation(self: stormpy.pomdp._pomdp.NondeterministicBeliefTrackerDoubleSparse) int ¶
- reduce(self: stormpy.pomdp._pomdp.NondeterministicBeliefTrackerDoubleSparse) int ¶
- reduction_timed_out(self: stormpy.pomdp._pomdp.NondeterministicBeliefTrackerDoubleSparse) bool ¶
- reset(self: stormpy.pomdp._pomdp.NondeterministicBeliefTrackerDoubleSparse, arg0: SupportsInt) bool ¶
- set_risk(self: stormpy.pomdp._pomdp.NondeterministicBeliefTrackerDoubleSparse, risk: collections.abc.Sequence[SupportsFloat]) None ¶
- size(self: stormpy.pomdp._pomdp.NondeterministicBeliefTrackerDoubleSparse) int ¶
- track(self: stormpy.pomdp._pomdp.NondeterministicBeliefTrackerDoubleSparse, observation: SupportsInt) bool ¶
- class NondeterministicBeliefTrackerDoubleSparseOptions(self: stormpy.pomdp._pomdp.NondeterministicBeliefTrackerDoubleSparseOptions)¶
Options for the corresponding tracker
- property reduction_timeout¶
- property reduction_wiggle¶
- property track_timeout¶
- class NondeterministicBeliefTrackerExactSparse(self: stormpy.pomdp._pomdp.NondeterministicBeliefTrackerExactSparse, pomdp: stormpy.storage._storage.SparseExactPomdp, options: stormpy.pomdp._pomdp.NondeterministicBeliefTrackerExactSparseOptions)¶
Tracker for belief states and uncontrollable actions
- dimension(self: stormpy.pomdp._pomdp.NondeterministicBeliefTrackerExactSparse) int ¶
- obtain_beliefs(self: stormpy.pomdp._pomdp.NondeterministicBeliefTrackerExactSparse) set[stormpy.pomdp._pomdp.SparseBeliefStateExact] ¶
- obtain_current_risk(self: stormpy.pomdp._pomdp.NondeterministicBeliefTrackerExactSparse, max: bool = True) stormpy.pycarl.gmp.Rational ¶
- obtain_last_observation(self: stormpy.pomdp._pomdp.NondeterministicBeliefTrackerExactSparse) int ¶
- reduce(self: stormpy.pomdp._pomdp.NondeterministicBeliefTrackerExactSparse) int ¶
- reduction_timed_out(self: stormpy.pomdp._pomdp.NondeterministicBeliefTrackerExactSparse) bool ¶
- reset(self: stormpy.pomdp._pomdp.NondeterministicBeliefTrackerExactSparse, arg0: SupportsInt) bool ¶
- set_risk(self: stormpy.pomdp._pomdp.NondeterministicBeliefTrackerExactSparse, risk: collections.abc.Sequence[stormpy.pycarl.gmp.Rational]) None ¶
- size(self: stormpy.pomdp._pomdp.NondeterministicBeliefTrackerExactSparse) int ¶
- track(self: stormpy.pomdp._pomdp.NondeterministicBeliefTrackerExactSparse, observation: SupportsInt) bool ¶
- class NondeterministicBeliefTrackerExactSparseOptions(self: stormpy.pomdp._pomdp.NondeterministicBeliefTrackerExactSparseOptions)¶
Options for the corresponding tracker
- property reduction_timeout¶
- property reduction_wiggle¶
- property track_timeout¶
- class ObservationTraceUnfolderDouble(self: stormpy.pomdp._pomdp.ObservationTraceUnfolderDouble, model: stormpy.storage._storage.SparsePomdp, risk: collections.abc.Sequence[SupportsFloat], expression_manager: stormpy.storage._storage.ExpressionManager)¶
Unfolds observation traces in models
- extend(self: stormpy.pomdp._pomdp.ObservationTraceUnfolderDouble, new_observation: SupportsInt) stormpy.storage._storage.SparseMdp ¶
- reset(self: stormpy.pomdp._pomdp.ObservationTraceUnfolderDouble, new_observation: SupportsInt) None ¶
- transform(self: stormpy.pomdp._pomdp.ObservationTraceUnfolderDouble, trace: collections.abc.Sequence[SupportsInt]) stormpy.storage._storage.SparseMdp ¶
- class ObservationTraceUnfolderExact(self: stormpy.pomdp._pomdp.ObservationTraceUnfolderExact, model: stormpy.storage._storage.SparseExactPomdp, risk: collections.abc.Sequence[stormpy.pycarl.gmp.Rational], expression_manager: stormpy.storage._storage.ExpressionManager)¶
Unfolds observation traces in models
- extend(self: stormpy.pomdp._pomdp.ObservationTraceUnfolderExact, new_observation: SupportsInt) stormpy.storage._storage.SparseExactMdp ¶
- reset(self: stormpy.pomdp._pomdp.ObservationTraceUnfolderExact, new_observation: SupportsInt) None ¶
- transform(self: stormpy.pomdp._pomdp.ObservationTraceUnfolderExact, trace: collections.abc.Sequence[SupportsInt]) stormpy.storage._storage.SparseExactMdp ¶
- class ObservationTraceUnfolderRf(self: stormpy.pomdp._pomdp.ObservationTraceUnfolderRf, model: stormpy.storage._storage.SparseParametricPomdp, risk: collections.abc.Sequence[stormpy.pycarl.cln.FactorizedRationalFunction], expression_manager: stormpy.storage._storage.ExpressionManager)¶
Unfolds observation traces in models
- extend(self: stormpy.pomdp._pomdp.ObservationTraceUnfolderRf, new_observation: SupportsInt) stormpy.storage._storage.SparseParametricMdp ¶
- reset(self: stormpy.pomdp._pomdp.ObservationTraceUnfolderRf, new_observation: SupportsInt) None ¶
- transform(self: stormpy.pomdp._pomdp.ObservationTraceUnfolderRf, trace: collections.abc.Sequence[SupportsInt]) stormpy.storage._storage.SparseParametricMdp ¶
- class PomdpFscApplicationMode(self: stormpy.pomdp._pomdp.PomdpFscApplicationMode, value: SupportsInt)¶
Members:
standard
simple_linear
simple_linear_inverse
simple_log
full
- full = <PomdpFscApplicationMode.full: 4>¶
- property name¶
- simple_linear = <PomdpFscApplicationMode.simple_linear: 1>¶
- simple_linear_inverse = <PomdpFscApplicationMode.simple_linear_inverse: 2>¶
- simple_log = <PomdpFscApplicationMode.simple_log: 3>¶
- standard = <PomdpFscApplicationMode.standard: 0>¶
- property value¶
- class PomdpMemory¶
Memory for POMDP policies
- property nr_states¶
How many states does the memory structure have
- class PomdpMemoryBuilder(self: stormpy.pomdp._pomdp.PomdpMemoryBuilder)¶
MemoryBuilder for POMDP policies
- build(self: stormpy.pomdp._pomdp.PomdpMemoryBuilder, pattern: stormpy.pomdp._pomdp.PomdpMemoryPattern, nr_states: SupportsInt) stormpy.pomdp._pomdp.PomdpMemory ¶
- class PomdpMemoryPattern(self: stormpy.pomdp._pomdp.PomdpMemoryPattern, value: SupportsInt)¶
Memory pattern for POMDP memory
Members:
trivial
fixed_counter
selective_counter
fixed_ring
selective_ring
settable_bits
full
- fixed_counter = <PomdpMemoryPattern.fixed_counter: 1>¶
- fixed_ring = <PomdpMemoryPattern.fixed_ring: 3>¶
- full = <PomdpMemoryPattern.full: 6>¶
- property name¶
- selective_counter = <PomdpMemoryPattern.selective_counter: 2>¶
- selective_ring = <PomdpMemoryPattern.selective_ring: 4>¶
- settable_bits = <PomdpMemoryPattern.settable_bits: 5>¶
- trivial = <PomdpMemoryPattern.trivial: 0>¶
- property value¶
- class SparseBeliefStateDouble¶
Belief state in sparse format
- get(self: stormpy.pomdp._pomdp.SparseBeliefStateDouble, state: SupportsInt) float ¶
- property is_valid¶
- property risk¶
- class SparseBeliefStateExact¶
Belief state in sparse format
- get(self: stormpy.pomdp._pomdp.SparseBeliefStateExact, state: SupportsInt) stormpy.pycarl.gmp.Rational ¶
- property is_valid¶
- property risk¶
- apply_unknown_fsc(model, mode)¶
- create_interactive_mc(env: stormpy._core.Environment, pomdp: stormpy.storage._storage.SparsePomdp, use_clipping: bool) stormpy.pomdp._pomdp.BeliefExplorationModelCheckerDouble ¶
- create_iterative_qualitative_search_solver_Double(pomdp: stormpy.storage._storage.SparsePomdp, formula: stormpy.logic._logic.Formula, options: storm::pomdp::MemlessSearchOptions) storm::pomdp::IterativePolicySearch<double> ¶
Create solver
- create_nondeterminstic_belief_tracker(model, reduction_timeout, track_timeout)¶
- Parameters:
model – A POMDP
reduction_timeout – timeout in milliseconds for the reduction algorithm, 0 for no timeout.
- Returns:
- create_observation_trace_unfolder(model, risk_assessment, expr_manager)¶
- Parameters:
model
risk_assessment
expr_manager
- Returns:
- make_canonic(model)¶
Make the POMDP canonic :param model: :return:
- make_simple(model, keep_state_valuations=False)¶
Make the POMDP simple (aka alternating), i.e., each state has at most two actions, and if there is nondeterminism, then there is no probabilistic branching,
- Parameters:
model
- Returns:
- prepare_pomdp_for_qualitative_search_Double(pomdp: stormpy.storage._storage.SparsePomdp, formula: stormpy.logic._logic.Formula) stormpy.storage._storage.SparsePomdp ¶
Preprocess POMDP
- unfold_memory(model, memory, add_memory_labels=False, keep_state_valuations=False)¶
Unfold the memory for an FSC into the POMDP
- Parameters:
model – A pomdp
memory – A memory structure
- Returns:
A pomdp that contains states from the product of the original POMDP and the FSC Memory