STORM_LOG_INFO("Abstraction in iteration "<<iteration<<" has "<<game.getNumberOfStates()<<" player 1 states ("<<game.getInitialStates().getNonZeroCount()<<" initial), "<<game.getNumberOfPlayer2States()<<" player 2 states, "<<game.getNumberOfTransitions()<<" transitions, "<<game.getBottomStates().getNonZeroCount()<<" bottom states, "<<abstractor->getNumberOfPredicates()<<" predicate(s), "<<game.getTransitionMatrix().getNodeCount()<<" nodes (transition matrix) (computed in "<<abstractionWatch.getTimeInMilliseconds()<<"ms).");
STORM_LOG_INFO("Abstraction in iteration "<<iteration<<" has "<<numberOfPlayer1States<<" player 1 states ("<<game.getInitialStates().getNonZeroCount()<<" initial), "<<game.getNumberOfPlayer2States()<<" player 2 states, "<<numberOfTransitions<<" transitions, "<<game.getBottomStates().getNonZeroCount()<<" bottom states, "<<abstractor->getNumberOfPredicates()<<" predicate(s), "<<game.getTransitionMatrix().getNodeCount()<<" nodes (transition matrix) (computed in "<<abstractionWatch.getTimeInMilliseconds()<<"ms).");
// (2) Prepare initial, constraint and target state BDDs for later use.
STORM_LOG_ASSERT(targetStates.get(state)||minStrategyPair.getPlayer1Strategy().hasDefinedChoice(state),"Expected lower player 1 choice in state "<<state<<".");
STORM_LOG_ASSERT(targetStates.get(state)||maxStrategyPair.getPlayer1Strategy().hasDefinedChoice(state),"Expected upper player 1 choice in state "<<state<<".");
STORM_LOG_ASSERT(minStrategyPair.getPlayer2Strategy().hasDefinedChoice(lowerPlayer1Choice),"Expected lower player 2 choice for state "<<state<<" (upper player 1 choice "<<lowerPlayer1Choice<<").");
STORM_LOG_ASSERT(minStrategyPair.getPlayer2Strategy().hasDefinedChoice(lowerPlayer1Choice),"Expected lower player 2 choice for state "<<state<<" (lower player 1 choice "<<lowerPlayer1Choice<<").");
STORM_LOG_ASSERT(maxStrategyPair.getPlayer2Strategy().hasDefinedChoice(upperPlayer1Choice),"Expected upper player 2 choice for state "<<state<<" (upper player 1 choice "<<upperPlayer1Choice<<").");
STORM_LOG_ASSERT(maxStrategyPair.getPlayer2Strategy().hasDefinedChoice(upperPlayer1Choice),"Expected upper player 2 choice for state "<<state<<" (upper player 1 choice "<<upperPlayer1Choice<<").");
// Make sure that all strategies are still valid strategies.
STORM_LOG_ASSERT(minStrategyPair.getNumberOfUndefinedPlayer1States()<=targetStates.getNumberOfSetBits(),"Expected at most "<<targetStates.getNumberOfSetBits()<<" (number of target states) player 1 states with undefined choice but got "<<minStrategyPair.getNumberOfUndefinedPlayer1States()<<".");
std::cout<<" * size of final game: "<<game.getReachableStates().getNonZeroCount()<<" player 1 states"<<std::endl;
std::cout<<" * size of final game: "<<game.getReachableStates().getNonZeroCount()<<" player 1 states, "<<game.getTransitionMatrix().getNonZeroCount()<<" transitions"<<std::endl;
std::cout<<" * peak size of game: "<<peakPlayer1States<<" player 1 states, "<<peakTransitions<<" transitions"<<std::endl;
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("constraints","The constraints to use.").build())
.build());
this->addOption(storm::settings::OptionBuilder(moduleName,injectRefinementPredicatesOption,true,"Specifies predicates used by the refinement instead of the derived predicates.")
this->addOption(storm::settings::OptionBuilder(moduleName,injectRefinementPredicatesOptionName,true,"Specifies predicates used by the refinement instead of the derived predicates.")
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("predicates","The (semicolon-separated) refinement predicates to use.").build())
.build());
this->addOption(storm::settings::OptionBuilder(moduleName,fixPlayer1StrategyOptionName,true,"Sets whether to fix player 1 strategies.")
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("value","The value of the flag.").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(onOff))
.setDefaultValueString("on").build())
.build());
this->addOption(storm::settings::OptionBuilder(moduleName,fixPlayer2StrategyOptionName,true,"Sets whether to fix player 2 strategies.")
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("value","The value of the flag.").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(onOff))
.setDefaultValueString("on").build())
.build());
this->addOption(storm::settings::OptionBuilder(moduleName,debugOptionName,true,"Sets whether to enable debug mode.")
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("value","The value of the flag.").addValidatorString(ArgumentValidatorFactory::createMultipleChoiceValidator(onOff))