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