|
|
@ -3,6 +3,7 @@ |
|
|
|
#include "storm/storage/expressions/Expression.h"
|
|
|
|
#include "storm/storage/expressions/Variable.h"
|
|
|
|
#include "storm/storage/jani/Model.h"
|
|
|
|
#include "storm/storage/jani/expressions/JaniExpressionSubstitutionVisitor.h"
|
|
|
|
|
|
|
|
namespace storm { |
|
|
|
namespace jani { |
|
|
@ -15,8 +16,8 @@ namespace storm { |
|
|
|
// Intentionally left empty
|
|
|
|
} |
|
|
|
|
|
|
|
RewardModelInformation::RewardModelInformation(Model const& model, storm::expressions::Expression const& rewardModelExpression) : stateRewards(false), actionRewards(false), transitionRewards(false), destinationDependendRewards(false) { |
|
|
|
auto variablesInRewardExpression = rewardExpression.getVariables(); |
|
|
|
RewardModelInformation::RewardModelInformation(Model const& model, storm::expressions::Expression const& rewardModelExpression) : stateRewards(false), actionRewards(false), transitionRewards(false) { |
|
|
|
auto variablesInRewardExpression = rewardModelExpression.getVariables(); |
|
|
|
std::map<storm::expressions::Variable, storm::expressions::Expression> initialSubstitution; |
|
|
|
for (auto const& v : variablesInRewardExpression) { |
|
|
|
STORM_LOG_ASSERT(model.hasGlobalVariable(v.getName()), "Unable to find global variable " << v.getName() << " occurring in a reward expression."); |
|
|
@ -25,7 +26,7 @@ namespace storm { |
|
|
|
initialSubstitution.emplace(v, janiVar.getInitExpression()); |
|
|
|
} |
|
|
|
} |
|
|
|
auto initExpr = storm::jani::substituteJaniExpression(rewardExpression, initialSubstitution); |
|
|
|
auto initExpr = storm::jani::substituteJaniExpression(rewardModelExpression, initialSubstitution); |
|
|
|
if (initExpr.containsVariables() || !storm::utility::isZero(initExpr.evaluateAsRational())) { |
|
|
|
stateRewards = true; |
|
|
|
actionRewards = true; |
|
|
@ -91,7 +92,7 @@ namespace storm { |
|
|
|
} |
|
|
|
|
|
|
|
bool RewardModelInformation::hasTransitionRewards () const { |
|
|
|
return transitionReward; |
|
|
|
return transitionRewards; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|