35 return static_cast<bool>(bound);
43 this->maxGap = maxGap;
53 gapIsRelative = newValue;
61 this->region = region;
65 return region != std::nullopt;
69 return region.value();
73 this->optimizationDirection = dir;
80 if (optimizationDirection) {
81 return optimizationDirection.value();
83 return getBound().
isLowerBound() ? storm::solver::OptimizationDirection::Maximize : storm::solver::OptimizationDirection::Minimize;
89 std::shared_ptr<storm::logic::Formula const> formula;
91 std::optional<storm::logic::Bound> bound = std::nullopt;
93 std::optional<storm::storage::ParameterRegion<storm::RationalFunction>> region = std::nullopt;
96 std::optional<storm::RationalNumber> maxGap = std::nullopt;
98 bool gapIsRelative =
true;
100 std::optional<storm::solver::OptimizationDirection> optimizationDirection = std::nullopt;
void setOptimizationDirection(storm::solver::OptimizationDirection const &dir)
void setMaximalAllowedGapIsRelative(bool newValue)
storm::logic::Bound const & getBound() const
Retrieves the bound (if set).
storm::storage::ParameterRegion< storm::RationalFunction > const & getRegion() const
storm::solver::OptimizationDirection getOptimizationDirection() const
bool isBoundSet() const
Retrieves whether there is a bound with which the values for the states will be compared.
std::optional< storm::RationalNumber > getMaximalAllowedGap() const
void setMaximalAllowedGap(storm::RationalNumber const &maxGap)
void setBound(storm::logic::Bound const &bound)
storm::logic::Formula const & getFormula() const
void setRegion(storm::storage::ParameterRegion< storm::RationalFunction > const ®ion)
bool isMaxGapRelative() const
FeasibilitySynthesisTask(std::shared_ptr< storm::logic::Formula const > const &formula)
#define STORM_LOG_ASSERT(cond, message)
bool isLowerBound() const