Storm
A Modern Probabilistic Model Checker
|
#include <GradientDescentInstantiationSearcher.h>
Classes | |
struct | VisualizationPoint |
A point in the Gradient Descent walk, recorded if recordRun is set to true in the constructor (false by default). More... | |
Public Member Functions | |
GradientDescentInstantiationSearcher (storm::models::sparse::Dtmc< FunctionType > const &model, GradientDescentMethod method=GradientDescentMethod::ADAM, ConstantType learningRate=0.1, ConstantType averageDecay=0.9, ConstantType squaredAverageDecay=0.999, uint_fast64_t miniBatchSize=32, ConstantType terminationEpsilon=1e-6, boost::optional< std::map< typename utility::parametric::VariableType< FunctionType >::type, typename utility::parametric::CoefficientType< FunctionType >::type > > startPoint=boost::none, GradientDescentConstraintMethod constraintMethod=GradientDescentConstraintMethod::PROJECT_WITH_GRADIENT, bool recordRun=false) | |
The GradientDescentInstantiationSearcher can find extrema and feasible instantiations in pMCs, for either rewards or probabilities. | |
void | setup (Environment const &env, std::shared_ptr< storm::pars::FeasibilitySynthesisTask const > const &task) |
This will setup the matrices used for computing the derivatives by constructing the SparseDerivativeInstantiationModelChecker. | |
std::pair< std::map< typename utility::parametric::VariableType< FunctionType >::type, typename utility::parametric::CoefficientType< FunctionType >::type >, ConstantType > | gradientDescent () |
Perform Gradient Descent. | |
void | printRunAsJson () |
Print the previously done run as JSON. | |
std::vector< VisualizationPoint > | getVisualizationWalk () |
Get the visualization walk that is recorded if recordRun is set to true in the constructor (false by default). | |
Definition at line 23 of file GradientDescentInstantiationSearcher.h.
|
inline |
The GradientDescentInstantiationSearcher can find extrema and feasible instantiations in pMCs, for either rewards or probabilities.
Internally uses the SparseDerivativeInstantiationModelChecker to evaluate derivatives at instantiations.
env | The environment. Always pass the same environment to the gradientDescent call! |
model | The Dtmc to optimize. |
method | The method of gradient descent that is used. |
learningRate | The learning rate of the Gradient Descent. |
averageDecay | Decay of ADAM's decaying average. |
squaredAverageDecay | Decay of ADAM's squared decaying average. |
miniBatchSize | Size of a minibatch. |
terminationEpsilon | A value step smaller than this is considered a "tiny step", after a number of these the algorithm will terminate. |
startPoint | Start point of the search (default: all parameters set to 0.5) |
recordRun | Records the run into a global variable, which can be converted into JSON using the printRunAsJson function |
Definition at line 42 of file GradientDescentInstantiationSearcher.h.
std::vector< typename GradientDescentInstantiationSearcher< FunctionType, ConstantType >::VisualizationPoint > storm::derivative::GradientDescentInstantiationSearcher< FunctionType, ConstantType >::getVisualizationWalk | ( | ) |
Get the visualization walk that is recorded if recordRun is set to true in the constructor (false by default).
Definition at line 532 of file GradientDescentInstantiationSearcher.cpp.
std::pair< std::map< VariableType< FunctionType >, CoefficientType< FunctionType > >, ConstantType > storm::derivative::GradientDescentInstantiationSearcher< FunctionType, ConstantType >::gradientDescent | ( | ) |
Perform Gradient Descent.
Definition at line 382 of file GradientDescentInstantiationSearcher.cpp.
void storm::derivative::GradientDescentInstantiationSearcher< FunctionType, ConstantType >::printRunAsJson | ( | ) |
Print the previously done run as JSON.
This run can be retrieved using getVisualizationWalk.
Definition at line 511 of file GradientDescentInstantiationSearcher.cpp.
|
inline |
This will setup the matrices used for computing the derivatives by constructing the SparseDerivativeInstantiationModelChecker.
Note this consumes a substantial amount of memory, if the model is big and there's a large number of parameters.
env | The environment. We need this because we need to know what kind of equation solver we are dealing with. |
task | The FeasibilitySynthesisTask. |
Definition at line 135 of file GradientDescentInstantiationSearcher.h.