Skip to content

Commit

Permalink
Some fixes to parameter setting mechanism for cuts
Browse files Browse the repository at this point in the history
  • Loading branch information
tkralphs committed Jan 10, 2025
1 parent 9f0e4c9 commit b663671
Show file tree
Hide file tree
Showing 6 changed files with 26 additions and 13 deletions.
2 changes: 1 addition & 1 deletion src/MibSBilevel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ MibSBilevel::createBilevel(CoinPackedVector* sol,
bool solveSecondLevelWhenLVarsFixed(model_->MibSPar_->entry
(MibSParams::solveSecondLevelWhenLVarsFixed) == PARAM_ON);
int cutStrategy(model_->MibSPar_->entry
(MibSParams::cutStrategy));
(MibSParams::miblpCutStrategy));

MibSSolType storeSol(MibSNoSol);

Expand Down
4 changes: 2 additions & 2 deletions src/MibSConstants.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,8 @@ enum MibSSolType{

enum MibSMILPCutStrategy{
MibSMILPCutStrategyNotSet = -2,
MibSMILPCutStrategyOn, //blisCutStrategyNotSet
MibSMILPCutStrategyOff, //blisCutStrategyNone
MibSMILPCutStrategyDefault, //blisCutStrategyNotSet
MibSMILPCutStrategyNone, //blisCutStrategyNone
MibSMILPCutStrategyRoot, //blisCutStrategyRoot
MibSMILPCutStrategyAuto, //blisCutStrategyAuto
MibSMILPCutStrategyPeriodic //blisCutStrategyPeriodic
Expand Down
2 changes: 1 addition & 1 deletion src/MibSCutGenerator.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5827,7 +5827,7 @@ MibSCutGenerator::generateConstraints(BcpsConstraintPool &conPool)
int numCuts(0);

int cutStrategy =
localModel_->MibSPar_->entry(MibSParams::cutStrategy);
localModel_->MibSPar_->entry(MibSParams::miblpCutStrategy);

int useLinkingSolutionPool(localModel_->MibSPar_->entry
(MibSParams::useLinkingSolutionPool));
Expand Down
23 changes: 18 additions & 5 deletions src/MibSModel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2054,7 +2054,7 @@ MibSModel::setupSelf()
// Add cut generators.
//------------------------------------------------------

if (MibSPar_->entry(MibSParams::cutStrategy) != BRANCHONLY){
if (MibSPar_->entry(MibSParams::miblpCutStrategy) != BRANCHONLY){

MibSCutGenerator *cg = new MibSCutGenerator(this);

Expand Down Expand Up @@ -3832,15 +3832,20 @@ MibSModel::adjustParameters()

if (MibSPar()->entry(MibSParams::milpCutStrategy) == MibSMILPCutStrategyNotSet){
if (isInterdict_){
MibSPar()->setEntry(MibSParams::milpCutStrategy, MibSMILPCutStrategyOff);
MibSPar()->setEntry(MibSParams::milpCutStrategy, MibSMILPCutStrategyNone);
BlisPar()->setEntry(BlisParams::cutStrategy, BlisCutStrategyNone);
}else{
MibSPar()->setEntry(MibSParams::milpCutStrategy, MibSMILPCutStrategyOn);
std::cout << "Generic MILP cuts will be generated.";
std::cout << std::endl;
MibSPar()->setEntry(MibSParams::milpCutStrategy, MibSMILPCutStrategyDefault);
BlisPar()->setEntry(BlisParams::cutStrategy, BlisCutStrategyNotSet);
}
}else{
BlisPar()->setEntry(BlisParams::cutStrategy,
MibSPar_->entry(MibSParams::milpCutStrategy));
}
if (MibSPar_->entry(MibSParams::cutStrategy) == BRANCHONLY){

if (MibSPar_->entry(MibSParams::miblpCutStrategy) == BRANCHONLY){
turnOffDefaultCuts = true;
}

Expand Down Expand Up @@ -4188,6 +4193,14 @@ MibSModel::printProblemInfo(){
<< std::endl;
}

if (MibSPar_->entry(MibSParams::milpCutStrategy) == MibSMILPCutStrategyNone){
std::cout << "Generic MILP cuts will not be generated.";
std::cout << std::endl;
}else{
std::cout << "Generic MILP cuts will be generated.";
std::cout << std::endl;
}

if(MibSPar_->entry(MibSParams::useBendersBinaryCut) == PARAM_ON){
std::cout << "Benders binary cut generator is on.";
std::cout << std::endl;
Expand Down
6 changes: 3 additions & 3 deletions src/MibSParams.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -100,8 +100,8 @@ MibSParams::createKeywordList() {
keys_.push_back(make_pair(std::string("MibS_bilevelCutTypes"),
AlpsParameter(AlpsIntPar, bilevelCutTypes)));

keys_.push_back(make_pair(std::string("MibS_cutStrategy"),
AlpsParameter(AlpsIntPar, cutStrategy)));
keys_.push_back(make_pair(std::string("MibS_miblpCutStrategy"),
AlpsParameter(AlpsIntPar, miblpCutStrategy)));

keys_.push_back(make_pair(std::string("MibS_objBoundStrategy"),
AlpsParameter(AlpsIntPar, objBoundStrategy)));
Expand Down Expand Up @@ -345,7 +345,7 @@ MibSParams::setDefaultEntries() {

setEntry(bilevelCutTypes, GENERALONLY);

setEntry(cutStrategy, BRANCHANDCUT);
setEntry(miblpCutStrategy, BRANCHANDCUT);

setEntry(objBoundStrategy, LPBOUND);

Expand Down
2 changes: 1 addition & 1 deletion src/MibSParams.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ class MibSParams : public AlpsParameterSet {
maxNumActiveCons,
bilevelProblemType,
bilevelCutTypes,
cutStrategy,
miblpCutStrategy,
objBoundStrategy,
milpCutStrategy,
blisBranchStrategy,
Expand Down

0 comments on commit b663671

Please sign in to comment.