1#ifndef STORM_MODELCHECKER_EXPLORATION_EXPLORATION_DETAIL_BOUNDS_H_
2#define STORM_MODELCHECKER_EXPLORATION_EXPLORATION_DETAIL_BOUNDS_H_
15template<
typename StateType,
typename ValueType>
18template<
typename StateType,
typename ValueType>
60 std::pair<ValueType, ValueType>
const& values);
62 void setBoundsForRowGroup(StateType
const& rowGroup, std::pair<ValueType, ValueType>
const& values);
65 ValueType
const& newLowerValue);
68 ValueType
const& newUpperValue);
71 std::vector<std::pair<ValueType, ValueType>> boundsPerState;
72 std::vector<std::pair<ValueType, ValueType>> boundsPerAction;
void setLowerBoundForRowGroup(StateType const &group, ValueType const &value)
ValueType const & getLowerBoundForRowGroup(StateType const &rowGroup) const
ValueType getDifferenceOfStateBounds(StateType const &state, ExplorationInformation< StateType, ValueType > const &explorationInformation) const
void setBoundsForState(StateType const &state, ExplorationInformation< StateType, ValueType > const &explorationInformation, std::pair< ValueType, ValueType > const &values)
std::pair< ValueType, ValueType > getBoundsForState(StateType const &state, ExplorationInformation< StateType, ValueType > const &explorationInformation) const
void setBoundsForAction(ActionType const &action, std::pair< ValueType, ValueType > const &values)
ValueType const & getUpperBoundForRowGroup(StateType const &rowGroup) const
std::pair< ValueType, ValueType > const & getBoundsForAction(ActionType const &action) const
bool setLowerBoundOfStateIfGreaterThanOld(StateType const &state, ExplorationInformation< StateType, ValueType > const &explorationInformation, ValueType const &newLowerValue)
void initializeBoundsForNextState(std::pair< ValueType, ValueType > const &vals=std::pair< ValueType, ValueType >(storm::utility::zero< ValueType >(), storm::utility::one< ValueType >()))
ValueType getLowerBoundForState(StateType const &state, ExplorationInformation< StateType, ValueType > const &explorationInformation) const
bool setUpperBoundOfStateIfLessThanOld(StateType const &state, ExplorationInformation< StateType, ValueType > const &explorationInformation, ValueType const &newUpperValue)
ValueType const & getBoundForAction(storm::OptimizationDirection const &direction, ActionType const &action) const
void setBoundsForRowGroup(StateType const &rowGroup, std::pair< ValueType, ValueType > const &values)
void initializeBoundsForNextAction(std::pair< ValueType, ValueType > const &vals=std::pair< ValueType, ValueType >(storm::utility::zero< ValueType >(), storm::utility::one< ValueType >()))
ValueType getUpperBoundForState(StateType const &state, ExplorationInformation< StateType, ValueType > const &explorationInformation) const
ValueType const & getLowerBoundForAction(ActionType const &action) const
void setUpperBoundForState(StateType const &state, ExplorationInformation< StateType, ValueType > const &explorationInformation, ValueType const &value)
ValueType const & getUpperBoundForAction(ActionType const &action) const
void setLowerBoundForState(StateType const &state, ExplorationInformation< StateType, ValueType > const &explorationInformation, ValueType const &value)
void setUpperBoundForRowGroup(StateType const &group, ValueType const &value)
solver::OptimizationDirection OptimizationDirection