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> weightVector)
override;
72 boost::optional<std::vector<ValueType>>
const& weightedStateRewardVector, std::vector<ValueType>
const& weightVector);
106 virtual void boundedPhase(
Environment const& env, std::vector<ValueType>
const& weightVector, std::vector<ValueType>& weightedRewardVector) = 0;
112 std::vector<ValueType>
const& rewards)
const;
116 std::vector<ValueType>
const& rewards)
const;
119 std::vector<ValueType>
const& rewards)
const;
125 std::map<uint64_t, uint64_t>
const& ecqStateToOptimalMecMap, std::vector<ValueType>& originalSolution,
126 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
ValueType getOptimalWeightedSum() const override
Retrieves the optimal weighted sum of the objective values (or an upper bound thereof).
std::vector< uint64_t > goalStateMergerReducedToInputChoiceMapping
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),...
std::vector< ValueType > offsetsToAchievablePoint
virtual storm::modelchecker::helper::SparseNondeterministicInfiniteHorizonHelper< ValueType > createNondetInfiniteHorizonHelper(storm::storage::SparseMatrix< ValueType > const &transitions) const =0
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 ValueType getWeightedPrecisionUnboundedPhase() const =0
virtual DeterministicInfiniteHorizonHelperType createDetInfiniteHorizonHelper(storm::storage::SparseMatrix< ValueType > const &transitions) const =0
virtual std::vector< ValueType > getAchievablePoint() const override
Retrieves the result of the individual objectives at the initial state of the given model.
storm::storage::BitVector lraObjectives
storm::storage::SparseMatrix< ValueType > transitionMatrix
void infiniteHorizonWeightedPhase(Environment const &env, std::vector< ValueType > const &weightedActionRewardVector, boost::optional< std::vector< ValueType > > const &weightedStateRewardVector, std::vector< ValueType > const &weightVector)
virtual ValueType getWeightedPrecisionBoundedPhase() const =0
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
std::vector< uint64_t > goalStateMergerInputToReducedStateIndexMapping
virtual void check(Environment const &env, std::vector< ValueType > weightVector) override
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
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
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
std::vector< uint64_t > optimalChoices
ValueType offsetToWeightedSum
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