1#include "storm-config.h"
16#ifdef STORM_HAVE_GUROBI
18TEST(MilpPermissiveSchedulerTest, DieSelection) {
26 std::string formulaString =
"";
27 formulaString +=
"P>=0.10 [ F \"one\"];\n";
28 formulaString +=
"P>=0.17 [ F \"one\"];\n";
29 formulaString +=
"P<=0.10 [ F \"one\"];\n";
30 formulaString +=
"P<=0.17 [ F \"one\"];\n";
31 auto formulas = formulaParser.parseFromString(formulaString);
33 auto const& formula02 = formulas[0].getRawFormula()->asProbabilityOperatorFormula();
35 auto const& formula001 = formulas[1].getRawFormula()->asProbabilityOperatorFormula();
36 auto const& formula02b = formulas[2].getRawFormula()->asProbabilityOperatorFormula();
37 auto const& formula001b = formulas[3].getRawFormula()->asProbabilityOperatorFormula();
42 std::shared_ptr<storm::models::sparse::Mdp<double>> mdp =
46 EXPECT_TRUE(perms.is_initialized());
48 EXPECT_FALSE(perms2.is_initialized());
51 EXPECT_FALSE(perms3.is_initialized());
53 EXPECT_TRUE(perms4.is_initialized());
57 std::unique_ptr<storm::modelchecker::CheckResult> result0 = checker0.check(env, formula02);
60 ASSERT_FALSE(qualitativeResult0[0]);
62 auto submdp = perms->apply();
65 std::unique_ptr<storm::modelchecker::CheckResult> result1 = checker1.check(env, formula02);
68 EXPECT_TRUE(qualitativeResult1[0]);
BuilderOptions & setBuildAllLabels(bool newValue=true)
Should all reward models be built?
BuilderOptions & setBuildChoiceLabels(bool newValue=true)
Should the choice labels be built?
std::shared_ptr< storm::models::sparse::Model< ValueType, RewardModelType > > build()
Convert the program given at construction time to an abstract model.
std::shared_ptr< ExpressionManager > getSharedPointer()
Retrieves a shared pointer to the expression manager.
This class represents a (discrete-time) Markov decision process.
static storm::prism::Program parse(std::string const &filename, bool prismCompatability=false)
Parses the given file into the PRISM storage classes assuming it complies with the PRISM syntax.
storm::expressions::ExpressionManager & getManager() const
Retrieves the manager responsible for the expressions of this program.
storm::builder::BuilderOptions NextStateGeneratorOptions
bool isLowerBound(ComparisonType t)
boost::optional< SubMDPPermissiveScheduler< RM > > computePermissiveSchedulerViaMILP(storm::models::sparse::Mdp< double, RM > const &mdp, storm::logic::ProbabilityOperatorFormula const &safeProp)