You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

29 lines
1.5 KiB

2 months ago
  1. #pragma once
  2. #include "storm-pars/transformer/SparseParametricModelSimplifier.h"
  3. namespace storm {
  4. namespace transformer {
  5. /*!
  6. * This class performs different steps to simplify the given (parametric) model.
  7. * Checking the obtained simplified formula on the simplified model yields the same result as checking the original formula on the original model (wrt. to the initial states of the two models)
  8. * End Components of nondeterministic models are removed whenever this is valid for the corresponding formula. This allows us to apply, e.g., value iteration that does not start from the 0,...,0 vector.
  9. */
  10. template<typename SparseModelType>
  11. class SparseParametricDtmcSimplifier : public SparseParametricModelSimplifier<SparseModelType> {
  12. public:
  13. SparseParametricDtmcSimplifier(SparseModelType const& model);
  14. protected:
  15. // Perform the simplification for the corresponding formula type
  16. virtual bool simplifyForUntilProbabilities(storm::logic::ProbabilityOperatorFormula const& formula) override;
  17. virtual bool simplifyForBoundedUntilProbabilities(storm::logic::ProbabilityOperatorFormula const& formula) override;
  18. virtual bool simplifyForReachabilityRewards(storm::logic::RewardOperatorFormula const& formula) override;
  19. virtual bool simplifyForCumulativeRewards(storm::logic::RewardOperatorFormula const& formula) override;
  20. };
  21. }
  22. }