Storm
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
Objective.h
Go to the documentation of this file.
1#pragma once
2
3#include <boost/optional.hpp>
4
5#include "storm/logic/Bound.h"
10
11namespace storm {
12namespace modelchecker {
13namespace multiobjective {
14template<typename ValueType>
15struct Objective {
16 // the original input formula
17 std::shared_ptr<storm::logic::Formula const> originalFormula;
18
19 // The preprocessed (simplified) formula
20 std::shared_ptr<storm::logic::OperatorFormula const> formula;
21
22 // True iff the complementary event is considered.
23 // E.g. if we consider P<1-t [F !"safe"] instead of P>=t [ G "safe"]
25
26 // Limitations for the quantitative objective value (e.g. 0 <= value <= 1 for probabilities).
27 // Can be used to guide the underlying solver
28 boost::optional<ValueType> lowerResultBound, upperResultBound;
29
30 void printToStream(std::ostream& out) const {
31 out << "Original: " << *originalFormula;
32 out << " \t";
33 out << "Preprocessed: " << *formula;
35 out << " (Complementary event)";
36 }
37 out << " \t";
38 out << "result bounds: ";
40 out << "[" << *lowerResultBound << ", " << *upperResultBound << "]";
41 } else if (lowerResultBound) {
42 out << ">=" << *lowerResultBound;
43 } else if (upperResultBound) {
44 out << "<=" << *upperResultBound;
45 } else {
46 out << " -none- ";
47 }
48 }
49};
50} // namespace multiobjective
51} // namespace modelchecker
52} // namespace storm
LabParser.cpp.
Definition cli.cpp:18
boost::optional< ValueType > upperResultBound
Definition Objective.h:28
boost::optional< ValueType > lowerResultBound
Definition Objective.h:28
std::shared_ptr< storm::logic::Formula const > originalFormula
Definition Objective.h:17
void printToStream(std::ostream &out) const
Definition Objective.h:30
std::shared_ptr< storm::logic::OperatorFormula const > formula
Definition Objective.h:20