21 changed files with 154 additions and 18 deletions
-
2examples/multi-objective/mdp/dpm/dpm100_numerical.pctl
-
4src/logic/CloneVisitor.cpp
-
1src/logic/CloneVisitor.h
-
13src/logic/ComparisonType.h
-
12src/logic/Formula.cpp
-
4src/logic/Formula.h
-
4src/logic/FormulaInformationVisitor.cpp
-
1src/logic/FormulaInformationVisitor.h
-
1src/logic/FormulaVisitor.h
-
1src/logic/Formulas.h
-
1src/logic/FormulasForwardDeclarations.h
-
5src/logic/FragmentChecker.cpp
-
1src/logic/FragmentChecker.h
-
15src/logic/FragmentSpecification.cpp
-
4src/logic/FragmentSpecification.h
-
4src/logic/ToExpressionVisitor.cpp
-
1src/logic/ToExpressionVisitor.h
-
28src/logic/TotalRewardFormula.cpp
-
29src/logic/TotalRewardFormula.h
-
2src/modelchecker/multiobjective/SparseMdpMultiObjectiveModelChecker.cpp
-
13src/parser/FormulaParser.cpp
@ -1,3 +1,3 @@ |
|||||
multi(R{"power"}min=? [ C<=100 ], R{"queue"}<=70 [ C<=100 ]); |
|
||||
|
multi(R{"power"}min=? [ C<=100 ], R{"queue"}<=70 [ C<=100 ]) |
||||
// Note: The property file from http://www.prismmodelchecker.org/files/atva12mo/ does not provide a threshold for the second objective. |
// Note: The property file from http://www.prismmodelchecker.org/files/atva12mo/ does not provide a threshold for the second objective. |
||||
// We pick a threshold that intersects the pareto curve. |
// We pick a threshold that intersects the pareto curve. |
@ -0,0 +1,28 @@ |
|||||
|
#include "src/logic/TotalRewardFormula.h"
|
||||
|
|
||||
|
#include "src/logic/FormulaVisitor.h"
|
||||
|
|
||||
|
namespace storm { |
||||
|
namespace logic { |
||||
|
TotalRewardFormula::TotalRewardFormula() { |
||||
|
// Intentionally left empty.
|
||||
|
} |
||||
|
|
||||
|
bool TotalRewardFormula::isTotalRewardFormula() const { |
||||
|
return true; |
||||
|
} |
||||
|
|
||||
|
bool TotalRewardFormula::isRewardPathFormula() const { |
||||
|
return true; |
||||
|
} |
||||
|
|
||||
|
boost::any TotalRewardFormula::accept(FormulaVisitor const& visitor, boost::any const& data) const { |
||||
|
return visitor.visit(*this, data); |
||||
|
} |
||||
|
|
||||
|
std::ostream& TotalRewardFormula::writeToStream(std::ostream& out) const { |
||||
|
out << "C"; |
||||
|
return out; |
||||
|
} |
||||
|
} |
||||
|
} |
@ -0,0 +1,29 @@ |
|||||
|
#ifndef STORM_LOGIC_TOTALREWARDFORMULA_H_ |
||||
|
#define STORM_LOGIC_TOTALREWARDFORMULA_H_ |
||||
|
|
||||
|
#include <boost/variant.hpp> |
||||
|
|
||||
|
#include "src/logic/PathFormula.h" |
||||
|
|
||||
|
namespace storm { |
||||
|
namespace logic { |
||||
|
class TotalRewardFormula : public PathFormula { |
||||
|
public: |
||||
|
TotalRewardFormula(); |
||||
|
|
||||
|
virtual ~TotalRewardFormula() { |
||||
|
// Intentionally left empty. |
||||
|
} |
||||
|
|
||||
|
virtual bool isTotalRewardFormula() const override; |
||||
|
virtual bool isRewardPathFormula() const override; |
||||
|
|
||||
|
virtual boost::any accept(FormulaVisitor const& visitor, boost::any const& data) const override; |
||||
|
|
||||
|
virtual std::ostream& writeToStream(std::ostream& out) const override; |
||||
|
|
||||
|
}; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
#endif /* STORM_LOGIC_TOTALREWARDFORMULA_H_ */ |
Write
Preview
Loading…
Cancel
Save
Reference in new issue