103 std::vector<std::vector<std::unordered_map<uint64_t, ValueType>>>
const& additionalUnderApproximationBounds =
104 std::vector<std::vector<std::unordered_map<uint64_t, ValueType>>>());
106 std::vector<std::vector<std::unordered_map<uint64_t, ValueType>>>
const& additionalUnderApproximationBounds =
107 std::vector<std::vector<std::unordered_map<uint64_t, ValueType>>>());
109 std::vector<std::vector<std::unordered_map<uint64_t, ValueType>>>
const& additionalUnderApproximationBounds =
110 std::vector<std::vector<std::unordered_map<uint64_t, ValueType>>>());
112 std::vector<std::vector<std::unordered_map<uint64_t, ValueType>>>
const& additionalUnderApproximationBounds =
113 std::vector<std::vector<std::unordered_map<uint64_t, ValueType>>>());
141 void unfoldInteractively(std::set<uint32_t>
const& targetObservations,
bool min, std::optional<std::string> rewardModelName,
189 void setFMSchedValueList(std::vector<std::vector<std::unordered_map<uint64_t, ValueType>>> valueList);
203 enum class UnfoldingControl { Run, Pause, Terminate };
210 std::optional<uint64_t> refinementSteps;
213 bool beliefMdpDetectedToBeFinite;
214 bool refinementFixpointDetected;
216 std::optional<uint64_t> overApproximationStates;
217 bool overApproximationBuildAborted;
220 std::optional<BeliefValueType> overApproximationMaxResolution;
222 std::optional<uint64_t> underApproximationStates;
223 bool underApproximationBuildAborted;
226 std::optional<uint64_t> underApproximationStateLimit;
227 std::optional<uint64_t> nrClippingAttempts;
228 std::optional<uint64_t> nrClippedStates;
229 std::optional<uint64_t> nrTruncatedStates;
239 struct HeuristicParameters {
242 uint64_t sizeThreshold;
251 PomdpModelType
const& pomdp()
const;
260 void refineReachability(
storm::Environment const& env, std::set<uint32_t>
const& targetObservations,
bool min, std::optional<std::string> rewardModelName,
276 bool buildOverApproximation(
storm::Environment const& env, std::set<uint32_t>
const& targetObservations,
bool min,
bool computeRewards,
bool refine,
277 HeuristicParameters
const& heuristicParameters, std::vector<BeliefValueType>& observationResolutionVector,
278 std::shared_ptr<BeliefManagerType>& beliefManager, std::shared_ptr<ExplorerType>& overApproximation);
293 bool buildUnderApproximation(
storm::Environment const& env, std::set<uint32_t>
const& targetObservations,
bool min,
bool computeRewards,
bool refine,
294 HeuristicParameters
const& heuristicParameters, std::shared_ptr<BeliefManagerType>& beliefManager,
295 std::shared_ptr<ExplorerType>& underApproximation,
bool interactive);
306 void clipToGrid(uint64_t clippingStateId,
bool computeRewards,
bool min, std::shared_ptr<BeliefManagerType>& beliefManager,
307 std::shared_ptr<ExplorerType>& beliefExplorer);
318 bool clipToGridExplicitly(uint64_t clippingStateId,
bool computeRewards, std::shared_ptr<BeliefManagerType>& beliefManager,
319 std::shared_ptr<ExplorerType>& beliefExplorer, uint64_t localActionIndex);
325 BeliefValueType rateObservation(
typename ExplorerType::SuccessorObservationInformation
const& info, BeliefValueType
const& observationResolution,
326 BeliefValueType
const& maxResolution);
334 std::vector<BeliefValueType> getObservationRatings(std::shared_ptr<ExplorerType>
const& overApproximation,
335 std::vector<BeliefValueType>
const& observationResolutionVector);
343 typename PomdpModelType::ValueType getGap(
typename PomdpModelType::ValueType
const& l,
typename PomdpModelType::ValueType
const& u);
349 void setUnfoldingControl(UnfoldingControl newUnfoldingControl);
353 Statistics statistics;
356 std::shared_ptr<PomdpModelType> inputPomdp;
357 std::shared_ptr<PomdpModelType> preprocessedPomdp;
364 std::shared_ptr<ExplorerType> interactiveUnderApproximationExplorer;
367 UnfoldingControl unfoldingControl;
368 Result interactiveResult = Result(-storm::utility::infinity<ValueType>(), storm::utility::infinity<ValueType>());