51 changed files with 756 additions and 1600 deletions
-
16CMakeLists.txt
-
18resources/cmake/macros/export.cmake
-
11resources/cmake/stormConfigVersion.cmake.in
-
12resources/examples/testfiles/mdp/prism-mec-example1.nm
-
13resources/examples/testfiles/mdp/prism-mec-example2.nm
-
2src/storm-cli-utilities/CMakeLists.txt
-
2src/storm-dft-cli/CMakeLists.txt
-
2src/storm-dft/CMakeLists.txt
-
2src/storm-gspn-cli/CMakeLists.txt
-
2src/storm-gspn/CMakeLists.txt
-
2src/storm-pars-cli/CMakeLists.txt
-
2src/storm-pars/CMakeLists.txt
-
2src/storm-pgcl-cli/CMakeLists.txt
-
2src/storm-pgcl/CMakeLists.txt
-
4src/storm/CMakeLists.txt
-
11src/storm/builder/BuilderOptions.cpp
-
10src/storm/builder/BuilderOptions.h
-
1429src/storm/builder/DdPrismModelBuilder.cp
-
3src/storm/builder/ExplicitModelBuilder.cpp
-
21src/storm/counterexamples/SMTMinimalLabelSetGenerator.h
-
23src/storm/environment/Environment.cpp
-
13src/storm/environment/Environment.h
-
31src/storm/environment/SubEnvironment.cpp
-
4src/storm/environment/SubEnvironment.h
-
31src/storm/environment/modelchecker/ModelCheckerEnvironment.cpp
-
28src/storm/environment/modelchecker/ModelCheckerEnvironment.h
-
100src/storm/environment/modelchecker/MultiObjectiveModelCheckerEnvironment.cpp
-
48src/storm/environment/modelchecker/MultiObjectiveModelCheckerEnvironment.h
-
7src/storm/generator/CompressedState.cpp
-
2src/storm/generator/CompressedState.h
-
4src/storm/generator/JaniNextStateGenerator.cpp
-
30src/storm/generator/NextStateGenerator.cpp
-
10src/storm/generator/NextStateGenerator.h
-
4src/storm/generator/PrismNextStateGenerator.cpp
-
23src/storm/generator/VariableInformation.cpp
-
5src/storm/generator/VariableInformation.h
-
2src/storm/modelchecker/csl/helper/SparseCtmcCslHelper.cpp
-
6src/storm/modelchecker/multiobjective/multiObjectiveModelChecking.cpp
-
7src/storm/modelchecker/multiobjective/pcaa/SparsePcaaAchievabilityQuery.cpp
-
22src/storm/modelchecker/multiobjective/pcaa/SparsePcaaParetoQuery.cpp
-
18src/storm/modelchecker/multiobjective/pcaa/SparsePcaaQuantitativeQuery.cpp
-
2src/storm/modelchecker/multiobjective/pcaa/SparsePcaaQuantitativeQuery.h
-
57src/storm/modelchecker/multiobjective/pcaa/SparsePcaaQuery.cpp
-
4src/storm/modelchecker/multiobjective/pcaa/SparsePcaaQuery.h
-
4src/storm/models/sparse/Model.cpp
-
21src/storm/models/symbolic/Model.cpp
-
10src/storm/models/symbolic/Model.h
-
33src/storm/storage/MaximalEndComponentDecomposition.cpp
-
124src/storm/storage/StronglyConnectedComponentDecomposition.cpp
-
38src/storm/storage/StronglyConnectedComponentDecomposition.h
-
43src/test/storm/storage/MaximalEndComponentDecompositionTest.cpp
@ -0,0 +1,11 @@ |
|||||
|
set(PACKAGE_VERSION "@storm_VERSION@") |
||||
|
|
||||
|
# Check whether the requested PACKAGE_FIND_VERSION is compatible |
||||
|
if("${PACKAGE_VERSION}" VERSION_LESS "${PACKAGE_FIND_VERSION}") |
||||
|
set(PACKAGE_VERSION_COMPATIBLE FALSE) |
||||
|
else() |
||||
|
set(PACKAGE_VERSION_COMPATIBLE TRUE) |
||||
|
if ("${PACKAGE_VERSION}" VERSION_EQUAL "${PACKAGE_FIND_VERSION}") |
||||
|
set(PACKAGE_VERSION_EXACT TRUE) |
||||
|
endif() |
||||
|
endif() |
@ -0,0 +1,12 @@ |
|||||
|
mdp |
||||
|
|
||||
|
module test |
||||
|
|
||||
|
x : [0..2]; |
||||
|
|
||||
|
[] x=0 -> true; |
||||
|
[] x=0 -> 0.5 : (x'=1) + 0.5: (x'=2); |
||||
|
[] x=1 -> (x'=0); |
||||
|
[] x=2 -> true; |
||||
|
|
||||
|
endmodule |
@ -0,0 +1,13 @@ |
|||||
|
mdp |
||||
|
|
||||
|
module test |
||||
|
|
||||
|
x : [0..2]; |
||||
|
|
||||
|
[] x=0 -> true; |
||||
|
[] x=0 -> 0.5 : (x'=1) + 0.5: (x'=1); |
||||
|
[] x=0 -> (x'=2); |
||||
|
[] x=1 -> (x'=0); |
||||
|
[] x=2 -> true; |
||||
|
|
||||
|
endmodule |
1429
src/storm/builder/DdPrismModelBuilder.cp
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -0,0 +1,31 @@ |
|||||
|
#include "storm/environment/modelchecker/ModelCheckerEnvironment.h"
|
||||
|
|
||||
|
#include "storm/environment/modelchecker/MultiObjectiveModelCheckerEnvironment.h"
|
||||
|
|
||||
|
#include "storm/settings/SettingsManager.h"
|
||||
|
#include "storm/utility/macros.h"
|
||||
|
|
||||
|
#include "storm/exceptions/InvalidEnvironmentException.h"
|
||||
|
#include "storm/exceptions/UnexpectedException.h"
|
||||
|
|
||||
|
|
||||
|
namespace storm { |
||||
|
|
||||
|
ModelCheckerEnvironment::ModelCheckerEnvironment() { |
||||
|
// Intentionally left empty
|
||||
|
} |
||||
|
|
||||
|
ModelCheckerEnvironment::~ModelCheckerEnvironment() { |
||||
|
// Intentionally left empty
|
||||
|
} |
||||
|
|
||||
|
MultiObjectiveModelCheckerEnvironment& ModelCheckerEnvironment::multi() { |
||||
|
return multiObjectiveModelCheckerEnvironment.get(); |
||||
|
} |
||||
|
|
||||
|
MultiObjectiveModelCheckerEnvironment const& ModelCheckerEnvironment::multi() const { |
||||
|
return multiObjectiveModelCheckerEnvironment.get(); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
|
@ -0,0 +1,28 @@ |
|||||
|
#pragma once |
||||
|
|
||||
|
#include <memory> |
||||
|
#include <boost/optional.hpp> |
||||
|
|
||||
|
#include "storm/environment/Environment.h" |
||||
|
#include "storm/environment/SubEnvironment.h" |
||||
|
|
||||
|
namespace storm { |
||||
|
|
||||
|
// Forward declare subenvironments |
||||
|
class MultiObjectiveModelCheckerEnvironment; |
||||
|
|
||||
|
class ModelCheckerEnvironment { |
||||
|
public: |
||||
|
|
||||
|
ModelCheckerEnvironment(); |
||||
|
~ModelCheckerEnvironment(); |
||||
|
|
||||
|
MultiObjectiveModelCheckerEnvironment& multi(); |
||||
|
MultiObjectiveModelCheckerEnvironment const& multi() const; |
||||
|
|
||||
|
|
||||
|
private: |
||||
|
SubEnvironment<MultiObjectiveModelCheckerEnvironment> multiObjectiveModelCheckerEnvironment; |
||||
|
}; |
||||
|
} |
||||
|
|
@ -0,0 +1,100 @@ |
|||||
|
#include "storm/environment/modelchecker/MultiObjectiveModelCheckerEnvironment.h"
|
||||
|
|
||||
|
#include "storm/settings/SettingsManager.h"
|
||||
|
#include "storm/settings/modules/MultiObjectiveSettings.h"
|
||||
|
#include "storm/utility/constants.h"
|
||||
|
#include "storm/utility/macros.h"
|
||||
|
|
||||
|
namespace storm { |
||||
|
|
||||
|
MultiObjectiveModelCheckerEnvironment::MultiObjectiveModelCheckerEnvironment() { |
||||
|
auto const& multiobjectiveSettings = storm::settings::getModule<storm::settings::modules::MultiObjectiveSettings>(); |
||||
|
method = multiobjectiveSettings.getMultiObjectiveMethod(); |
||||
|
if (multiobjectiveSettings.isExportPlotSet()) { |
||||
|
plotPathUnderApprox = multiobjectiveSettings.getExportPlotDirectory() + "underapproximation.csv"; |
||||
|
plotPathOverApprox = multiobjectiveSettings.getExportPlotDirectory() + "overapproximation.csv"; |
||||
|
plotPathParetoPoints = multiobjectiveSettings.getExportPlotDirectory() + "paretopoints.csv"; |
||||
|
} |
||||
|
|
||||
|
precision = storm::utility::convertNumber<storm::RationalNumber>(multiobjectiveSettings.getPrecision()); |
||||
|
if (multiobjectiveSettings.isMaxStepsSet()) { |
||||
|
maxSteps = multiobjectiveSettings.getMaxSteps(); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
MultiObjectiveModelCheckerEnvironment::~MultiObjectiveModelCheckerEnvironment() { |
||||
|
// Intentionally left empty
|
||||
|
} |
||||
|
|
||||
|
storm::modelchecker::multiobjective::MultiObjectiveMethod const& MultiObjectiveModelCheckerEnvironment::getMethod() const { |
||||
|
return this->method; |
||||
|
} |
||||
|
|
||||
|
void MultiObjectiveModelCheckerEnvironment::setMethod(storm::modelchecker::multiobjective::MultiObjectiveMethod value) { |
||||
|
this->method = value; |
||||
|
} |
||||
|
|
||||
|
bool MultiObjectiveModelCheckerEnvironment::isExportPlotSet() const { |
||||
|
return this->plotPathUnderApprox.is_initialized() || this->plotPathOverApprox.is_initialized() || this->plotPathParetoPoints.is_initialized(); |
||||
|
} |
||||
|
|
||||
|
boost::optional<std::string> MultiObjectiveModelCheckerEnvironment::getPlotPathUnderApproximation() const { |
||||
|
return plotPathUnderApprox; |
||||
|
} |
||||
|
|
||||
|
void MultiObjectiveModelCheckerEnvironment::setPlotPathUnderApproximation(std::string const& path) { |
||||
|
plotPathUnderApprox = path; |
||||
|
} |
||||
|
|
||||
|
void MultiObjectiveModelCheckerEnvironment::unsetPlotPathUnderApproximation() { |
||||
|
plotPathUnderApprox = boost::none; |
||||
|
} |
||||
|
|
||||
|
boost::optional<std::string> MultiObjectiveModelCheckerEnvironment::getPlotPathOverApproximation() const { |
||||
|
return plotPathOverApprox; |
||||
|
} |
||||
|
|
||||
|
void MultiObjectiveModelCheckerEnvironment::setPlotPathOverApproximation(std::string const& path) { |
||||
|
plotPathOverApprox = path; |
||||
|
} |
||||
|
|
||||
|
void MultiObjectiveModelCheckerEnvironment::unsetPlotPathOverApproximation() { |
||||
|
plotPathOverApprox = boost::none; |
||||
|
} |
||||
|
|
||||
|
boost::optional<std::string> MultiObjectiveModelCheckerEnvironment::getPlotPathParetoPoints() const { |
||||
|
return plotPathParetoPoints; |
||||
|
} |
||||
|
|
||||
|
void MultiObjectiveModelCheckerEnvironment::setPlotPathParetoPoints(std::string const& path) { |
||||
|
plotPathParetoPoints = path; |
||||
|
} |
||||
|
|
||||
|
void MultiObjectiveModelCheckerEnvironment::unsetPlotPathParetoPoints() { |
||||
|
plotPathParetoPoints = boost::none; |
||||
|
} |
||||
|
|
||||
|
storm::RationalNumber const& MultiObjectiveModelCheckerEnvironment::getPrecision() const { |
||||
|
return precision; |
||||
|
} |
||||
|
|
||||
|
void MultiObjectiveModelCheckerEnvironment::setPrecision(storm::RationalNumber const& value) { |
||||
|
precision = value; |
||||
|
} |
||||
|
|
||||
|
bool MultiObjectiveModelCheckerEnvironment::isMaxStepsSet() const { |
||||
|
return maxSteps.is_initialized(); |
||||
|
} |
||||
|
|
||||
|
uint64_t const& MultiObjectiveModelCheckerEnvironment::getMaxSteps() const { |
||||
|
return maxSteps.get(); |
||||
|
} |
||||
|
|
||||
|
void MultiObjectiveModelCheckerEnvironment::setMaxSteps(uint64_t const& value) { |
||||
|
maxSteps = value; |
||||
|
} |
||||
|
|
||||
|
void MultiObjectiveModelCheckerEnvironment::unsetMaxSteps() { |
||||
|
maxSteps = boost::none; |
||||
|
} |
||||
|
} |
@ -0,0 +1,48 @@ |
|||||
|
#pragma once |
||||
|
|
||||
|
#include <string> |
||||
|
|
||||
|
#include "storm/environment/modelchecker/ModelCheckerEnvironment.h" |
||||
|
#include "storm/modelchecker/multiobjective/MultiObjectiveModelCheckingMethod.h" |
||||
|
#include "storm/adapters/RationalNumberAdapter.h" |
||||
|
|
||||
|
namespace storm { |
||||
|
|
||||
|
class MultiObjectiveModelCheckerEnvironment { |
||||
|
public: |
||||
|
|
||||
|
MultiObjectiveModelCheckerEnvironment(); |
||||
|
~MultiObjectiveModelCheckerEnvironment(); |
||||
|
|
||||
|
storm::modelchecker::multiobjective::MultiObjectiveMethod const& getMethod() const; |
||||
|
void setMethod(storm::modelchecker::multiobjective::MultiObjectiveMethod value); |
||||
|
|
||||
|
bool isExportPlotSet() const; |
||||
|
boost::optional<std::string> getPlotPathUnderApproximation() const; |
||||
|
void setPlotPathUnderApproximation(std::string const& path); |
||||
|
void unsetPlotPathUnderApproximation(); |
||||
|
boost::optional<std::string> getPlotPathOverApproximation() const; |
||||
|
void setPlotPathOverApproximation(std::string const& path); |
||||
|
void unsetPlotPathOverApproximation(); |
||||
|
boost::optional<std::string> getPlotPathParetoPoints() const; |
||||
|
void setPlotPathParetoPoints(std::string const& path); |
||||
|
void unsetPlotPathParetoPoints(); |
||||
|
|
||||
|
storm::RationalNumber const& getPrecision() const; |
||||
|
void setPrecision(storm::RationalNumber const& value); |
||||
|
|
||||
|
uint64_t const& getMaxSteps() const; |
||||
|
bool isMaxStepsSet() const; |
||||
|
void setMaxSteps(uint64_t const& value); |
||||
|
void unsetMaxSteps(); |
||||
|
|
||||
|
|
||||
|
private: |
||||
|
storm::modelchecker::multiobjective::MultiObjectiveMethod method; |
||||
|
boost::optional<std::string> plotPathUnderApprox, plotPathOverApprox, plotPathParetoPoints; |
||||
|
storm::RationalNumber precision; |
||||
|
boost::optional<uint64_t> maxSteps; |
||||
|
|
||||
|
}; |
||||
|
} |
||||
|
|
Write
Preview
Loading…
Cancel
Save
Reference in new issue