from . import storage from .storage import * class ModelInstantiator: """ Class for instantiating models. """ def __init__(self, model): """ Constructor. :param model: Model. """ if model.model_type == ModelType.MDP: self._instantiator = PmdpInstantiator(model) elif model.model_type == ModelType.DTMC: self._instantiator = PdtmcInstantiator(model) elif model.model_type == ModelType.CTMC: self._instantiator = PctmcInstantiator(model) elif model.model_type == ModelType.MA: self._instantiator = PmaInstantiator(model) else: raise StormError("Model type {} not supported".format(model.model_type)) def instantiate(self, valuation): """ Instantiate model with given valuation. :param valuation: Valuation from parameter to value. :return: Instantiated model. """ return self._instantiator.instantiate(valuation)