Storm
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
MultiObjectiveModelCheckerEnvironment.cpp
Go to the documentation of this file.
2
7
9namespace storm {
10
13 method = multiobjectiveSettings.getMultiObjectiveMethod();
14 if (multiobjectiveSettings.isExportPlotSet()) {
15 plotPathUnderApprox = multiobjectiveSettings.getExportPlotDirectory() + "underapproximation.csv";
16 plotPathOverApprox = multiobjectiveSettings.getExportPlotDirectory() + "overapproximation.csv";
17 plotPathParetoPoints = multiobjectiveSettings.getExportPlotDirectory() + "paretopoints.csv";
18 }
19
20 precision = storm::utility::convertNumber<storm::RationalNumber>(multiobjectiveSettings.getPrecision());
21 if (multiobjectiveSettings.getPrecisionAbsolute()) {
22 precisionType = PrecisionType::Absolute;
23 } else if (multiobjectiveSettings.getPrecisionRelativeToDiff()) {
24 precisionType = PrecisionType::RelativeToDiff;
25 } else {
26 STORM_LOG_THROW(false, storm::exceptions::IllegalArgumentException, "Unhandled precision type.");
27 }
28
29 if (multiobjectiveSettings.isAutoEncodingSet()) {
30 encodingType = EncodingType::Auto;
31 } else if (multiobjectiveSettings.isClassicEncodingSet()) {
32 encodingType = EncodingType::Classic;
33 } else if (multiobjectiveSettings.isFlowEncodingSet()) {
34 encodingType = EncodingType::Flow;
35 }
36 STORM_LOG_ASSERT(multiobjectiveSettings.isBsccDetectionViaOrderConstraintsSet() || multiobjectiveSettings.isBsccDetectionViaFlowConstraintsSet(),
37 "unexpected settings");
38 bsccOrderEncoding = multiobjectiveSettings.isBsccDetectionViaOrderConstraintsSet();
39 STORM_LOG_ASSERT(multiobjectiveSettings.isIndicatorConstraintsSet() || multiobjectiveSettings.isBigMConstraintsSet(), "unexpected settings");
40 indicatorConstraints = multiobjectiveSettings.isIndicatorConstraintsSet();
41 redundantBsccConstraints = multiobjectiveSettings.isRedundantBsccConstraintsSet();
42
43 if (multiobjectiveSettings.isMaxStepsSet()) {
44 maxSteps = multiobjectiveSettings.getMaxSteps();
45 }
46 if (multiobjectiveSettings.hasSchedulerRestriction()) {
47 schedulerRestriction = multiobjectiveSettings.getSchedulerRestriction();
48 }
49
50 printResults = multiobjectiveSettings.isPrintResultsSet();
51 useLexicographicModelChecking = multiobjectiveSettings.isLexicographicModelCheckingSet();
52}
53
57
58storm::modelchecker::multiobjective::MultiObjectiveMethod const& MultiObjectiveModelCheckerEnvironment::getMethod() const {
59 return this->method;
60}
61
62void MultiObjectiveModelCheckerEnvironment::setMethod(storm::modelchecker::multiobjective::MultiObjectiveMethod value) {
63 this->method = value;
64}
65
67 return this->plotPathUnderApprox.is_initialized() || this->plotPathOverApprox.is_initialized() || this->plotPathParetoPoints.is_initialized();
68}
69
71 return plotPathUnderApprox;
72}
73
75 plotPathUnderApprox = path;
76}
77
79 plotPathUnderApprox = boost::none;
80}
81
83 return plotPathOverApprox;
84}
85
87 plotPathOverApprox = path;
88}
89
91 plotPathOverApprox = boost::none;
92}
93
95 return plotPathParetoPoints;
96}
97
99 plotPathParetoPoints = path;
100}
101
103 plotPathParetoPoints = boost::none;
104}
105
106storm::RationalNumber const& MultiObjectiveModelCheckerEnvironment::getPrecision() const {
107 return precision;
108}
109
110void MultiObjectiveModelCheckerEnvironment::setPrecision(storm::RationalNumber const& value) {
111 precision = value;
112}
113
117
119 precisionType = value;
120}
121
125
127 encodingType = value;
128}
129
131 return indicatorConstraints;
132}
134 indicatorConstraints = value;
135}
136
138 return bsccOrderEncoding;
139}
141 bsccOrderEncoding = value;
142}
143
145 return redundantBsccConstraints;
146}
147
149 redundantBsccConstraints = value;
150}
151
153 return maxSteps.is_initialized();
154}
155
157 return maxSteps.get();
158}
159
161 maxSteps = value;
162}
163
165 maxSteps = boost::none;
166}
167
169 return schedulerRestriction.is_initialized();
170}
171
175
179
181 schedulerRestriction = boost::none;
182}
183
185 return printResults;
186}
187
189 printResults = value;
190}
191
193 return useLexicographicModelChecking;
194}
195
197 useLexicographicModelChecking = value;
198}
199} // namespace storm
storm::modelchecker::multiobjective::MultiObjectiveMethod const & getMethod() const
void setMethod(storm::modelchecker::multiobjective::MultiObjectiveMethod value)
void setSchedulerRestriction(storm::storage::SchedulerClass const &value)
storm::storage::SchedulerClass const & getSchedulerRestriction() const
#define STORM_LOG_ASSERT(cond, message)
Definition macros.h:11
#define STORM_LOG_THROW(cond, exception, message)
Definition macros.h:30
SettingsType const & getModule()
Get module.
LabParser.cpp.
Definition cli.cpp:18