18namespace modelchecker {
19namespace multiobjective {
27template<
class SparseModelType>
30 typedef typename SparseModelType::ValueType
ValueType;
32 typename std::conditional<std::is_same<SparseModelType, storm::models::sparse::MarkovAutomaton<ValueType>>::value,
52 virtual void check(
Environment const& env, std::vector<ValueType>
const& weightVector)
override;
78 boost::optional<std::vector<ValueType>>
const& weightedStateRewardVector);
102 virtual void boundedPhase(
Environment const& env, std::vector<ValueType>
const& weightVector, std::vector<ValueType>& weightedRewardVector) = 0;
108 std::vector<ValueType>
const& rewards)
const;
112 std::vector<ValueType>
const& rewards)
const;
115 std::vector<ValueType>
const& rewards)
const;
121 std::map<uint64_t, uint64_t>
const& ecqStateToOptimalMecMap, std::vector<ValueType>& originalSolution,
122 std::vector<uint_fast64_t>& originalOptimalChoices)
const;
Helper class for model checking queries that depend on the long run behavior of the (nondeterministic...
Helper class for model checking queries that depend on the long run behavior of the (nondeterministic...
Helper Class that takes a weight vector and ...
Helper Class that takes preprocessed Pcaa data and a weight vector and ...
storm::storage::BitVector totalReward0EStates
void unboundedWeightedPhase(Environment const &env, std::vector< ValueType > const &weightedRewardVector, std::vector< ValueType > const &weightVector)
Determines the scheduler that optimizes the weighted reward vector of the unbounded objectives.
virtual void boundedPhase(Environment const &env, std::vector< ValueType > const &weightVector, std::vector< ValueType > &weightedRewardVector)=0
For each time epoch (starting with the maximal stepBound occurring in the objectives),...
virtual storm::modelchecker::helper::SparseNondeterministicInfiniteHorizonHelper< ValueType > createNondetInfiniteHorizonHelper(storm::storage::SparseMatrix< ValueType > const &transitions) const =0
virtual std::vector< ValueType > getOverApproximationOfInitialStateResults() const override
boost::optional< LraMecDecomposition > lraMecDecomposition
void computeAndSetBoundsToSolver(storm::solver::AbstractEquationSolver< ValueType > &solver, bool requiresLower, bool requiresUpper, storm::storage::SparseMatrix< ValueType > const &transitions, storm::storage::BitVector const &rowsWithSumLessOne, std::vector< ValueType > const &rewards) const
storm::storage::BitVector objectivesWithNoUpperTimeBound
virtual DeterministicInfiniteHorizonHelperType createDetInfiniteHorizonHelper(storm::storage::SparseMatrix< ValueType > const &transitions) const =0
storm::storage::BitVector lraObjectives
storm::storage::SparseMatrix< ValueType > transitionMatrix
std::vector< std::vector< ValueType > > actionRewards
std::vector< std::vector< ValueType > > stateRewards
std::vector< ValueType > weightedResult
SparseModelType::ValueType ValueType
std::vector< std::vector< ValueType > > objectiveResults
boost::optional< EcQuotient > ecQuotient
virtual std::vector< ValueType > getUnderApproximationOfInitialStateResults() const override
Retrieves the results of the individual objectives at the initial state of the given model.
void transformEcqSolutionToOriginalModel(std::vector< ValueType > const &ecqSolution, std::vector< uint_fast64_t > const &ecqOptimalChoices, std::map< uint64_t, uint64_t > const &ecqStateToOptimalMecMap, std::vector< ValueType > &originalSolution, std::vector< uint_fast64_t > &originalOptimalChoices) const
Transforms the results of a min-max-solver that considers a reduced model (without end components) to...
storm::storage::BitVector ecChoicesHint
void infiniteHorizonWeightedPhase(Environment const &env, std::vector< ValueType > const &weightedActionRewardVector, boost::optional< std::vector< ValueType > > const &weightedStateRewardVector)
typename std::conditional< std::is_same< SparseModelType, storm::models::sparse::MarkovAutomaton< ValueType > >::value, storm::modelchecker::helper::SparseNondeterministicInfiniteHorizonHelper< ValueType >, storm::modelchecker::helper::SparseDeterministicInfiniteHorizonHelper< ValueType > >::type DeterministicInfiniteHorizonHelperType
virtual void initializeModelTypeSpecificData(SparseModelType const &model)=0
std::vector< ValueType > offsetsToOverApproximation
virtual storm::storage::Scheduler< ValueType > computeScheduler() const override
Retrieves a scheduler that induces the current values Note that check(..) has to be called before ret...
storm::storage::BitVector actionsWithoutRewardInUnboundedPhase
virtual void check(Environment const &env, std::vector< ValueType > const &weightVector) override
std::vector< ValueType > offsetsToUnderApproximation
std::vector< uint64_t > optimalChoices
void updateEcQuotient(std::vector< ValueType > const &weightedRewardVector)
void initialize(preprocessing::SparseMultiObjectivePreprocessorResult< SparseModelType > const &preprocessorResult)
void unboundedIndividualPhase(Environment const &env, std::vector< ValueType > const &weightVector)
Computes the values of the objectives that do not have a stepBound w.r.t.
void setBoundsToSolver(storm::solver::AbstractEquationSolver< ValueType > &solver, bool requiresLower, bool requiresUpper, uint64_t objIndex, storm::storage::SparseMatrix< ValueType > const &transitions, storm::storage::BitVector const &rowsWithSumLessOne, std::vector< ValueType > const &rewards) const
A bit vector that is internally represented as a vector of 64-bit values.
This class represents the decomposition of a nondeterministic model into its maximal end components.
This class defines which action is chosen in a particular state of a non-deterministic model.
A class that holds a possibly non-square matrix in the compressed row storage format.
std::vector< ValueType > auxStateValues
std::vector< storm::storage::FlatSetStateContainer > ecqToOriginalStateMapping
std::vector< ValueType > auxChoiceValues
storm::storage::SparseMatrix< ValueType > matrix
storm::storage::BitVector origTotalReward0Choices
std::vector< uint_fast64_t > ecqToOriginalChoiceMapping
storm::storage::BitVector rowsWithSumLessOne
std::vector< uint_fast64_t > originalToEcqStateMapping
storm::storage::BitVector ecqStayInEcChoices
storm::storage::BitVector origReward0Choices
std::vector< ValueType > auxMecValues
storm::storage::MaximalEndComponentDecomposition< ValueType > mecs