13 #ifndef CbcGenCtlBlk_H 14 #define CbcGenCtlBlk_H 20 #include "CoinParam.hpp" 21 #include "CoinMessageHandler.hpp" 23 #include "CglCutGenerator.hpp" 24 #include "CglProbing.hpp" 25 #include "CglClique.hpp" 26 #include "CglFlowCover.hpp" 27 #include "CglGomory.hpp" 28 #include "CglKnapsackCover.hpp" 29 #include "CglMixedIntegerRounding2.hpp" 30 #include "CglOddHole.hpp" 31 #include "CglRedSplit.hpp" 32 #include "CglTwomir.hpp" 53 #define CBC_GENERIC_VERSION "00.01.00" 98 typedef enum { IPPOff = 0,
171 typedef enum { BACInvalid = -1,
198 typedef enum { BACmInvalid = -1,
219 typedef enum { BACwInvalid = -1,
276 cutDepth_ = cutDepth;
283 return (preProcess_);
290 preProcess_ = action;
295 CGControl getProbing(CglCutGenerator *&gen);
301 probing_.action_ = action;
306 CGControl getClique(CglCutGenerator *&gen);
312 clique_.action_ = action;
317 CGControl getFlow(CglCutGenerator *&gen);
323 flow_.action_ = action;
328 CGControl getGomory(CglCutGenerator *&gen);
334 gomory_.action_ = action;
339 CGControl getKnapsack(CglCutGenerator *&gen);
345 knapsack_.action_ = action;
362 CGControl getMir(CglCutGenerator *&gen);
368 mir_.action_ = action;
373 CGControl getRedSplit(CglCutGenerator *&gen);
379 redSplit_.action_ = action;
384 CGControl getTwomir(CglCutGenerator *&gen);
390 twomir_.action_ = action;
401 bool alwaysCreate =
true);
407 fpump_.action_ = action;
418 bool alwaysCreate =
true);
424 combine_.action_ = action;
435 bool alwaysCreate =
true);
441 greedyCover_.action_ = action;
452 bool alwaysCreate =
true);
458 greedyEquality_.action_ = action;
469 bool alwaysCreate =
true);
475 rounding_.action_ = action;
486 bool alwaysCreate =
true);
492 localTree_.action_ = action;
505 BACWhere where,
bool haveAnswer,
506 OsiSolverInterface *answerSolver)
508 bab_.majorStatus_ = majorStatus;
509 bab_.minorStatus_ = minorStatus;
511 bab_.haveAnswer_ = haveAnswer;
512 bab_.answerSolver_ = answerSolver;
520 void setBaBStatus(
const CbcModel *model, BACWhere where,
521 bool haveAnswer =
false,
522 OsiSolverInterface *answerSolver = 0);
528 BACMajor translateMajor(
int status);
534 BACMinor translateMinor(
int status);
541 BACMinor translateMinor(
const OsiSolverInterface *osi);
545 void printBaBStatus();
563 void passInMessageHandler(CoinMessageHandler *handler);
583 void setMessages(CoinMessages::Language lang = CoinMessages::us_en);
590 msgHandler_->setLogLevel(lvl);
830 IPPControl preProcess_;
841 struct probingCtl_struct {
844 bool usingObjective_;
856 struct cliqueCtl_struct {
859 bool starCliqueReport_;
860 bool rowCliqueReport_;
861 double minViolation_;
865 struct flowCtl_struct {
867 CglFlowCover *proto_;
871 struct gomoryCtl_struct {
886 struct knapsackCtl_struct {
888 CglKnapsackCover *proto_;
892 struct mirCtl_struct {
894 CglMixedIntegerRounding2 *proto_;
898 struct oddHoleCtl_struct {
906 struct redSplitCtl_struct {
912 struct twomirCtl_struct {
919 struct fpumpCtl_struct {
926 struct combineCtl_struct {
933 struct greedyCoverCtl_struct {
939 struct greedyEqualityCtl_struct {
945 struct roundingCtl_struct {
956 struct localTreeCtl_struct {
977 CoinMessageHandler *msgHandler_;
988 CoinMessages::Language cur_lang_;
void setProbingAction(CGControl action)
Set action state for use of probing cut generator.
Start and end of CbcModel parameters in parameter vector.
void setGomoryAction(CGControl action)
Set action state for use of Gomory cut generator.
std::string lastSolnOut_
Last solution output file.
IPPControl getIPPAction()
int printMode_
Solution printing mode.
CGControl
Codes to control the use of cut generators and heuristics.
std::string debugCreate_
Control debug file creation.
BACWhere
Codes to specify where branch-and-cut stopped.
void setCombineAction(CGControl action)
Set action state for use of local search/combine heuristic.
void setRedSplitAction(CGControl action)
Set action state for use of reduce and split cut generator.
void setFPumpAction(CGControl action)
Set action state for use of feasibility pump heuristic.
void setRoundingAction(CGControl action)
Set action state for use of simple rounding heuristic.
Array of primal variable values for debugging.
bool goodModel_
True if we have a valid model loaded, false otherwise.
void setGreedyCoverAction(CGControl action)
Set action state for use of greedy cover heuristic.
Control variables for a strong branching method.
void setCliqueAction(CGControl action)
Set action state for use of clique cut generator.
Start and end of cbc-generic parameters in parameter vector.
double totalTime_
Total elapsed time for this run.
CoinMessageHandler * messageHandler() const
Return a pointer to the message handler.
CbcModel * model_
The reference CbcModel object.
void setKnapsackAction(CGControl action)
Set action state for use of knapsack cut generator.
std::string dfltDirectory_
Default directory prefix.
BACMajor
Major status codes for branch-and-cut.
void setFlowAction(CGControl action)
Set action state for use of flow cover cut generator.
std::vector< bool > setByUser_
Record of parameters changed by user command.
int printOpt_
When greater than 0, integer presolve gives more information and branch-and-cut provides statistics...
int verbose_
Verbosity level for help messages.
CbcGenMsgCode
Symbolic names for cbc-generic messages.
BPControl
Codes to specify the assignment of branching priorities.
void setLogLevel(int lvl)
Set log level.
Start and end of OsiSolverInterface parameters in parameter vector.
std::string printMask_
Print mask.
std::string version_
cbc-generic version
void setCutDepth(int cutDepth)
Set cut depth setting.
void setMirAction(CGControl action)
Set action state for use of MIR cut generator.
bool allowImportErrors_
Allow/disallow errors when importing a model.
CoinParamVec * paramVec_
The parameter vector.
This file contains the enum that defines symbolic names for for cbc-generic messages.
void setIPPAction(IPPControl action)
Set action state for use of integer preprocessing.
IPPControl
Codes to control integer preprocessing.
int getCutDepth()
Get cut depth setting.
BPControl priorityAction_
Control the assignment of branching priorities to integer variables.
void addCbcGenParams(int &numParams, CoinParamVec ¶mVec, CbcGenCtlBlk *ctlBlk)
void setTwomirAction(CGControl action)
Set action state for use of 2-MIR cut generator.
std::string lastMpsIn_
Last MPS input file.
void setTreeLocalAction(CGControl action)
Set action state for use of local tree.
BACMinor
Minor status codes.
OsiSolverInterface * answerSolver_
bool defaultSettings_
False if the user has made nontrivial modifications to the default control settings.
int logLevel() const
Get log level.
OsiSolverInterface * dfltSolver_
The current default LP solver.
void setGreedyEqualityAction(CGControl action)
Set action state for use of greedy equality heuristic.
Greedy heuristic classes.
Simple Branch and bound class.
Control use of reduced cost fixing prior to B&C.
int paramsProcessed_
Number of parameters processed.
void setBaBStatus(BACMajor majorStatus, BACMinor minorStatus, BACWhere where, bool haveAnswer, OsiSolverInterface *answerSolver)
Set the result of branch-and-cut search.
std::string debugFile_
Last debug input file.