Go to the documentation of this file.
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"
401 bool alwaysCreate =
true);
418 bool alwaysCreate =
true);
435 bool alwaysCreate =
true);
452 bool alwaysCreate =
true);
469 bool alwaysCreate =
true);
486 bool alwaysCreate =
true);
506 OsiSolverInterface *answerSolver)
521 bool haveAnswer =
false,
522 OsiSolverInterface *answerSolver = 0);
583 void setMessages(CoinMessages::Language lang = CoinMessages::us_en);
struct CbcGenCtlBlk::greedyCoverCtl_struct greedyCover_
Start and end of OsiSolverInterface parameters in parameter vector.
Control variable and prototype for Two-MIR cut generator.
IPPControl getIPPAction()
struct CbcGenCtlBlk::djFixCtl_struct djFix_
void setCombineAction(CGControl action)
Set action state for use of local search/combine heuristic.
Control variables for local tree.
struct CbcGenCtlBlk::babState_struct bab_
void setGreedyEqualityAction(CGControl action)
Set action state for use of greedy equality heuristic.
Array of primal variable values for debugging.
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.
CGControl getTwomir(CglCutGenerator *&gen)
Obtain a prototype for a 2-MIR cut generator.
CglKnapsackCover * proto_
CGControl getKnapsack(CglCutGenerator *&gen)
Obtain a prototype for a knapsack cover cut generator.
CGControl getFPump(CbcHeuristic *&gen, CbcModel *model, bool alwaysCreate=true)
Obtain a feasibility pump heuristic.
void passInMessageHandler(CoinMessageHandler *handler)
Supply a new message handler.
CoinMessages::Language cur_lang_
The current language.
struct CbcGenCtlBlk::flowCtl_struct flow_
void setBaBStatus(BACMajor majorStatus, BACMinor minorStatus, BACWhere where, bool haveAnswer, OsiSolverInterface *answerSolver)
Set the result of branch-and-cut search.
bool goodModel_
True if we have a valid model loaded, false otherwise.
std::string debugFile_
Last debug input file.
struct CbcGenCtlBlk::combineCtl_struct combine_
Control variable and prototype for odd hole cut generator.
OsiSolverInterface * answerSolver_
CGControl getTreeLocal(CbcTreeLocal *&localTree, CbcModel *model, bool alwaysCreate=true)
Obtain a local search tree object.
struct CbcGenCtlBlk::genParamsInfo_struct genParams_
struct CbcGenCtlBlk::localTreeCtl_struct localTree_
struct CbcGenCtlBlk::cbcParamsInfo_struct cbcParams_
struct CbcGenCtlBlk::chooseStrongCtl_struct chooseStrong_
Start and end of CbcModel parameters in parameter vector.
double totalTime_
Total elapsed time for this run.
Control variable and prototype for greedy equality heuristic.
CoinMessageHandler * messageHandler() const
Return a pointer to the message handler.
void setCliqueAction(CGControl action)
Set action state for use of clique cut generator.
Control variable and prototype for flow cover cut generator.
CbcHeuristicFPump * proto_
CGControl getMir(CglCutGenerator *&gen)
Obtain a prototype for a mixed integer rounding (MIR) cut generator.
void setGomoryAction(CGControl action)
Set action state for use of Gomory cut generator.
Control use of reduced cost fixing prior to B&C.
CbcModel * model_
The reference CbcModel object.
struct CbcGenCtlBlk::gomoryCtl_struct gomory_
std::vector< bool > setByUser_
Record of parameters changed by user command.
Control variables for a strong branching method.
Start and end of cbc-generic parameters in parameter vector.
int printMode_
Solution printing mode.
IPPControl preProcess_
Control integer preprocessing.
struct CbcGenCtlBlk::osiParamsInfo_struct osiParams_
BPControl
Codes to specify the assignment of branching priorities.
CGControl getProbing(CglCutGenerator *&gen)
Obtain a prototype for a probing cut generator.
void setFlowAction(CGControl action)
Set action state for use of flow cover cut generator.
CoinMessages * msgs_
The current set of messages.
int printOpt_
When greater than 0, integer presolve gives more information and branch-and-cut provides statistics.
int verbose_
Verbosity level for help messages.
CGControl
Codes to control the use of cut generators and heuristics.
struct CbcGenCtlBlk::redSplitCtl_struct redSplit_
CoinMessageHandler * msgHandler_
Message handler.
CoinMessageHandler & message(CbcGenMsgCode inID)
Print a message.
std::string debugCreate_
Control debug file creation.
BACWhere
Codes to specify where branch-and-cut stopped.
void setRoundingAction(CGControl action)
Set action state for use of simple rounding heuristic.
std::string version_
cbc-generic version
Simple Branch and bound class.
void setCutDepth(int cutDepth)
Set cut depth setting.
struct CbcGenCtlBlk::greedyEqualityCtl_struct greedyEquality_
struct CbcGenCtlBlk::cliqueCtl_struct clique_
CbcGenCtlBlk()
Default constructor.
struct CbcGenCtlBlk::roundingCtl_struct rounding_
void setGreedyCoverAction(CGControl action)
Set action state for use of greedy cover heuristic.
CGControl getGreedyEquality(CbcHeuristic *&gen, CbcModel *model, bool alwaysCreate=true)
Obtain a greedy equality heuristic.
BPControl priorityAction_
Control the assignment of branching priorities to integer variables.
Control variable and prototype for simple rounding heuristic.
Control variable and prototype for probing cut generator.
Control variable and prototype for reduce-and-split cut generator.
Control variable and prototype for combine heuristic.
Control variable and prototype for Gomory cut generator.
struct CbcGenCtlBlk::knapsackCtl_struct knapsack_
std::string dfltDirectory_
Default directory prefix.
CGControl getClique(CglCutGenerator *&gen)
Obtain a prototype for a clique cut generator.
CGControl getGomory(CglCutGenerator *&gen)
Obtain a prototype for a Gomory cut generator.
struct CbcGenCtlBlk::oddHoleCtl_struct oddHole_
OsiSolverInterface * dfltSolver_
The current default LP solver.
int cutDepth_
Control cut generator activity.
CGControl getCombine(CbcHeuristic *&gen, CbcModel *model, bool alwaysCreate=true)
Obtain a local search/combine heuristic.
void setKnapsackAction(CGControl action)
Set action state for use of knapsack cut generator.
BACMajor
Major status codes for branch-and-cut.
int logLevel() const
Get log level.
void setLogLevel(int lvl)
Set log level.
struct CbcGenCtlBlk::twomirCtl_struct twomir_
void printBaBStatus()
Print the status block.
Control variable and prototype for clique cut generator.
struct CbcGenCtlBlk::probingCtl_struct probing_
int paramsProcessed_
Number of parameters processed.
CglMixedIntegerRounding2 * proto_
Greedy heuristic classes.
std::string printMask_
Print mask.
Control variable and prototype for feasibility pump heuristic.
struct CbcGenCtlBlk::debugSolInfo_struct debugSol_
CGControl getFlow(CglCutGenerator *&gen)
Obtain a prototype for a flow cover cut generator.
Control variable and prototype for knapsack cover cut generator.
CbcHeuristicGreedyEquality * proto_
void setMirAction(CGControl action)
Set action state for use of MIR cut generator.
void setProbingAction(CGControl action)
Set action state for use of probing cut generator.
BACMajor translateMajor(int status)
Translate CbcModel major status to BACMajor.
Control variable and prototype for MIR cut generator.
void setIPPAction(IPPControl action)
Set action state for use of integer preprocessing.
int logLvl_
The current log level.
Control variable and prototype for greedy cover heuristic.
void addCbcGenParams(int &numParams, CoinParamVec ¶mVec, CbcGenCtlBlk *ctlBlk)
CGControl getRedSplit(CglCutGenerator *&gen)
Obtain a prototype for a reduce and split cut generator.
bool allowImportErrors_
Allow/disallow errors when importing a model.
CGControl getRounding(CbcHeuristic *&gen, CbcModel *model, bool alwaysCreate=true)
Obtain a simple rounding heuristic.
void setMessages(CoinMessages::Language lang=CoinMessages::us_en)
Set up messages in the specified language.
CoinParamVec * paramVec_
The parameter vector.
BACMinor translateMinor(int status)
Translate CbcModel minor status to BACMinor.
IPPControl
Codes to control integer preprocessing.
int getCutDepth()
Get cut depth setting.
CGControl getGreedyCover(CbcHeuristic *&gen, CbcModel *model, bool alwaysCreate=true)
Obtain a greedy cover heuristic.
void setTwomirAction(CGControl action)
Set action state for use of 2-MIR cut generator.
CbcHeuristicLocal * proto_
void setTreeLocalAction(CGControl action)
Set action state for use of local tree.
struct CbcGenCtlBlk::mirCtl_struct mir_
bool ourMsgHandler_
Ownership of message handler.
BACMinor
Minor status codes.
std::string lastSolnOut_
Last solution output file.
std::string lastMpsIn_
Last MPS input file.
CbcHeuristicGreedyCover * proto_
struct CbcGenCtlBlk::fpumpCtl_struct fpump_
bool defaultSettings_
False if the user has made nontrivial modifications to the default control settings.
~CbcGenCtlBlk()
Destructor.
CbcGenMsgCode
Symbolic names for cbc-generic messages.