You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
84 lines
1.9 KiB
84 lines
1.9 KiB
/*
|
|
* RewardModel.h
|
|
*
|
|
* Created on: 04.01.2013
|
|
* Author: Christian Dehnert
|
|
*/
|
|
|
|
#ifndef STORM_IR_REWARDMODEL_H_
|
|
#define STORM_IR_REWARDMODEL_H_
|
|
|
|
#include "StateReward.h"
|
|
#include "TransitionReward.h"
|
|
|
|
#include <string>
|
|
#include <vector>
|
|
|
|
namespace storm {
|
|
|
|
namespace ir {
|
|
|
|
/*!
|
|
* A class representing a reward model.
|
|
*/
|
|
class RewardModel {
|
|
public:
|
|
/*!
|
|
* Default constructor. Creates an empty reward model.
|
|
*/
|
|
RewardModel();
|
|
|
|
/*!
|
|
* Creates a reward module with the given name, state and transition rewards.
|
|
* @param rewardModelName the name of the reward model.
|
|
* @param stateRewards A vector of state-based reward.
|
|
* @param transitionRewards A vector of transition-based reward.
|
|
*/
|
|
RewardModel(std::string rewardModelName, std::vector<storm::ir::StateReward> stateRewards, std::vector<storm::ir::TransitionReward> transitionRewards);
|
|
|
|
/*!
|
|
* Retrieves a string representation of this variable.
|
|
* @returns a string representation of this variable.
|
|
*/
|
|
std::string toString() const;
|
|
|
|
/*!
|
|
* Check, if there are any state rewards.
|
|
* @return True, iff there are any state rewards.
|
|
*/
|
|
bool hasStateRewards() const;
|
|
|
|
/*!
|
|
* Retrieve state rewards.
|
|
* @return State rewards.
|
|
*/
|
|
std::vector<storm::ir::StateReward> getStateRewards() const;
|
|
|
|
/*!
|
|
* Check, if there are any transition rewards.
|
|
* @return True, iff there are any transition rewards.
|
|
*/
|
|
bool hasTransitionRewards() const;
|
|
|
|
/*!
|
|
* Retrieve transition rewards.
|
|
* @return Transition rewards.
|
|
*/
|
|
std::vector<storm::ir::TransitionReward> getTransitionRewards() const;
|
|
|
|
private:
|
|
// The name of the reward model.
|
|
std::string rewardModelName;
|
|
|
|
// The state-based rewards associated with this reward model.
|
|
std::vector<storm::ir::StateReward> stateRewards;
|
|
|
|
// The transition-based rewards associated with this reward model.
|
|
std::vector<storm::ir::TransitionReward> transitionRewards;
|
|
};
|
|
|
|
} // namespace ir
|
|
|
|
} // namespace storm
|
|
|
|
#endif /* STORM_IR_REWARDMODEL_H_ */
|