Browse Source

added SMGs to existing ModelTypes

main
Stefan Pranger 5 years ago
parent
commit
160a2c32a2
  1. 2
      src/storm/builder/ExplicitModelBuilder.cpp
  2. 5
      src/storm/models/ModelType.cpp
  3. 2
      src/storm/models/ModelType.h
  4. 3
      src/storm/utility/builder.cpp

2
src/storm/builder/ExplicitModelBuilder.cpp

@ -80,6 +80,8 @@ namespace storm {
return storm::utility::builder::buildModelFromComponents(storm::models::ModelType::Pomdp, buildModelComponents()); return storm::utility::builder::buildModelFromComponents(storm::models::ModelType::Pomdp, buildModelComponents());
case storm::generator::ModelType::MA: case storm::generator::ModelType::MA:
return storm::utility::builder::buildModelFromComponents(storm::models::ModelType::MarkovAutomaton, buildModelComponents()); return storm::utility::builder::buildModelFromComponents(storm::models::ModelType::MarkovAutomaton, buildModelComponents());
case storm::generator::ModelType::SMG:
return storm::utility::builder::buildModelFromComponents(storm::models::ModelType::Smg, buildModelComponents());
default: default:
STORM_LOG_THROW(false, storm::exceptions::WrongFormatException, "Error while creating model: cannot handle this model type."); STORM_LOG_THROW(false, storm::exceptions::WrongFormatException, "Error while creating model: cannot handle this model type.");
} }

5
src/storm/models/ModelType.cpp

@ -19,6 +19,8 @@ namespace storm {
return ModelType::S2pg; return ModelType::S2pg;
} else if (type == "POMDP") { } else if (type == "POMDP") {
return ModelType::Pomdp; return ModelType::Pomdp;
} else if (type == "SMG") {
return ModelType::Smg;
} else { } else {
STORM_LOG_THROW(false, storm::exceptions::InvalidTypeException, "Type " << type << "not known."); STORM_LOG_THROW(false, storm::exceptions::InvalidTypeException, "Type " << type << "not known.");
} }
@ -44,6 +46,9 @@ namespace storm {
case ModelType::Pomdp: case ModelType::Pomdp:
os << "POMDP"; os << "POMDP";
break; break;
case ModelType::Smg:
os << "Smg";
break;
default: default:
STORM_LOG_THROW(false, storm::exceptions::InvalidTypeException, "Unknown model type."); STORM_LOG_THROW(false, storm::exceptions::InvalidTypeException, "Unknown model type.");
} }

2
src/storm/models/ModelType.h

@ -7,7 +7,7 @@ namespace storm {
namespace models { namespace models {
// All supported model types. // All supported model types.
enum class ModelType { enum class ModelType {
Dtmc, Ctmc, Mdp, MarkovAutomaton, S2pg, Pomdp
Dtmc, Ctmc, Mdp, MarkovAutomaton, S2pg, Pomdp, Smg
}; };
ModelType getModelType(std::string const& type); ModelType getModelType(std::string const& type);

3
src/storm/utility/builder.cpp

@ -6,6 +6,7 @@
#include "storm/models/sparse/Mdp.h" #include "storm/models/sparse/Mdp.h"
#include "storm/models/sparse/Pomdp.h" #include "storm/models/sparse/Pomdp.h"
#include "storm/models/sparse/MarkovAutomaton.h" #include "storm/models/sparse/MarkovAutomaton.h"
#include "storm/models/sparse/Smg.h"
#include "storm/exceptions/InvalidModelException.h" #include "storm/exceptions/InvalidModelException.h"
@ -28,6 +29,8 @@ namespace storm {
return std::make_shared<storm::models::sparse::MarkovAutomaton<ValueType, RewardModelType>>(std::move(components)); return std::make_shared<storm::models::sparse::MarkovAutomaton<ValueType, RewardModelType>>(std::move(components));
case storm::models::ModelType::S2pg: case storm::models::ModelType::S2pg:
return std::make_shared<storm::models::sparse::StochasticTwoPlayerGame<ValueType, RewardModelType>>(std::move(components)); return std::make_shared<storm::models::sparse::StochasticTwoPlayerGame<ValueType, RewardModelType>>(std::move(components));
case storm::models::ModelType::Smg:
return std::make_shared<storm::models::sparse::Smg<ValueType, RewardModelType>>(std::move(components));
} }
STORM_LOG_THROW(false, storm::exceptions::InvalidModelException, "Unknown model type"); STORM_LOG_THROW(false, storm::exceptions::InvalidModelException, "Unknown model type");
} }

Loading…
Cancel
Save