Skip to content

Commit b663671

Browse files
committed
Some fixes to parameter setting mechanism for cuts
1 parent 9f0e4c9 commit b663671

6 files changed

+26
-13
lines changed

src/MibSBilevel.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ MibSBilevel::createBilevel(CoinPackedVector* sol,
7171
bool solveSecondLevelWhenLVarsFixed(model_->MibSPar_->entry
7272
(MibSParams::solveSecondLevelWhenLVarsFixed) == PARAM_ON);
7373
int cutStrategy(model_->MibSPar_->entry
74-
(MibSParams::cutStrategy));
74+
(MibSParams::miblpCutStrategy));
7575

7676
MibSSolType storeSol(MibSNoSol);
7777

src/MibSConstants.hpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,8 @@ enum MibSSolType{
4848

4949
enum MibSMILPCutStrategy{
5050
MibSMILPCutStrategyNotSet = -2,
51-
MibSMILPCutStrategyOn, //blisCutStrategyNotSet
52-
MibSMILPCutStrategyOff, //blisCutStrategyNone
51+
MibSMILPCutStrategyDefault, //blisCutStrategyNotSet
52+
MibSMILPCutStrategyNone, //blisCutStrategyNone
5353
MibSMILPCutStrategyRoot, //blisCutStrategyRoot
5454
MibSMILPCutStrategyAuto, //blisCutStrategyAuto
5555
MibSMILPCutStrategyPeriodic //blisCutStrategyPeriodic

src/MibSCutGenerator.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -5827,7 +5827,7 @@ MibSCutGenerator::generateConstraints(BcpsConstraintPool &conPool)
58275827
int numCuts(0);
58285828

58295829
int cutStrategy =
5830-
localModel_->MibSPar_->entry(MibSParams::cutStrategy);
5830+
localModel_->MibSPar_->entry(MibSParams::miblpCutStrategy);
58315831

58325832
int useLinkingSolutionPool(localModel_->MibSPar_->entry
58335833
(MibSParams::useLinkingSolutionPool));

src/MibSModel.cpp

+18-5
Original file line numberDiff line numberDiff line change
@@ -2054,7 +2054,7 @@ MibSModel::setupSelf()
20542054
// Add cut generators.
20552055
//------------------------------------------------------
20562056

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

20592059
MibSCutGenerator *cg = new MibSCutGenerator(this);
20602060

@@ -3832,15 +3832,20 @@ MibSModel::adjustParameters()
38323832

38333833
if (MibSPar()->entry(MibSParams::milpCutStrategy) == MibSMILPCutStrategyNotSet){
38343834
if (isInterdict_){
3835-
MibSPar()->setEntry(MibSParams::milpCutStrategy, MibSMILPCutStrategyOff);
3835+
MibSPar()->setEntry(MibSParams::milpCutStrategy, MibSMILPCutStrategyNone);
38363836
BlisPar()->setEntry(BlisParams::cutStrategy, BlisCutStrategyNone);
38373837
}else{
3838-
MibSPar()->setEntry(MibSParams::milpCutStrategy, MibSMILPCutStrategyOn);
3838+
std::cout << "Generic MILP cuts will be generated.";
3839+
std::cout << std::endl;
3840+
MibSPar()->setEntry(MibSParams::milpCutStrategy, MibSMILPCutStrategyDefault);
38393841
BlisPar()->setEntry(BlisParams::cutStrategy, BlisCutStrategyNotSet);
38403842
}
3843+
}else{
3844+
BlisPar()->setEntry(BlisParams::cutStrategy,
3845+
MibSPar_->entry(MibSParams::milpCutStrategy));
38413846
}
3842-
3843-
if (MibSPar_->entry(MibSParams::cutStrategy) == BRANCHONLY){
3847+
3848+
if (MibSPar_->entry(MibSParams::miblpCutStrategy) == BRANCHONLY){
38443849
turnOffDefaultCuts = true;
38453850
}
38463851

@@ -4188,6 +4193,14 @@ MibSModel::printProblemInfo(){
41884193
<< std::endl;
41894194
}
41904195

4196+
if (MibSPar_->entry(MibSParams::milpCutStrategy) == MibSMILPCutStrategyNone){
4197+
std::cout << "Generic MILP cuts will not be generated.";
4198+
std::cout << std::endl;
4199+
}else{
4200+
std::cout << "Generic MILP cuts will be generated.";
4201+
std::cout << std::endl;
4202+
}
4203+
41914204
if(MibSPar_->entry(MibSParams::useBendersBinaryCut) == PARAM_ON){
41924205
std::cout << "Benders binary cut generator is on.";
41934206
std::cout << std::endl;

src/MibSParams.cpp

+3-3
Original file line numberDiff line numberDiff line change
@@ -100,8 +100,8 @@ MibSParams::createKeywordList() {
100100
keys_.push_back(make_pair(std::string("MibS_bilevelCutTypes"),
101101
AlpsParameter(AlpsIntPar, bilevelCutTypes)));
102102

103-
keys_.push_back(make_pair(std::string("MibS_cutStrategy"),
104-
AlpsParameter(AlpsIntPar, cutStrategy)));
103+
keys_.push_back(make_pair(std::string("MibS_miblpCutStrategy"),
104+
AlpsParameter(AlpsIntPar, miblpCutStrategy)));
105105

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

346346
setEntry(bilevelCutTypes, GENERALONLY);
347347

348-
setEntry(cutStrategy, BRANCHANDCUT);
348+
setEntry(miblpCutStrategy, BRANCHANDCUT);
349349

350350
setEntry(objBoundStrategy, LPBOUND);
351351

src/MibSParams.hpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ class MibSParams : public AlpsParameterSet {
5151
maxNumActiveCons,
5252
bilevelProblemType,
5353
bilevelCutTypes,
54-
cutStrategy,
54+
miblpCutStrategy,
5555
objBoundStrategy,
5656
milpCutStrategy,
5757
blisBranchStrategy,

0 commit comments

Comments
 (0)