Storm
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
SparseParametricModelSimplifier.h
Go to the documentation of this file.
1
#pragma once
2
3
#include <boost/optional.hpp>
4
#include <memory>
5
#include <string>
6
7
#include "
storm/logic/Formulas.h
"
8
#include "
storm/storage/BitVector.h
"
9
10
namespace
storm
{
11
namespace
transformer {
12
19
template
<
typename
SparseModelType>
20
class
SparseParametricModelSimplifier
{
21
public
:
22
SparseParametricModelSimplifier
(SparseModelType
const
& model);
23
virtual
~SparseParametricModelSimplifier
() =
default
;
24
25
/*
26
* Invokes the simplification of the model w.r.t. the given formula.
27
* Returns true, iff simplification was successful
28
*/
29
bool
simplify
(
storm::logic::Formula
const
& formula);
30
31
/*
32
* Retrieves the simplified model.
33
* Note that simplify(formula) needs to be called first and has to return true. Otherwise an exception is thrown
34
*/
35
std::shared_ptr<SparseModelType>
getSimplifiedModel
()
const
;
36
37
/*
38
* Retrieves the simplified formula.
39
* Note that simplify(formula) needs to be called first and has to return true. Otherwise an exception is thrown
40
*/
41
std::shared_ptr<storm::logic::Formula const>
getSimplifiedFormula
()
const
;
42
43
protected
:
44
// Perform the simplification for the corresponding formula type
45
virtual
bool
simplifyForUntilProbabilities
(
storm::logic::ProbabilityOperatorFormula
const
& formula);
46
virtual
bool
simplifyForReachabilityProbabilities
(
storm::logic::ProbabilityOperatorFormula
const
& formula);
47
virtual
bool
simplifyForBoundedUntilProbabilities
(
storm::logic::ProbabilityOperatorFormula
const
& formula);
48
virtual
bool
simplifyForReachabilityRewards
(
storm::logic::RewardOperatorFormula
const
& formula);
49
virtual
bool
simplifyForCumulativeRewards
(
storm::logic::RewardOperatorFormula
const
& formula);
50
61
static
std::shared_ptr<SparseModelType>
eliminateConstantDeterministicStates
(SparseModelType
const
& model,
62
storm::storage::BitVector
const
& consideredStates,
63
boost::optional<std::string>
const
& rewardModelName = boost::none);
64
65
SparseModelType
const
&
originalModel
;
66
67
std::shared_ptr<SparseModelType>
simplifiedModel
;
68
std::shared_ptr<storm::logic::Formula const>
simplifiedFormula
;
69
};
70
}
// namespace transformer
71
}
// namespace storm
BitVector.h
Formulas.h
storm::logic::Formula
Definition
Formula.h:30
storm::logic::ProbabilityOperatorFormula
Definition
ProbabilityOperatorFormula.h:8
storm::logic::RewardOperatorFormula
Definition
RewardOperatorFormula.h:7
storm::storage::BitVector
A bit vector that is internally represented as a vector of 64-bit values.
Definition
BitVector.h:18
storm::transformer::SparseParametricModelSimplifier
This class performs different steps to simplify the given (parametric) model.
Definition
SparseParametricModelSimplifier.h:20
storm::transformer::SparseParametricModelSimplifier::~SparseParametricModelSimplifier
virtual ~SparseParametricModelSimplifier()=default
storm::transformer::SparseParametricModelSimplifier::simplifyForBoundedUntilProbabilities
virtual bool simplifyForBoundedUntilProbabilities(storm::logic::ProbabilityOperatorFormula const &formula)
Definition
SparseParametricModelSimplifier.cpp:84
storm::transformer::SparseParametricModelSimplifier::simplifyForReachabilityProbabilities
virtual bool simplifyForReachabilityProbabilities(storm::logic::ProbabilityOperatorFormula const &formula)
Definition
SparseParametricModelSimplifier.cpp:76
storm::transformer::SparseParametricModelSimplifier::simplifyForReachabilityRewards
virtual bool simplifyForReachabilityRewards(storm::logic::RewardOperatorFormula const &formula)
Definition
SparseParametricModelSimplifier.cpp:91
storm::transformer::SparseParametricModelSimplifier::simplify
bool simplify(storm::logic::Formula const &formula)
Definition
SparseParametricModelSimplifier.cpp:25
storm::transformer::SparseParametricModelSimplifier::originalModel
SparseModelType const & originalModel
Definition
SparseParametricModelSimplifier.h:65
storm::transformer::SparseParametricModelSimplifier::getSimplifiedFormula
std::shared_ptr< storm::logic::Formula const > getSimplifiedFormula() const
Definition
SparseParametricModelSimplifier.cpp:62
storm::transformer::SparseParametricModelSimplifier::eliminateConstantDeterministicStates
static std::shared_ptr< SparseModelType > eliminateConstantDeterministicStates(SparseModelType const &model, storm::storage::BitVector const &consideredStates, boost::optional< std::string > const &rewardModelName=boost::none)
Eliminates all states that satisfy.
Definition
SparseParametricModelSimplifier.cpp:105
storm::transformer::SparseParametricModelSimplifier::getSimplifiedModel
std::shared_ptr< SparseModelType > getSimplifiedModel() const
Definition
SparseParametricModelSimplifier.cpp:56
storm::transformer::SparseParametricModelSimplifier::simplifiedModel
std::shared_ptr< SparseModelType > simplifiedModel
Definition
SparseParametricModelSimplifier.h:67
storm::transformer::SparseParametricModelSimplifier::simplifyForUntilProbabilities
virtual bool simplifyForUntilProbabilities(storm::logic::ProbabilityOperatorFormula const &formula)
Definition
SparseParametricModelSimplifier.cpp:69
storm::transformer::SparseParametricModelSimplifier::simplifiedFormula
std::shared_ptr< storm::logic::Formula const > simplifiedFormula
Definition
SparseParametricModelSimplifier.h:68
storm::transformer::SparseParametricModelSimplifier::simplifyForCumulativeRewards
virtual bool simplifyForCumulativeRewards(storm::logic::RewardOperatorFormula const &formula)
Definition
SparseParametricModelSimplifier.cpp:98
storm
LabParser.cpp.
Definition
cli.cpp:18
src
storm-pars
transformer
SparseParametricModelSimplifier.h
Generated by
1.9.8