Storm 1.11.1.1
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
UncertaintyResolutionMode.cpp
Go to the documentation of this file.
2
3namespace storm {
4namespace solver {
5std::ostream& operator<<(std::ostream& out, UncertaintyResolutionMode mode) {
6 switch (mode) {
7 case UncertaintyResolutionMode::Minimize:
8 out << "minimize";
9 break;
10 case UncertaintyResolutionMode::Maximize:
11 out << "maximize";
12 break;
13 case UncertaintyResolutionMode::Robust:
14 out << "robust";
15 break;
16 case UncertaintyResolutionMode::Cooperative:
17 out << "cooperative";
18 break;
19 case UncertaintyResolutionMode::Unset:
20 out << "unset";
21 break;
22 }
23 return out;
24}
25
26bool isSet(UncertaintyResolutionMode uncertaintyResolutionMode) {
27 return uncertaintyResolutionMode != UncertaintyResolutionMode::Unset;
28}
29
30bool isUncertaintyResolvedRobust(UncertaintyResolutionMode uncertaintyResolutionMode, OptimizationDirection optimizationDirection) {
31 switch (uncertaintyResolutionMode) {
32 case UncertaintyResolutionMode::Maximize:
33 return optimizationDirection != OptimizationDirection::Maximize;
34 case UncertaintyResolutionMode::Minimize:
35 return optimizationDirection != OptimizationDirection::Minimize;
36 case UncertaintyResolutionMode::Robust:
37 return true;
38 case UncertaintyResolutionMode::Cooperative:
39 return false;
40 case UncertaintyResolutionMode::Unset:
41 STORM_LOG_THROW(false, storm::exceptions::InvalidSettingsException, "Uncertainty resolution mode not set properly.");
42 }
43
44 return true;
45}
46
48 STORM_LOG_THROW(settingMode != UncertaintyResolutionModeSetting::Both, storm::exceptions::InvalidSettingsException,
49 "Cannot convert uncertainty resolution setting mode 'both'");
50 return static_cast<UncertaintyResolutionMode>(settingMode);
51}
52
53} // namespace solver
54} // namespace storm
#define STORM_LOG_THROW(cond, exception, message)
Definition macros.h:30
OptimizationDirection convert(OptimizationDirectionSetting s)
bool isSet(OptimizationDirectionSetting s)
bool isUncertaintyResolvedRobust(UncertaintyResolutionMode uncertaintyResolutionMode, OptimizationDirection optimizationDirection)