@ -2,12 +2,15 @@
# include <ostream>
# include <ostream>
# include <boost/optional.hpp>
# include <boost/optional.hpp>
# include <storm/modelchecker/parametric/SparseParameterLiftingModelChecker.h>
# include "storm/utility/region.h"
# include "storm/utility/region.h"
# include "storm/modelchecker/region/AbstractSparseRegionModelChecker.h"
# include "storm/modelchecker/region/AbstractSparseRegionModelChecker.h"
# include "storm/modelchecker/region/ParameterRegion.h"
# include "storm/modelchecker/region/ParameterRegion.h"
# include "storm/modelchecker/region/ApproximationModel.h"
# include "storm/modelchecker/region/ApproximationModel.h"
# include "storm/modelchecker/parametric/SparseInstantiationModelChecker.h"
# include "storm/modelchecker/parametric/SparseInstantiationModelChecker.h"
# include "storm/modelchecker/parametric/SparseParameterLiftingModelChecker.h"
# include "storm/models/sparse/StandardRewardModel.h"
# include "storm/models/sparse/StandardRewardModel.h"
# include "storm/models/sparse/Model.h"
# include "storm/models/sparse/Model.h"
@ -191,7 +194,7 @@ namespace storm {
* Returns the approximation model .
* Returns the approximation model .
* If it is not yet available , it is computed .
* If it is not yet available , it is computed .
*/
*/
std : : shared_ptr < ApproximationModel < ParametricSparseModelType , ConstantType > > const & getApproximationModel ( ) ;
std : : shared_ptr < storm : : modelchecker : : parametric : : SparseParameterLiftingModelChecker < ParametricSparseModelType , ConstantType > > const & getApproximationModel ( ) ;
/*!
/*!
* Checks the value of the function at some sampling points within the given region .
* Checks the value of the function at some sampling points within the given region .
@ -240,13 +243,18 @@ namespace storm {
/ / the model that can be instantiated to check the value at a certain point
/ / the model that can be instantiated to check the value at a certain point
std : : shared_ptr < storm : : modelchecker : : parametric : : SparseInstantiationModelChecker < ParametricSparseModelType , ConstantType > > samplingModel ;
std : : shared_ptr < storm : : modelchecker : : parametric : : SparseInstantiationModelChecker < ParametricSparseModelType , ConstantType > > samplingModel ;
private :
/*!
/*!
* initializes the Approximation Model
* initializes the Approximation Model
*
*
* @ note does not check whether approximation can be applied
* @ note does not check whether approximation can be applied
*/
*/
void initializeApproximationModel ( ParametricSparseModelType const & model , std : : shared_ptr < storm : : logic : : OperatorFormula const > formula ) ;
virtual void initializeApproximationModel ( ParametricSparseModelType const & model , std : : shared_ptr < storm : : logic : : OperatorFormula const > formula ) = 0 ;
/ / the model that is used to approximate the reachability values
std : : shared_ptr < storm : : modelchecker : : parametric : : SparseParameterLiftingModelChecker < ParametricSparseModelType , ConstantType > > approximationModel ;
private :
/ / The model this model checker is supposed to analyze .
/ / The model this model checker is supposed to analyze .
@ -261,8 +269,6 @@ namespace storm {
std : : shared_ptr < storm : : logic : : OperatorFormula const > simpleFormula ;
std : : shared_ptr < storm : : logic : : OperatorFormula const > simpleFormula ;
/ / a flag that is true if approximation is applicable , i . e . , there are only linear functions at transitions of the model
/ / a flag that is true if approximation is applicable , i . e . , there are only linear functions at transitions of the model
bool isApproximationApplicable ;
bool isApproximationApplicable ;
/ / the model that is used to approximate the reachability values
std : : shared_ptr < ApproximationModel < ParametricSparseModelType , ConstantType > > approximationModel ;
/ / a flag that is true iff the resulting reachability function is constant
/ / a flag that is true iff the resulting reachability function is constant
boost : : optional < ConstantType > constantResult ;
boost : : optional < ConstantType > constantResult ;