std::cout<<"player 2 state "<<player2State<<" is a player 2 maybe state with local index "<<previousPlayer2States<<" ranging from row "<<submatrix.getRowGroupIndices()[previousPlayer2States]<<" to "<<submatrix.getRowGroupIndices()[previousPlayer2States+1]<<std::endl;
std::cout<<"copied over choice "<<player2Scheduler[previousPlayer2States]<<" for player 2 (global index "<<startingStrategyPair->getPlayer2Strategy().getChoice(player2State)<<")"<<std::endl;
std::cout<<"did not copy (undefined) choice for player 2 (global index "<<startingStrategyPair->getPlayer2Strategy().getChoice(player2State)<<")"<<std::endl;
}
}
@ -517,6 +517,37 @@ namespace storm {
++maybeStatePosition;
}
STORM_LOG_ASSERT(previousPlayer2States==submatrix.getRowGroupCount(),"Expected correct number of player 2 states.");
}else{
// If the starting strategy pair was provided, we need to extract the choices of the maybe states here.
uint64_tmaybeStatePosition=0;
previousPlayer2States=0;
for(autostate:maybeStates){
if(state==2324||state==50377||state==50209){
std::cout<<"dealing with problematic state "<<state<<" whose local offset is "<<maybeStatePosition<<std::endl;
}
if(state==2324||state==50377||state==50209){
std::cout<<"player 1 scheduler chooses "<<player1Scheduler[maybeStatePosition]<<" which globally is "<<(player1Groups[state]+player1Scheduler[maybeStatePosition])<<std::endl;
std::cout<<"player 2 state "<<player2State<<" is a player 2 maybe state with local index "<<previousPlayer2States<<" ranging from row "<<submatrix.getRowGroupIndices()[previousPlayer2States]<<" to "<<submatrix.getRowGroupIndices()[previousPlayer2States+1]<<std::endl;
}
if(state==2324||state==50377||state==50209){
std::cout<<"player 2 scheduler chooses "<<player2Scheduler[previousPlayer2States]<<" for player 2 (global index "<<(transitionMatrix.getRowGroupIndices()[player2State]+player2Scheduler[previousPlayer2States])<<")"<<std::endl;
}
++previousPlayer2MaybeStatesForState;
++previousPlayer2States;
}
}
++maybeStatePosition;
}
STORM_LOG_ASSERT(previousPlayer2States==submatrix.getRowGroupCount(),"Expected correct number of player 2 states.");
std::cout<<"player 2 choosing "<<(transitionMatrix.getRowGroupIndices()[player2State]+player2Scheduler[previousPlayer2MaybeStates])<<" in "<<player2State<<" for player 1 state "<<state<<std::endl;
STORM_LOG_ASSERT(madePlayer1Choice,"Player 1 state "<<state<<" did not make a choice, scheduler: "<<player1Scheduler[previousPlayer1MaybeStates]<<".");
++previousPlayer1MaybeStates;
}
@ -1157,6 +1197,41 @@ namespace storm {
STORM_LOG_TRACE("Got maximal deviation of "<<maxDiff<<".");
STORM_LOG_WARN_COND(sanityComparator.isZero(maxDiff),"Deviation "<<maxDiff<<" between computed value ("<<quantitativeResult.getMin().getValues()[maxState]<<") and sanity check value ("<<sanityValues[maxState]<<") in state "<<maxState<<" appears to be too high. (Obtained bounds were ["<<quantitativeResult.getMin().getValues()[maxState]<<", "<<quantitativeResult.getMax().getValues()[maxState]<<"].)");
std::cout<<"exploring player 1 state "<<currentState<<" with "<<(player1Groups[currentState+1]-player1Groups[currentState])<<" player 2 successors from"<<player1Groups[currentState]<<" to "<<player1Groups[currentState+1]<<std::endl;
std::cout<<"going to player 2 state "<<player2State<<" with "<<(player2Groups[player2State+1]-player2Groups[player2State])<<" player 2 choices from "<<player2Groups[player2State]<<" to "<<player2Groups[player2State+1]<<std::endl;
std::cout<<"changing choice in "<<std::distance(result.begin(),resultIt)<<" from "<<*choiceIt<<" to "<<selectedChoice<<" because "<<currentValue<<" is better than "<<oldSelectedChoiceValue<<std::endl;