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