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