STORM_PRINT_AND_LOG("Over-approx result for refinement improved after "<<statistics.totalTime<<" seconds in refinement step #"<<statistics.refinementSteps.get()<<". New value is '"<<newValue<<"'."<<std::endl);
STORM_LOG_INFO("Over-approx result for refinement improved after "<<statistics.totalTime<<" seconds in refinement step #"<<statistics.refinementSteps.get()<<". New value is '"<<newValue<<"'."<<std::endl);
STORM_PRINT_AND_LOG("Under-approx result for refinement improved after "<<statistics.totalTime<<" seconds in refinement step #"<<statistics.refinementSteps.get()<<". New value is '"<<newValue<<"'."<<std::endl);
STORM_LOG_INFO("Under-approx result for refinement improved after "<<statistics.totalTime<<" seconds in refinement step #"<<statistics.refinementSteps.get()<<". New value is '"<<newValue<<"'."<<std::endl);
}
}
// Do some output
STORM_PRINT_AND_LOG("Completed iteration #"<<statistics.refinementSteps.get()<<". Current checktime is "<<statistics.totalTime<<".");
STORM_LOG_INFO("Completed iteration #"<<statistics.refinementSteps.get()<<". Current checktime is "<<statistics.totalTime<<".");
boolcomputingLowerBound=false;
boolcomputingUpperBound=false;
if(options.discretize){
STORM_PRINT_AND_LOG("Over-approx MDP has size "<<overApproximation->getExploredMdp()->getNumberOfStates()<<".");
STORM_LOG_INFO("\tOver-approx MDP has size "<<overApproximation->getExploredMdp()->getNumberOfStates()<<".");
STORM_PRINT_AND_LOG("Current result is ["<<result.lowerBound<<", "<<result.upperBound<<"].");
STORM_LOG_INFO("\tCurrent result is ["<<result.lowerBound<<", "<<result.upperBound<<"].");
}elseif(computingLowerBound){
STORM_PRINT_AND_LOG("Current result is ≥"<<result.lowerBound<<".");
STORM_LOG_INFO("\tCurrent result is ≥"<<result.lowerBound<<".");
}elseif(computingUpperBound){
STORM_PRINT_AND_LOG("Current result is ≤"<<result.upperBound<<".");
STORM_LOG_INFO("\tCurrent result is ≤"<<result.upperBound<<".");
}
STORM_PRINT_AND_LOG(std::endl);
// Start refinement
STORM_LOG_WARN_COND(options.refineStepLimit.is_initialized()||!storm::utility::isZero(options.refinePrecision),"No termination criterion for refinement given. Consider to specify a steplimit, a non-zero precisionlimit, or a timeout");
STORM_PRINT_AND_LOG("Over-approx result for refinement improved after "<<statistics.totalTime<<" in refinement step #"<<(statistics.refinementSteps.get()+1)<<". New value is '"<<newValue<<"'."<<std::endl);
STORM_LOG_INFO("Over-approx result for refinement improved after "<<statistics.totalTime<<" in refinement step #"<<(statistics.refinementSteps.get()+1)<<". New value is '"<<newValue<<"'.");
STORM_PRINT_AND_LOG("Under-approx result for refinement improved after "<<statistics.totalTime<<" in refinement step #"<<(statistics.refinementSteps.get()+1)<<". New value is '"<<newValue<<"'."<<std::endl);
STORM_LOG_INFO("Under-approx result for refinement improved after "<<statistics.totalTime<<" in refinement step #"<<(statistics.refinementSteps.get()+1)<<". New value is '"<<newValue<<"'.");
}
}else{
break;
@ -384,30 +400,30 @@ namespace storm {
++statistics.refinementSteps.get();
// Don't make too many outputs (to avoid logfile clutter)
if(statistics.refinementSteps.get()<=1000){
STORM_PRINT_AND_LOG("Completed iteration #"<<statistics.refinementSteps.get()<<". Current checktime is "<<statistics.totalTime<<".");
STORM_LOG_INFO("Completed iteration #"<<statistics.refinementSteps.get()<<". Current checktime is "<<statistics.totalTime<<".");
boolcomputingLowerBound=false;
boolcomputingUpperBound=false;
if(options.discretize){
STORM_PRINT_AND_LOG("Over-approx MDP has size "<<overApproximation->getExploredMdp()->getNumberOfStates()<<".");
STORM_LOG_INFO("\tOver-approx MDP has size "<<overApproximation->getExploredMdp()->getNumberOfStates()<<".");