193 program = program.
flattenModules(std::make_unique<storm::utility::solver::MathsatSmtSolverFactory>());
195 std::vector<storm::expressions::Expression> initialPredicates;
198 initialPredicates.push_back(manager.getVariableExpression(
"s1") == manager.integer(0));
199 initialPredicates.push_back(manager.getVariableExpression(
"s1") == manager.integer(1));
200 initialPredicates.push_back(manager.getVariableExpression(
"s1") == manager.integer(2));
201 initialPredicates.push_back(manager.getVariableExpression(
"s1") == manager.integer(3));
202 initialPredicates.push_back(manager.getVariableExpression(
"s1") == manager.integer(4));
203 initialPredicates.push_back(manager.getVariableExpression(
"s1") == manager.integer(5));
204 initialPredicates.push_back(manager.getVariableExpression(
"s1") == manager.integer(6));
205 initialPredicates.push_back(manager.getVariableExpression(
"s1") == manager.integer(7));
207 initialPredicates.push_back(manager.getVariableExpression(
"d1") == manager.integer(0));
208 initialPredicates.push_back(manager.getVariableExpression(
"d1") == manager.integer(1));
209 initialPredicates.push_back(manager.getVariableExpression(
"d1") == manager.integer(2));
210 initialPredicates.push_back(manager.getVariableExpression(
"d1") == manager.integer(3));
211 initialPredicates.push_back(manager.getVariableExpression(
"d1") == manager.integer(4));
212 initialPredicates.push_back(manager.getVariableExpression(
"d1") == manager.integer(5));
213 initialPredicates.push_back(manager.getVariableExpression(
"d1") == manager.integer(6));
215 initialPredicates.push_back(manager.getVariableExpression(
"s2") == manager.integer(0));
216 initialPredicates.push_back(manager.getVariableExpression(
"s2") == manager.integer(1));
217 initialPredicates.push_back(manager.getVariableExpression(
"s2") == manager.integer(2));
218 initialPredicates.push_back(manager.getVariableExpression(
"s2") == manager.integer(3));
219 initialPredicates.push_back(manager.getVariableExpression(
"s2") == manager.integer(4));
220 initialPredicates.push_back(manager.getVariableExpression(
"s2") == manager.integer(5));
221 initialPredicates.push_back(manager.getVariableExpression(
"s2") == manager.integer(6));
222 initialPredicates.push_back(manager.getVariableExpression(
"s2") == manager.integer(7));
224 initialPredicates.push_back(manager.getVariableExpression(
"d2") == manager.integer(0));
225 initialPredicates.push_back(manager.getVariableExpression(
"d2") == manager.integer(1));
226 initialPredicates.push_back(manager.getVariableExpression(
"d2") == manager.integer(2));
227 initialPredicates.push_back(manager.getVariableExpression(
"d2") == manager.integer(3));
228 initialPredicates.push_back(manager.getVariableExpression(
"d2") == manager.integer(4));
229 initialPredicates.push_back(manager.getVariableExpression(
"d2") == manager.integer(5));
230 initialPredicates.push_back(manager.getVariableExpression(
"d2") == manager.integer(6));
232 auto smtSolverFactory = std::make_shared<storm::utility::solver::MathsatSmtSolverFactory>();
235 refiner.
refine(initialPredicates);
241 abstractor.
getStates(initialPredicates[9]) && abstractor.
getStates(initialPredicates[24]) &&
246 storm::OptimizationDirection::Minimize, storm::OptimizationDirection::Minimize,
true,
true);
253 EXPECT_TRUE(nonProb0StatesWithStrategy.
isZero());
259 EXPECT_EQ(153ull, stateDistributionsUnderStrategies.
getNonZeroCount());
262 EXPECT_EQ(1.0, stateDistributionCount.
getMax());
265 storm::OptimizationDirection::Minimize, storm::OptimizationDirection::Minimize);
269 storm::OptimizationDirection::Minimize, storm::OptimizationDirection::Maximize);
273 storm::OptimizationDirection::Minimize, storm::OptimizationDirection::Maximize);
277 storm::OptimizationDirection::Maximize, storm::OptimizationDirection::Minimize);
281 storm::OptimizationDirection::Maximize, storm::OptimizationDirection::Minimize);
285 storm::OptimizationDirection::Maximize, storm::OptimizationDirection::Maximize);
289 storm::OptimizationDirection::Maximize, storm::OptimizationDirection::Maximize,
true,
true);
296 EXPECT_TRUE(nonProb1StatesWithStrategy.
isZero());
299 stateDistributionsUnderStrategies =
306 EXPECT_EQ(1.0, stateDistributionCount.
getMax());
313 program = program.
flattenModules(std::make_unique<storm::utility::solver::MathsatSmtSolverFactory>());
315 std::vector<storm::expressions::Expression> initialPredicates;
318 initialPredicates.push_back(manager.getVariableExpression(
"col") == manager.integer(0));
319 initialPredicates.push_back(manager.getVariableExpression(
"col") == manager.integer(1));
320 initialPredicates.push_back(manager.getVariableExpression(
"col") == manager.integer(2));
322 initialPredicates.push_back(manager.getVariableExpression(
"c1") == manager.integer(0));
323 initialPredicates.push_back(manager.getVariableExpression(
"c1") == manager.integer(1));
324 initialPredicates.push_back(manager.getVariableExpression(
"c1") == manager.integer(2));
326 initialPredicates.push_back(manager.getVariableExpression(
"c2") == manager.integer(0));
327 initialPredicates.push_back(manager.getVariableExpression(
"c2") == manager.integer(1));
328 initialPredicates.push_back(manager.getVariableExpression(
"c2") == manager.integer(2));
330 initialPredicates.push_back(manager.getVariableExpression(
"x1") == manager.integer(0));
331 initialPredicates.push_back(manager.getVariableExpression(
"x1") == manager.integer(1));
332 initialPredicates.push_back(manager.getVariableExpression(
"x1") == manager.integer(2));
333 initialPredicates.push_back(manager.getVariableExpression(
"x1") == manager.integer(3));
334 initialPredicates.push_back(manager.getVariableExpression(
"x1") == manager.integer(4));
335 initialPredicates.push_back(manager.getVariableExpression(
"x1") == manager.integer(5));
336 initialPredicates.push_back(manager.getVariableExpression(
"x1") == manager.integer(6));
337 initialPredicates.push_back(manager.getVariableExpression(
"x1") == manager.integer(7));
339 initialPredicates.push_back(manager.getVariableExpression(
"s1") == manager.integer(1));
340 initialPredicates.push_back(manager.getVariableExpression(
"s1") == manager.integer(2));
341 initialPredicates.push_back(manager.getVariableExpression(
"s1") == manager.integer(3));
342 initialPredicates.push_back(manager.getVariableExpression(
"s1") == manager.integer(4));
343 initialPredicates.push_back(manager.getVariableExpression(
"s1") == manager.integer(5));
344 initialPredicates.push_back(manager.getVariableExpression(
"s1") == manager.integer(6));
345 initialPredicates.push_back(manager.getVariableExpression(
"s1") == manager.integer(7));
346 initialPredicates.push_back(manager.getVariableExpression(
"s1") == manager.integer(8));
347 initialPredicates.push_back(manager.getVariableExpression(
"s1") == manager.integer(9));
348 initialPredicates.push_back(manager.getVariableExpression(
"s1") == manager.integer(10));
349 initialPredicates.push_back(manager.getVariableExpression(
"s1") == manager.integer(11));
350 initialPredicates.push_back(manager.getVariableExpression(
"s1") == manager.integer(12));
352 initialPredicates.push_back(manager.getVariableExpression(
"slot1") == manager.integer(0));
353 initialPredicates.push_back(manager.getVariableExpression(
"slot1") == manager.integer(1));
355 initialPredicates.push_back(manager.getVariableExpression(
"backoff1") == manager.integer(0));
356 initialPredicates.push_back(manager.getVariableExpression(
"backoff1") == manager.integer(1));
357 initialPredicates.push_back(manager.getVariableExpression(
"backoff1") == manager.integer(2));
358 initialPredicates.push_back(manager.getVariableExpression(
"backoff1") == manager.integer(3));
359 initialPredicates.push_back(manager.getVariableExpression(
"backoff1") == manager.integer(4));
360 initialPredicates.push_back(manager.getVariableExpression(
"backoff1") == manager.integer(5));
361 initialPredicates.push_back(manager.getVariableExpression(
"backoff1") == manager.integer(6));
362 initialPredicates.push_back(manager.getVariableExpression(
"backoff1") == manager.integer(7));
363 initialPredicates.push_back(manager.getVariableExpression(
"backoff1") == manager.integer(8));
364 initialPredicates.push_back(manager.getVariableExpression(
"backoff1") == manager.integer(9));
365 initialPredicates.push_back(manager.getVariableExpression(
"backoff1") == manager.integer(10));
366 initialPredicates.push_back(manager.getVariableExpression(
"backoff1") == manager.integer(11));
367 initialPredicates.push_back(manager.getVariableExpression(
"backoff1") == manager.integer(12));
368 initialPredicates.push_back(manager.getVariableExpression(
"backoff1") == manager.integer(13));
369 initialPredicates.push_back(manager.getVariableExpression(
"backoff1") == manager.integer(14));
370 initialPredicates.push_back(manager.getVariableExpression(
"backoff1") == manager.integer(15));
372 initialPredicates.push_back(manager.getVariableExpression(
"bc1") == manager.integer(0));
373 initialPredicates.push_back(manager.getVariableExpression(
"bc1") == manager.integer(1));
375 initialPredicates.push_back(manager.getVariableExpression(
"x2") == manager.integer(0));
376 initialPredicates.push_back(manager.getVariableExpression(
"x2") == manager.integer(1));
377 initialPredicates.push_back(manager.getVariableExpression(
"x2") == manager.integer(2));
378 initialPredicates.push_back(manager.getVariableExpression(
"x2") == manager.integer(3));
379 initialPredicates.push_back(manager.getVariableExpression(
"x2") == manager.integer(4));
380 initialPredicates.push_back(manager.getVariableExpression(
"x2") == manager.integer(5));
381 initialPredicates.push_back(manager.getVariableExpression(
"x2") == manager.integer(6));
382 initialPredicates.push_back(manager.getVariableExpression(
"x2") == manager.integer(7));
384 initialPredicates.push_back(manager.getVariableExpression(
"s2") == manager.integer(1));
385 initialPredicates.push_back(manager.getVariableExpression(
"s2") == manager.integer(2));
386 initialPredicates.push_back(manager.getVariableExpression(
"s2") == manager.integer(3));
387 initialPredicates.push_back(manager.getVariableExpression(
"s2") == manager.integer(4));
388 initialPredicates.push_back(manager.getVariableExpression(
"s2") == manager.integer(5));
389 initialPredicates.push_back(manager.getVariableExpression(
"s2") == manager.integer(6));
390 initialPredicates.push_back(manager.getVariableExpression(
"s2") == manager.integer(7));
391 initialPredicates.push_back(manager.getVariableExpression(
"s2") == manager.integer(8));
392 initialPredicates.push_back(manager.getVariableExpression(
"s2") == manager.integer(9));
393 initialPredicates.push_back(manager.getVariableExpression(
"s2") == manager.integer(10));
394 initialPredicates.push_back(manager.getVariableExpression(
"s2") == manager.integer(11));
395 initialPredicates.push_back(manager.getVariableExpression(
"s2") == manager.integer(12));
397 initialPredicates.push_back(manager.getVariableExpression(
"slot2") == manager.integer(0));
398 initialPredicates.push_back(manager.getVariableExpression(
"slot2") == manager.integer(1));
400 initialPredicates.push_back(manager.getVariableExpression(
"backoff2") == manager.integer(0));
401 initialPredicates.push_back(manager.getVariableExpression(
"backoff2") == manager.integer(1));
402 initialPredicates.push_back(manager.getVariableExpression(
"backoff2") == manager.integer(2));
403 initialPredicates.push_back(manager.getVariableExpression(
"backoff2") == manager.integer(3));
404 initialPredicates.push_back(manager.getVariableExpression(
"backoff2") == manager.integer(4));
405 initialPredicates.push_back(manager.getVariableExpression(
"backoff2") == manager.integer(5));
406 initialPredicates.push_back(manager.getVariableExpression(
"backoff2") == manager.integer(6));
407 initialPredicates.push_back(manager.getVariableExpression(
"backoff2") == manager.integer(7));
408 initialPredicates.push_back(manager.getVariableExpression(
"backoff2") == manager.integer(8));
409 initialPredicates.push_back(manager.getVariableExpression(
"backoff2") == manager.integer(9));
410 initialPredicates.push_back(manager.getVariableExpression(
"backoff2") == manager.integer(10));
411 initialPredicates.push_back(manager.getVariableExpression(
"backoff2") == manager.integer(11));
412 initialPredicates.push_back(manager.getVariableExpression(
"backoff2") == manager.integer(12));
413 initialPredicates.push_back(manager.getVariableExpression(
"backoff2") == manager.integer(13));
414 initialPredicates.push_back(manager.getVariableExpression(
"backoff2") == manager.integer(14));
415 initialPredicates.push_back(manager.getVariableExpression(
"backoff2") == manager.integer(15));
417 initialPredicates.push_back(manager.getVariableExpression(
"bc2") == manager.integer(0));
418 initialPredicates.push_back(manager.getVariableExpression(
"bc2") == manager.integer(1));
420 auto smtSolverFactory = std::make_shared<storm::utility::solver::MathsatSmtSolverFactory>();
423 refiner.
refine(initialPredicates);
432 storm::OptimizationDirection::Minimize, storm::OptimizationDirection::Minimize,
true,
true);
439 EXPECT_TRUE(nonProb0StatesWithStrategy.
isZero());
445 EXPECT_EQ(2831ull, stateDistributionsUnderStrategies.
getNonZeroCount());
449 EXPECT_EQ(1.0, stateDistributionCount.
getMax());
452 storm::OptimizationDirection::Minimize, storm::OptimizationDirection::Minimize);
456 storm::OptimizationDirection::Minimize, storm::OptimizationDirection::Maximize);
460 storm::OptimizationDirection::Minimize, storm::OptimizationDirection::Maximize);
464 storm::OptimizationDirection::Maximize, storm::OptimizationDirection::Minimize);
468 storm::OptimizationDirection::Maximize, storm::OptimizationDirection::Minimize);
472 storm::OptimizationDirection::Maximize, storm::OptimizationDirection::Maximize);
476 storm::OptimizationDirection::Maximize, storm::OptimizationDirection::Maximize,
true,
true);
483 EXPECT_TRUE(nonProb1StatesWithStrategy.
isZero());
486 stateDistributionsUnderStrategies =
489 EXPECT_EQ(2884ull, stateDistributionsUnderStrategies.
getNonZeroCount());
493 EXPECT_EQ(1.0, stateDistributionCount.
getMax());