34 std::vector<std::string> linearEquationSolver = {
"gmm++",
"native",
"eigen",
"elimination"};
36 "Sets which solver is considered for solving the underlying equation systems.")
43 std::vector<std::string> minMaxSolvingTechniques = {
"vi",
"value-iteration",
44 "pi",
"policy-iteration",
45 "lp",
"linear-programming",
47 "ii",
"interval-iteration",
48 "svi",
"sound-value-iteration",
49 "ovi",
"optimistic-value-iteration",
50 "gvi",
"guessing-value-iteration",
51 "vi-to-pi",
"vi-to-lp"};
53 "Sets which minmax method is considered for solving the underlying minmax equation systems.")
57 .setDefaultValueString(
"value-iteration")
78 if (equationSolverName ==
"gmm++") {
79 return storm::solver::EquationSolverType::Gmmxx;
80 }
else if (equationSolverName ==
"native") {
81 return storm::solver::EquationSolverType::Native;
82 }
else if (equationSolverName ==
"eigen") {
83 return storm::solver::EquationSolverType::Eigen;
84 }
else if (equationSolverName ==
"elimination") {
85 return storm::solver::EquationSolverType::Elimination;
87 STORM_LOG_THROW(
false, storm::exceptions::IllegalArgumentValueException,
"Unknown underlying equation solver '" << equationSolverName <<
"'.");
101 if (minMaxEquationSolvingTechnique ==
"value-iteration" || minMaxEquationSolvingTechnique ==
"vi") {
102 return storm::solver::MinMaxMethod::ValueIteration;
103 }
else if (minMaxEquationSolvingTechnique ==
"policy-iteration" || minMaxEquationSolvingTechnique ==
"pi") {
104 return storm::solver::MinMaxMethod::PolicyIteration;
105 }
else if (minMaxEquationSolvingTechnique ==
"linear-programming" || minMaxEquationSolvingTechnique ==
"lp") {
106 return storm::solver::MinMaxMethod::LinearProgramming;
107 }
else if (minMaxEquationSolvingTechnique ==
"ratsearch" || minMaxEquationSolvingTechnique ==
"rs") {
108 return storm::solver::MinMaxMethod::RationalSearch;
109 }
else if (minMaxEquationSolvingTechnique ==
"interval-iteration" || minMaxEquationSolvingTechnique ==
"ii") {
110 return storm::solver::MinMaxMethod::IntervalIteration;
111 }
else if (minMaxEquationSolvingTechnique ==
"sound-value-iteration" || minMaxEquationSolvingTechnique ==
"svi") {
112 return storm::solver::MinMaxMethod::SoundValueIteration;
113 }
else if (minMaxEquationSolvingTechnique ==
"optimistic-value-iteration" || minMaxEquationSolvingTechnique ==
"ovi") {
114 return storm::solver::MinMaxMethod::OptimisticValueIteration;
115 }
else if (minMaxEquationSolvingTechnique ==
"guessing-value-iteration" || minMaxEquationSolvingTechnique ==
"gvi") {
116 return storm::solver::MinMaxMethod::GuessingValueIteration;
117 }
else if (minMaxEquationSolvingTechnique ==
"vi-to-pi") {
118 return storm::solver::MinMaxMethod::ViToPi;
119 }
else if (minMaxEquationSolvingTechnique ==
"vi-to-lp") {
120 return storm::solver::MinMaxMethod::ViToLp;
123 STORM_LOG_THROW(
false, storm::exceptions::IllegalArgumentValueException,
"Unknown underlying equation solver '" << minMaxEquationSolvingTechnique <<
"'.");