195 program = program.
flattenModules(std::make_unique<storm::utility::solver::MathsatSmtSolverFactory>());
197 std::vector<storm::expressions::Expression> initialPredicates;
200 initialPredicates.push_back(manager.getVariableExpression(
"s1") == manager.integer(0));
201 initialPredicates.push_back(manager.getVariableExpression(
"s1") == manager.integer(1));
202 initialPredicates.push_back(manager.getVariableExpression(
"s1") == manager.integer(2));
203 initialPredicates.push_back(manager.getVariableExpression(
"s1") == manager.integer(3));
204 initialPredicates.push_back(manager.getVariableExpression(
"s1") == manager.integer(4));
205 initialPredicates.push_back(manager.getVariableExpression(
"s1") == manager.integer(5));
206 initialPredicates.push_back(manager.getVariableExpression(
"s1") == manager.integer(6));
207 initialPredicates.push_back(manager.getVariableExpression(
"s1") == manager.integer(7));
209 initialPredicates.push_back(manager.getVariableExpression(
"d1") == manager.integer(0));
210 initialPredicates.push_back(manager.getVariableExpression(
"d1") == manager.integer(1));
211 initialPredicates.push_back(manager.getVariableExpression(
"d1") == manager.integer(2));
212 initialPredicates.push_back(manager.getVariableExpression(
"d1") == manager.integer(3));
213 initialPredicates.push_back(manager.getVariableExpression(
"d1") == manager.integer(4));
214 initialPredicates.push_back(manager.getVariableExpression(
"d1") == manager.integer(5));
215 initialPredicates.push_back(manager.getVariableExpression(
"d1") == manager.integer(6));
217 initialPredicates.push_back(manager.getVariableExpression(
"s2") == manager.integer(0));
218 initialPredicates.push_back(manager.getVariableExpression(
"s2") == manager.integer(1));
219 initialPredicates.push_back(manager.getVariableExpression(
"s2") == manager.integer(2));
220 initialPredicates.push_back(manager.getVariableExpression(
"s2") == manager.integer(3));
221 initialPredicates.push_back(manager.getVariableExpression(
"s2") == manager.integer(4));
222 initialPredicates.push_back(manager.getVariableExpression(
"s2") == manager.integer(5));
223 initialPredicates.push_back(manager.getVariableExpression(
"s2") == manager.integer(6));
224 initialPredicates.push_back(manager.getVariableExpression(
"s2") == manager.integer(7));
226 initialPredicates.push_back(manager.getVariableExpression(
"d2") == manager.integer(0));
227 initialPredicates.push_back(manager.getVariableExpression(
"d2") == manager.integer(1));
228 initialPredicates.push_back(manager.getVariableExpression(
"d2") == manager.integer(2));
229 initialPredicates.push_back(manager.getVariableExpression(
"d2") == manager.integer(3));
230 initialPredicates.push_back(manager.getVariableExpression(
"d2") == manager.integer(4));
231 initialPredicates.push_back(manager.getVariableExpression(
"d2") == manager.integer(5));
232 initialPredicates.push_back(manager.getVariableExpression(
"d2") == manager.integer(6));
234 auto smtSolverFactory = std::make_shared<storm::utility::solver::MathsatSmtSolverFactory>();
237 refiner.
refine(initialPredicates);
243 abstractor.
getStates(initialPredicates[9]) && abstractor.
getStates(initialPredicates[24]) &&
248 storm::OptimizationDirection::Minimize, storm::OptimizationDirection::Minimize,
true,
true);
255 EXPECT_TRUE(nonProb0StatesWithStrategy.
isZero());
261 EXPECT_EQ(153ull, stateDistributionsUnderStrategies.
getNonZeroCount());
264 EXPECT_EQ(1.0, stateDistributionCount.
getMax());
267 storm::OptimizationDirection::Minimize, storm::OptimizationDirection::Minimize);
271 storm::OptimizationDirection::Minimize, storm::OptimizationDirection::Maximize);
275 storm::OptimizationDirection::Minimize, storm::OptimizationDirection::Maximize);
279 storm::OptimizationDirection::Maximize, storm::OptimizationDirection::Minimize);
283 storm::OptimizationDirection::Maximize, storm::OptimizationDirection::Minimize);
287 storm::OptimizationDirection::Maximize, storm::OptimizationDirection::Maximize);
291 storm::OptimizationDirection::Maximize, storm::OptimizationDirection::Maximize,
true,
true);
298 EXPECT_TRUE(nonProb1StatesWithStrategy.
isZero());
301 stateDistributionsUnderStrategies =
308 EXPECT_EQ(1.0, stateDistributionCount.
getMax());
315 program = program.
flattenModules(std::make_unique<storm::utility::solver::MathsatSmtSolverFactory>());
317 std::vector<storm::expressions::Expression> initialPredicates;
320 initialPredicates.push_back(manager.getVariableExpression(
"col") == manager.integer(0));
321 initialPredicates.push_back(manager.getVariableExpression(
"col") == manager.integer(1));
322 initialPredicates.push_back(manager.getVariableExpression(
"col") == manager.integer(2));
324 initialPredicates.push_back(manager.getVariableExpression(
"c1") == manager.integer(0));
325 initialPredicates.push_back(manager.getVariableExpression(
"c1") == manager.integer(1));
326 initialPredicates.push_back(manager.getVariableExpression(
"c1") == manager.integer(2));
328 initialPredicates.push_back(manager.getVariableExpression(
"c2") == manager.integer(0));
329 initialPredicates.push_back(manager.getVariableExpression(
"c2") == manager.integer(1));
330 initialPredicates.push_back(manager.getVariableExpression(
"c2") == manager.integer(2));
332 initialPredicates.push_back(manager.getVariableExpression(
"x1") == manager.integer(0));
333 initialPredicates.push_back(manager.getVariableExpression(
"x1") == manager.integer(1));
334 initialPredicates.push_back(manager.getVariableExpression(
"x1") == manager.integer(2));
335 initialPredicates.push_back(manager.getVariableExpression(
"x1") == manager.integer(3));
336 initialPredicates.push_back(manager.getVariableExpression(
"x1") == manager.integer(4));
337 initialPredicates.push_back(manager.getVariableExpression(
"x1") == manager.integer(5));
338 initialPredicates.push_back(manager.getVariableExpression(
"x1") == manager.integer(6));
339 initialPredicates.push_back(manager.getVariableExpression(
"x1") == manager.integer(7));
341 initialPredicates.push_back(manager.getVariableExpression(
"s1") == manager.integer(1));
342 initialPredicates.push_back(manager.getVariableExpression(
"s1") == manager.integer(2));
343 initialPredicates.push_back(manager.getVariableExpression(
"s1") == manager.integer(3));
344 initialPredicates.push_back(manager.getVariableExpression(
"s1") == manager.integer(4));
345 initialPredicates.push_back(manager.getVariableExpression(
"s1") == manager.integer(5));
346 initialPredicates.push_back(manager.getVariableExpression(
"s1") == manager.integer(6));
347 initialPredicates.push_back(manager.getVariableExpression(
"s1") == manager.integer(7));
348 initialPredicates.push_back(manager.getVariableExpression(
"s1") == manager.integer(8));
349 initialPredicates.push_back(manager.getVariableExpression(
"s1") == manager.integer(9));
350 initialPredicates.push_back(manager.getVariableExpression(
"s1") == manager.integer(10));
351 initialPredicates.push_back(manager.getVariableExpression(
"s1") == manager.integer(11));
352 initialPredicates.push_back(manager.getVariableExpression(
"s1") == manager.integer(12));
354 initialPredicates.push_back(manager.getVariableExpression(
"slot1") == manager.integer(0));
355 initialPredicates.push_back(manager.getVariableExpression(
"slot1") == manager.integer(1));
357 initialPredicates.push_back(manager.getVariableExpression(
"backoff1") == manager.integer(0));
358 initialPredicates.push_back(manager.getVariableExpression(
"backoff1") == manager.integer(1));
359 initialPredicates.push_back(manager.getVariableExpression(
"backoff1") == manager.integer(2));
360 initialPredicates.push_back(manager.getVariableExpression(
"backoff1") == manager.integer(3));
361 initialPredicates.push_back(manager.getVariableExpression(
"backoff1") == manager.integer(4));
362 initialPredicates.push_back(manager.getVariableExpression(
"backoff1") == manager.integer(5));
363 initialPredicates.push_back(manager.getVariableExpression(
"backoff1") == manager.integer(6));
364 initialPredicates.push_back(manager.getVariableExpression(
"backoff1") == manager.integer(7));
365 initialPredicates.push_back(manager.getVariableExpression(
"backoff1") == manager.integer(8));
366 initialPredicates.push_back(manager.getVariableExpression(
"backoff1") == manager.integer(9));
367 initialPredicates.push_back(manager.getVariableExpression(
"backoff1") == manager.integer(10));
368 initialPredicates.push_back(manager.getVariableExpression(
"backoff1") == manager.integer(11));
369 initialPredicates.push_back(manager.getVariableExpression(
"backoff1") == manager.integer(12));
370 initialPredicates.push_back(manager.getVariableExpression(
"backoff1") == manager.integer(13));
371 initialPredicates.push_back(manager.getVariableExpression(
"backoff1") == manager.integer(14));
372 initialPredicates.push_back(manager.getVariableExpression(
"backoff1") == manager.integer(15));
374 initialPredicates.push_back(manager.getVariableExpression(
"bc1") == manager.integer(0));
375 initialPredicates.push_back(manager.getVariableExpression(
"bc1") == manager.integer(1));
377 initialPredicates.push_back(manager.getVariableExpression(
"x2") == manager.integer(0));
378 initialPredicates.push_back(manager.getVariableExpression(
"x2") == manager.integer(1));
379 initialPredicates.push_back(manager.getVariableExpression(
"x2") == manager.integer(2));
380 initialPredicates.push_back(manager.getVariableExpression(
"x2") == manager.integer(3));
381 initialPredicates.push_back(manager.getVariableExpression(
"x2") == manager.integer(4));
382 initialPredicates.push_back(manager.getVariableExpression(
"x2") == manager.integer(5));
383 initialPredicates.push_back(manager.getVariableExpression(
"x2") == manager.integer(6));
384 initialPredicates.push_back(manager.getVariableExpression(
"x2") == manager.integer(7));
386 initialPredicates.push_back(manager.getVariableExpression(
"s2") == manager.integer(1));
387 initialPredicates.push_back(manager.getVariableExpression(
"s2") == manager.integer(2));
388 initialPredicates.push_back(manager.getVariableExpression(
"s2") == manager.integer(3));
389 initialPredicates.push_back(manager.getVariableExpression(
"s2") == manager.integer(4));
390 initialPredicates.push_back(manager.getVariableExpression(
"s2") == manager.integer(5));
391 initialPredicates.push_back(manager.getVariableExpression(
"s2") == manager.integer(6));
392 initialPredicates.push_back(manager.getVariableExpression(
"s2") == manager.integer(7));
393 initialPredicates.push_back(manager.getVariableExpression(
"s2") == manager.integer(8));
394 initialPredicates.push_back(manager.getVariableExpression(
"s2") == manager.integer(9));
395 initialPredicates.push_back(manager.getVariableExpression(
"s2") == manager.integer(10));
396 initialPredicates.push_back(manager.getVariableExpression(
"s2") == manager.integer(11));
397 initialPredicates.push_back(manager.getVariableExpression(
"s2") == manager.integer(12));
399 initialPredicates.push_back(manager.getVariableExpression(
"slot2") == manager.integer(0));
400 initialPredicates.push_back(manager.getVariableExpression(
"slot2") == manager.integer(1));
402 initialPredicates.push_back(manager.getVariableExpression(
"backoff2") == manager.integer(0));
403 initialPredicates.push_back(manager.getVariableExpression(
"backoff2") == manager.integer(1));
404 initialPredicates.push_back(manager.getVariableExpression(
"backoff2") == manager.integer(2));
405 initialPredicates.push_back(manager.getVariableExpression(
"backoff2") == manager.integer(3));
406 initialPredicates.push_back(manager.getVariableExpression(
"backoff2") == manager.integer(4));
407 initialPredicates.push_back(manager.getVariableExpression(
"backoff2") == manager.integer(5));
408 initialPredicates.push_back(manager.getVariableExpression(
"backoff2") == manager.integer(6));
409 initialPredicates.push_back(manager.getVariableExpression(
"backoff2") == manager.integer(7));
410 initialPredicates.push_back(manager.getVariableExpression(
"backoff2") == manager.integer(8));
411 initialPredicates.push_back(manager.getVariableExpression(
"backoff2") == manager.integer(9));
412 initialPredicates.push_back(manager.getVariableExpression(
"backoff2") == manager.integer(10));
413 initialPredicates.push_back(manager.getVariableExpression(
"backoff2") == manager.integer(11));
414 initialPredicates.push_back(manager.getVariableExpression(
"backoff2") == manager.integer(12));
415 initialPredicates.push_back(manager.getVariableExpression(
"backoff2") == manager.integer(13));
416 initialPredicates.push_back(manager.getVariableExpression(
"backoff2") == manager.integer(14));
417 initialPredicates.push_back(manager.getVariableExpression(
"backoff2") == manager.integer(15));
419 initialPredicates.push_back(manager.getVariableExpression(
"bc2") == manager.integer(0));
420 initialPredicates.push_back(manager.getVariableExpression(
"bc2") == manager.integer(1));
422 auto smtSolverFactory = std::make_shared<storm::utility::solver::MathsatSmtSolverFactory>();
425 refiner.
refine(initialPredicates);
434 storm::OptimizationDirection::Minimize, storm::OptimizationDirection::Minimize,
true,
true);
441 EXPECT_TRUE(nonProb0StatesWithStrategy.
isZero());
447 EXPECT_EQ(2831ull, stateDistributionsUnderStrategies.
getNonZeroCount());
451 EXPECT_EQ(1.0, stateDistributionCount.
getMax());
454 storm::OptimizationDirection::Minimize, storm::OptimizationDirection::Minimize);
458 storm::OptimizationDirection::Minimize, storm::OptimizationDirection::Maximize);
462 storm::OptimizationDirection::Minimize, storm::OptimizationDirection::Maximize);
466 storm::OptimizationDirection::Maximize, storm::OptimizationDirection::Minimize);
470 storm::OptimizationDirection::Maximize, storm::OptimizationDirection::Minimize);
474 storm::OptimizationDirection::Maximize, storm::OptimizationDirection::Maximize);
478 storm::OptimizationDirection::Maximize, storm::OptimizationDirection::Maximize,
true,
true);
485 EXPECT_TRUE(nonProb1StatesWithStrategy.
isZero());
488 stateDistributionsUnderStrategies =
491 EXPECT_EQ(2884ull, stateDistributionsUnderStrategies.
getNonZeroCount());
495 EXPECT_EQ(1.0, stateDistributionCount.
getMax());