|
@ -281,6 +281,25 @@ namespace storm { |
|
|
|
|
|
|
|
|
template <class SparseModelType, typename GeometryValueType> |
|
|
template <class SparseModelType, typename GeometryValueType> |
|
|
DeterministicSchedsParetoExplorer<SparseModelType, GeometryValueType>::DeterministicSchedsParetoExplorer(preprocessing::SparseMultiObjectivePreprocessorResult<SparseModelType>& preprocessorResult) : model(preprocessorResult.preprocessedModel), objectives(preprocessorResult.objectives) { |
|
|
DeterministicSchedsParetoExplorer<SparseModelType, GeometryValueType>::DeterministicSchedsParetoExplorer(preprocessing::SparseMultiObjectivePreprocessorResult<SparseModelType>& preprocessorResult) : model(preprocessorResult.preprocessedModel), objectives(preprocessorResult.objectives) { |
|
|
|
|
|
if (storm::settings::getModule<storm::settings::modules::CoreSettings>().isShowStatisticsSet()) { |
|
|
|
|
|
std::string modelname = "original-model"; |
|
|
|
|
|
std::vector<SparseModelType const*> models; |
|
|
|
|
|
models.push_back(&preprocessorResult.originalModel); |
|
|
|
|
|
models.push_back(model.get()); |
|
|
|
|
|
for (SparseModelType const* m : models) { |
|
|
|
|
|
STORM_PRINT_AND_LOG("#STATS " << m->getNumberOfStates() << " states in " << modelname << std::endl); |
|
|
|
|
|
STORM_PRINT_AND_LOG("#STATS " << m->getNumberOfChoices() << " choices in " << modelname << std::endl); |
|
|
|
|
|
STORM_PRINT_AND_LOG("#STATS " << m->getNumberOfTransitions() << " transitions in " << modelname << std::endl); |
|
|
|
|
|
storm::RationalNumber numScheds = storm::utility::one<storm::RationalNumber>(); |
|
|
|
|
|
for (uint64_t state = 0; state < m->getNumberOfStates(); ++state) { |
|
|
|
|
|
storm::RationalNumber numChoices = storm::utility::convertNumber<storm::RationalNumber, uint64_t>(m->getNumberOfChoices()); |
|
|
|
|
|
numScheds *= storm::utility::max(storm::utility::one<storm::RationalNumber>(), numChoices); |
|
|
|
|
|
} |
|
|
|
|
|
STORM_PRINT_AND_LOG("#STATS " << numScheds << " memoryless deterministic schedulers in " << modelname << std::endl); |
|
|
|
|
|
|
|
|
|
|
|
modelname = "unfolded-model"; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
originalModelInitialState = *preprocessorResult.originalModel.getInitialStates().begin(); |
|
|
originalModelInitialState = *preprocessorResult.originalModel.getInitialStates().begin(); |
|
|
objectiveHelper.reserve(objectives.size()); |
|
|
objectiveHelper.reserve(objectives.size()); |
|
|
for (auto const& obj : objectives) { |
|
|
for (auto const& obj : objectives) { |
|
|