Browse Source
moved preprocessing of PRISM program to utility to make it accessible from learning-based model checker
moved preprocessing of PRISM program to utility to make it accessible from learning-based model checker
Former-commit-id: 704dde9ec5
main
8 changed files with 141 additions and 241 deletions
-
52src/builder/ExplicitPrismModelBuilder.cpp
-
16src/cli/entrypoints.h
-
0src/modelchecker/reachability/SparseLearningModelChecker.h
-
28src/modelchecker/reachability/SparseMdpLearningModelChecker.cpp
-
29src/modelchecker/reachability/SparseMdpLearningModelChecker.h
-
66src/utility/prism.cpp
-
190src/utility/prism.h
-
1src/utility/storm.h
@ -0,0 +1,28 @@ |
|||
#include "src/modelchecker/reachability/SparseMdpLearningModelChecker.h"
|
|||
|
|||
#include "src/logic/FragmentSpecification.h"
|
|||
|
|||
#include "src/modelchecker/results/ExplicitQuantitativeCheckResult.h"
|
|||
|
|||
namespace storm { |
|||
namespace modelchecker { |
|||
template<typename SparseMdpModelType> |
|||
SparseMdpLearningModelChecker<SparseMdpModelType>::SparseMdpLearningModelChecker(storm::prism::Program const& program) : program(program) { |
|||
// Intentionally left empty.
|
|||
} |
|||
|
|||
template<typename SparseMdpModelType> |
|||
bool SparseMdpLearningModelChecker<SparseMdpModelType>::canHandle(CheckTask<storm::logic::Formula> const& checkTask) const { |
|||
storm::logic::Formula const& formula = checkTask.getFormula(); |
|||
storm::logic::FragmentSpecification fragment = storm::logic::propositional().setProbabilityOperatorsAllowed(true).setReachabilityProbabilityFormulasAllowed(true); |
|||
return formula.isInFragment(fragment); |
|||
} |
|||
|
|||
template<typename SparseMdpModelType> |
|||
std::unique_ptr<CheckResult> SparseMdpLearningModelChecker<SparseMdpModelType>::computeReachabilityProbabilities(CheckTask<storm::logic::EventuallyFormula> const& checkTask) { |
|||
return nullptr; |
|||
} |
|||
|
|||
template class SparseMdpLearningModelChecker<double>; |
|||
} |
|||
} |
@ -0,0 +1,29 @@ |
|||
#ifndef STORM_MODELCHECKER_REACHABILITY_SPARSEMDPLEARNINGMODELCHECKER_H_ |
|||
#define STORM_MODELCHECKER_REACHABILITY_SPARSEMDPLEARNINGMODELCHECKER_H_ |
|||
|
|||
#include "src/modelchecker/AbstractModelChecker.h" |
|||
|
|||
#include "src/storage/prism/Program.h" |
|||
|
|||
#include "src/utility/constants.h" |
|||
|
|||
namespace storm { |
|||
namespace modelchecker { |
|||
|
|||
template<typename ValueType> |
|||
class SparseMdpLearningModelChecker : public AbstractModelChecker { |
|||
public: |
|||
SparseMdpLearningModelChecker(storm::prism::Program const& program); |
|||
|
|||
virtual bool canHandle(CheckTask<storm::logic::Formula> const& checkTask) const override; |
|||
|
|||
virtual std::unique_ptr<CheckResult> computeReachabilityProbabilities(CheckTask<storm::logic::EventuallyFormula> const& checkTask) override; |
|||
|
|||
private: |
|||
// The program that defines the model to check. |
|||
storm::prism::Program program; |
|||
}; |
|||
} |
|||
} |
|||
|
|||
#endif /* STORM_MODELCHECKER_REACHABILITY_SPARSEMDPLEARNINGMODELCHECKER_H_ */ |
Write
Preview
Loading…
Cancel
Save
Reference in new issue