15class StandardRewardModel;
19namespace modelchecker {
27template<
typename ValueType,
bool Nondeterministic>
34 typename std::conditional<Nondeterministic, storm::storage::MaximalEndComponent, storm::storage::StronglyConnectedComponent>::type;
50 std::vector<ValueType>
const& exitRates);
90 std::vector<ValueType>
const* actionValues =
nullptr);
Helper for model checking queries where we are interested in (optimizing) a single value per state.
Helper class for model checking queries that depend on the long run behavior of the (nondeterministic...
bool isContinuousTime() const
virtual ValueType computeLraForComponent(Environment const &env, ValueGetter const &stateValuesGetter, ValueGetter const &actionValuesGetter, LongRunComponentType const &component)=0
void provideBackwardTransitions(storm::storage::SparseMatrix< ValueType > const &backwardsTransitions)
Provides backward transitions that can be used during the computation.
std::vector< ValueType > computeLongRunAverageRewards(Environment const &env, storm::models::sparse::StandardRewardModel< ValueType > const &rewardModel)
Computes the long run average rewards, i.e., the average reward collected per time unit.
std::function< ValueType(uint64_t)> ValueGetter
Function mapping from indices to values.
void provideLongRunComponentDecomposition(storm::storage::Decomposition< LongRunComponentType > const &decomposition)
Provides the decomposition into long run components (BSCCs/MECs) that can be used during the computat...
virtual void createDecomposition()=0
storm::storage::SparseMatrix< ValueType > const * _backwardTransitions
storm::storage::SparseMatrix< ValueType > const & _transitionMatrix
virtual std::vector< ValueType > buildAndSolveSsp(Environment const &env, std::vector< ValueType > const &mecLraValues)=0
storm::storage::Decomposition< LongRunComponentType > const * _longRunComponentDecomposition
void createBackwardTransitions()
typename std::conditional< Nondeterministic, storm::storage::MaximalEndComponent, storm::storage::StronglyConnectedComponent >::type LongRunComponentType
The type of a component in which the system resides in the long run (BSCC for deterministic models,...
std::vector< ValueType > computeLongRunAverageProbabilities(Environment const &env, storm::storage::BitVector const &psiStates)
Computes the long run average probabilities, i.e., the fraction of the time we are in a psiState.
std::vector< ValueType > const * _exitRates
std::vector< ValueType > computeLongRunAverageValues(Environment const &env, std::vector< ValueType > const *stateValues=nullptr, std::vector< ValueType > const *actionValues=nullptr)
Computes the long run average value given the provided state and action-based rewards.
std::unique_ptr< storm::storage::Decomposition< LongRunComponentType > > _computedLongRunComponentDecomposition
boost::optional< std::vector< uint64_t > > _producedOptimalChoices
std::unique_ptr< storm::storage::SparseMatrix< ValueType > > _computedBackwardTransitions
storm::storage::BitVector const * _markovianStates
A bit vector that is internally represented as a vector of 64-bit values.
This class represents the decomposition of a model into blocks which are of the template type.
A class that holds a possibly non-square matrix in the compressed row storage format.