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