Storm 1.14.0.1
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
verification.h
Go to the documentation of this file.
1#pragma once
2
3#include <limits>
4#include <memory>
5#include <unordered_map>
6#include <vector>
7
15
16namespace storm {
17namespace pomdp {
18namespace api {
19
30template<typename ValueType>
33 uint64_t sizeThreshold,
34 std::vector<std::vector<std::unordered_map<uint64_t, ValueType>>> additionalPomdpStateValues =
35 std::vector<std::vector<std::unordered_map<uint64_t, ValueType>>>()) {
37 options.useClipping = false;
38 options.useStateEliminationCutoff = false;
39 options.sizeThresholdInit = sizeThreshold;
41 return modelchecker.check(task.getFormula(), additionalPomdpStateValues);
42}
43
55template<typename ValueType>
67
68// Interactive Interface
77template<typename ValueType>
92
101template<typename ValueType>
104 std::vector<std::vector<std::unordered_map<uint64_t, ValueType>>> additionalPomdpStateValues =
105 std::vector<std::vector<std::unordered_map<uint64_t, ValueType>>>()) {
106 modelchecker.check(task.getFormula(), additionalPomdpStateValues);
107}
108
115template<typename ValueType>
116std::shared_ptr<storm::models::sparse::Model<ValueType>> extractSchedulerAsMarkovChain(
118 return modelcheckingResult.schedulerAsMarkovChain;
119}
120
128template<typename ValueType>
131 uint64_t schedId) {
132 return modelcheckingResult.cutoffSchedulers.at(schedId);
133}
134
141template<typename ValueType>
144 return modelcheckingResult.cutoffSchedulers.size();
145}
146} // namespace api
147} // namespace pomdp
148} // namespace storm
FormulaType const & getFormula() const
Retrieves the formula from this task.
Definition CheckTask.h:141
This class represents a partially observable Markov decision process.
Definition Pomdp.h:13
Model checker for checking reachability queries on POMDPs using approximations based on exploration o...
This class defines which action is chosen in a particular state of a non-deterministic model.
Definition Scheduler.h:18
storm::storage::Scheduler< ValueType > getCutoffScheduler(typename storm::pomdp::modelchecker::BeliefExplorationPomdpModelChecker< storm::models::sparse::Pomdp< ValueType > >::Result modelcheckingResult, uint64_t schedId)
Get a specific scheduler used to generate cut-off values from the result struct.
uint64_t getNumberOfPreprocessingSchedulers(typename storm::pomdp::modelchecker::BeliefExplorationPomdpModelChecker< storm::models::sparse::Pomdp< ValueType > >::Result modelcheckingResult)
Get the overall number of schedulers generated by the pre-processing for the under-approximation from...
storm::pomdp::modelchecker::BeliefExplorationPomdpModelChecker< storm::models::sparse::Pomdp< ValueType > >::Result underapproximateWithoutHeuristicValues(std::shared_ptr< storm::models::sparse::Pomdp< ValueType > > pomdp, storm::modelchecker::CheckTask< storm::logic::Formula, ValueType > const &task, uint64_t sizeThreshold, std::vector< std::vector< std::unordered_map< uint64_t, ValueType > > > pomdpStateValues)
Uses the belief exploration with cut-offs without the pre-processing to generate cut-off values to un...
storm::pomdp::modelchecker::BeliefExplorationPomdpModelChecker< storm::models::sparse::Pomdp< ValueType > >::Result underapproximateWithCutoffs(std::shared_ptr< storm::models::sparse::Pomdp< ValueType > > pomdp, storm::modelchecker::CheckTask< storm::logic::Formula, ValueType > const &task, uint64_t sizeThreshold, std::vector< std::vector< std::unordered_map< uint64_t, ValueType > > > additionalPomdpStateValues=std::vector< std::vector< std::unordered_map< uint64_t, ValueType > > >())
Uses the belief exploration with cut-offs to under-approximate the given objective on a POMDP.
std::shared_ptr< storm::models::sparse::Model< ValueType > > extractSchedulerAsMarkovChain(typename storm::pomdp::modelchecker::BeliefExplorationPomdpModelChecker< storm::models::sparse::Pomdp< ValueType > >::Result modelcheckingResult)
Extract the scheduler generated by an under-approximation from the given result struct.
void startInteractiveExploration(storm::pomdp::modelchecker::BeliefExplorationPomdpModelChecker< storm::models::sparse::Pomdp< ValueType > > &modelchecker, storm::modelchecker::CheckTask< storm::logic::Formula, ValueType > const &task, std::vector< std::vector< std::unordered_map< uint64_t, ValueType > > > additionalPomdpStateValues=std::vector< std::vector< std::unordered_map< uint64_t, ValueType > > >())
Start an interactive unfolding to under approximate the given objective.
storm::pomdp::modelchecker::BeliefExplorationPomdpModelChecker< storm::models::sparse::Pomdp< ValueType > > createInteractiveUnfoldingModelChecker(storm::Environment const &env, std::shared_ptr< storm::models::sparse::Pomdp< ValueType > > pomdp, bool useClipping)
Create a model checker with the correct settings for an interactive unfolding.