//TODO: at this point, set policy to the one stored in the region.
//TODO: at this point, set policy to the one stored in the region.
invokeSolver(computeLowerBounds,policy);
invokeSolver(computeLowerBounds,policy);
/*
//TODO: (maybe) when a few parameters are mapped to another value, build a "nicer" scheduler and check whether it induces values that are more optimal.
//TODO: (maybe) when a few parameters are mapped to another value, build a "nicer" scheduler and check whether it induces values that are more optimal.
//Get the set of parameters which are (according to the policy) always mapped to the same region boundary.
//Get the set of parameters which are (according to the policy) always mapped to the same region boundary.
//First, collect all (relevant) parameters, i.e., the ones that are set to the lower or upper boundary.
//First, collect all (relevant) parameters, i.e., the ones that are set to the lower or upper boundary.
//std::cout << " Variable " << varcount.first << " has been set to lower " << varcount.second.first<< " times and to upper " << varcount.second.second << " times. (total: " << substitutionCount << ")"<< std::endl;
std::cout<<" Variable "<<varcount.first<<" has been set to lower "<<varcount.second.first<<" times and to upper "<<varcount.second.second<<" times. (total: "<<substitutionCount<<", "<<(computeLowerBounds?"MIN":"MAX")<<")"<<std::endl;
}
}
}
for(autoconst&fixVar:fixedVariables){
for(autoconst&fixVar:fixedVariables){
//std::cout << " APPROXMODEL: variable " << fixVar.first << " is always mapped to " << fixVar.second << std::endl;
//std::cout << " APPROXMODEL: variable " << fixVar.first << " is always mapped to " << fixVar.second << std::endl;
}
}
// std::cout << " Result is " << this->solverData.result[this->solverData.initialStateIndex] << std::endl;
// std::cout << " Result is " << this->solverData.result[this->solverData.initialStateIndex] << std::endl;