|
|
@ -261,6 +261,23 @@ namespace { |
|
|
|
return env; |
|
|
|
} |
|
|
|
}; |
|
|
|
|
|
|
|
class SparseNativeOptimisticValueIterationEnvironment { |
|
|
|
public: |
|
|
|
static const storm::dd::DdType ddType = storm::dd::DdType::Sylvan; // unused for sparse models
|
|
|
|
static const DtmcEngine engine = DtmcEngine::PrismSparse; |
|
|
|
static const bool isExact = false; |
|
|
|
typedef double ValueType; |
|
|
|
typedef storm::models::sparse::Dtmc<ValueType> ModelType; |
|
|
|
static storm::Environment createEnvironment() { |
|
|
|
storm::Environment env; |
|
|
|
env.solver().setForceSoundness(true); |
|
|
|
env.solver().setLinearEquationSolverType(storm::solver::EquationSolverType::Native); |
|
|
|
env.solver().native().setMethod(storm::solver::NativeLinearEquationSolverMethod::OptimisticValueIteration); |
|
|
|
env.solver().native().setPrecision(storm::utility::convertNumber<storm::RationalNumber>(1e-6)); |
|
|
|
return env; |
|
|
|
} |
|
|
|
}; |
|
|
|
|
|
|
|
class SparseNativeIntervalIterationEnvironment { |
|
|
|
public: |
|
|
@ -553,6 +570,7 @@ namespace { |
|
|
|
SparseNativeSorEnvironment, |
|
|
|
SparseNativePowerEnvironment, |
|
|
|
SparseNativeSoundValueIterationEnvironment, |
|
|
|
SparseNativeOptimisticValueIterationEnvironment, |
|
|
|
SparseNativeIntervalIterationEnvironment, |
|
|
|
SparseNativeRationalSearchEnvironment, |
|
|
|
SparseTopologicalEigenLUEnvironment, |
|
|
|