1#ifndef STORM_MODELS_SYMBOLIC_STANDARDREWARDMODEL_H_
2#define STORM_MODELS_SYMBOLIC_STANDARDREWARDMODEL_H_
6#include <boost/optional.hpp>
12template<storm::dd::DdType Type,
typename ValueType>
15template<storm::dd::DdType Type>
19namespace expressions {
26template<storm::dd::DdType Type,
typename ValueType>
153 std::set<storm::expressions::Variable>
const& columnVariables)
const;
167 std::set<storm::expressions::Variable>
const& columnVariables)
const;
183 std::set<storm::expressions::Variable>
const& columnVariables)
const;
197 std::set<storm::expressions::Variable>
const& columnVariables,
224 std::set<storm::expressions::Variable>
const& columnVariables,
bool reduceToStateRewards);
226 template<
typename NewValueType>
231 boost::optional<storm::dd::Add<Type, ValueType>> optionalStateRewardVector;
234 boost::optional<storm::dd::Add<Type, ValueType>> optionalStateActionRewardVector;
237 boost::optional<storm::dd::Add<Type, ValueType>> optionalTransitionRewardMatrix;
boost::optional< storm::dd::Add< Type, ValueType > > const & getOptionalStateRewardVector() const
Retrieves an optional value that contains the state reward vector if there is one.
storm::dd::Add< Type, ValueType > const & getStateActionRewardVector() const
Retrieves the state-action rewards of the reward model.
boost::optional< storm::dd::Add< Type, ValueType > > const & getOptionalStateActionRewardVector() const
Retrieves an optional value that contains the state-action reward vector if there is one.
bool hasOnlyStateRewards() const
Retrieves whether the reward model only has state rewards (and hence no other rewards).
void reduceToStateBasedRewards(storm::dd::Add< Type, ValueType > const &transitionMatrix, std::set< storm::expressions::Variable > const &rowVariables, std::set< storm::expressions::Variable > const &columnVariables, bool reduceToStateRewards)
Reduces the transition-based rewards to state-action rewards by taking the average of each row.
bool hasStateRewards() const
Retrieves whether the reward model has state rewards.
storm::dd::Add< Type, ValueType > getTotalRewardVector(storm::dd::Add< Type, ValueType > const &transitionMatrix, std::set< storm::expressions::Variable > const &columnVariables) const
Creates a vector representing the complete reward vector based on the state-, state-action- and trans...
storm::dd::Add< Type, ValueType > const & getTransitionRewardMatrix() const
Retrieves the transition rewards of the reward model.
bool empty() const
Retrieves whether the reward model is empty.
storm::dd::Add< Type, ValueType > const & getStateRewardVector() const
Retrieves the state rewards of the reward model.
bool hasStateActionRewards() const
Retrieves whether the reward model has state-action rewards.
boost::optional< storm::dd::Add< Type, ValueType > > const & getOptionalTransitionRewardMatrix() const
Retrieves an optional value that contains the transition reward matrix if there is one.
StandardRewardModel< Type, ValueType > & operator*=(storm::dd::Add< Type, ValueType > const &filter)
Multiplies all components of the reward model with the given DD.
bool hasTransitionRewards() const
Retrieves whether the reward model has transition rewards.
StandardRewardModel< Type, ValueType > divideStateRewardVector(storm::dd::Add< Type, ValueType > const &divisor) const
Divides the state reward vector of the reward model by the given divisor.
StandardRewardModel< Type, NewValueType > toValueType() const