|
| | CouenneChooseStrong (Bonmin::BabSetupBase &b, CouenneProblem *problem, JnlstPtr jnlst) |
| | Constructor from solver (so we can set up arrays etc)
|
| |
| | CouenneChooseStrong (const CouenneChooseStrong &) |
| | Copy constructor.
|
| |
| CouenneChooseStrong & | operator= (const CouenneChooseStrong &rhs) |
| | Assignment operator.
|
| |
| virtual OsiChooseVariable * | clone () const |
| | Clone.
|
| |
| virtual | ~CouenneChooseStrong () |
| | Destructor.
|
| |
| virtual int | setupList (OsiBranchingInformation *info, bool initialize) |
| | Sets up strong list and clears all if initialize is true.
|
| |
| int | gutsOfSetupList (OsiBranchingInformation *info, bool initialize) |
| |
| virtual int | doStrongBranching (OsiSolverInterface *OsiSolver, OsiBranchingInformation *info, int numberToDo, int returnCriterion) |
| | This is a utility function which does strong branching on a list of objects and stores the results in OsiHotInfo.objects.
|
| |
| virtual bool | feasibleSolution (const OsiBranchingInformation *info, const double *solution, int numberObjects, const OsiObject **objects) |
| | Returns true if solution looks feasible against given objects.
|
| |
| virtual int | chooseVariable (OsiSolverInterface *solver, OsiBranchingInformation *info, bool fixVariables) |
| | choose object to branch based on earlier setup
|
| |
| | BonChooseVariable (BabSetupBase &b, const OsiSolverInterface *solver) |
| |
| | BonChooseVariable (const BonChooseVariable &) |
| |
| BonChooseVariable & | operator= (const BonChooseVariable &rhs) |
| |
| virtual OsiChooseVariable * | clone () const |
| |
| virtual | ~BonChooseVariable () |
| |
| double | maxminCrit (const OsiBranchingInformation *info) const |
| |
| void | computeMultipliers (double &upMult, double &downMult) const |
| |
| double | computeUsefulness (const double MAXMIN_CRITERION, const double upMult, const double dowMult, const double value, const OsiObject *object, int i, double &value2) const |
| |
| virtual int | setupList (OsiBranchingInformation *info, bool initialize) |
| |
| virtual int | chooseVariable (OsiSolverInterface *solver, OsiBranchingInformation *info, bool fixVariables) |
| |
| virtual void | updateInformation (const OsiBranchingInformation *info, int branch, OsiHotInfo *hotInfo) |
| |
| virtual void | updateInformation (int whichObject, int branch, double changeInObjective, double changeInValue, int status) |
| |
| void | setCbcModel (CbcModel *cbc_model) |
| |
| void | setOnlyPseudoWhenTrusted (bool only_pseudo_when_trusted) |
| |
| const OsiPseudoCosts & | pseudoCosts () const |
| |
| OsiPseudoCosts & | pseudoCosts () |
| |
| void | passInMessageHandler (CoinMessageHandler *handler) |
| |
| CoinMessageHandler & | message (Messages_Types type) const |
| |
| | OsiChooseVariable () |
| |
| | OsiChooseVariable (const OsiSolverInterface *solver) |
| |
| | OsiChooseVariable (const OsiChooseVariable &) |
| |
| OsiChooseVariable & | operator= (const OsiChooseVariable &rhs) |
| |
| virtual OsiChooseVariable * | clone () const |
| |
| virtual | ~OsiChooseVariable () |
| |
| virtual int | setupList (OsiBranchingInformation *info, bool initialize) |
| |
| virtual int | chooseVariable (OsiSolverInterface *solver, OsiBranchingInformation *info, bool fixVariables) |
| |
| virtual bool | feasibleSolution (const OsiBranchingInformation *info, const double *solution, int numberObjects, const OsiObject **objects) |
| |
| void | saveSolution (const OsiSolverInterface *solver) |
| |
| void | clearGoodSolution () |
| |
| virtual void | updateInformation (const OsiBranchingInformation *info, int branch, OsiHotInfo *hotInfo) |
| |
| virtual void | updateInformation (int whichObject, int branch, double changeInObjective, double changeInValue, int status) |
| |
| double | goodObjectiveValue () const |
| |
| double | upChange () const |
| |
| double | downChange () const |
| |
| const double * | goodSolution () const |
| |
| int | bestObjectIndex () const |
| |
| void | setBestObjectIndex (int value) |
| |
| int | bestWhichWay () const |
| |
| void | setBestWhichWay (int value) |
| |
| int | firstForcedObjectIndex () const |
| |
| void | setFirstForcedObjectIndex (int value) |
| |
| int | firstForcedWhichWay () const |
| |
| void | setFirstForcedWhichWay (int value) |
| |
| int | numberUnsatisfied () const |
| |
| int | numberStrong () const |
| |
| void | setNumberStrong (int value) |
| |
| int | numberOnList () const |
| |
| int | numberStrongDone () const |
| |
| int | numberStrongIterations () const |
| |
| int | numberStrongFixed () const |
| |
| const int * | candidates () const |
| |
| bool | trustStrongForBound () const |
| |
| void | setTrustStrongForBound (bool yesNo) |
| |
| bool | trustStrongForSolution () const |
| |
| void | setTrustStrongForSolution (bool yesNo) |
| |
| void | setSolver (const OsiSolverInterface *solver) |
| |
| int | status () const |
| |
| void | setStatus (int value) |
| |
Definition at line 23 of file CouenneChooseStrong.hpp.
| bool Couenne::CouenneChooseStrong::estimateProduct_ |
|
protected |
Normally, a convex combination of the min/max lower bounds' estimates is taken to select a branching variable, as in the original definition of strong branching.
If this option is set to true, their product is taken instead:
(1e-6+min) * max
where the 1e-6 is used to ensure that even those with one subproblem with no improvement are compared.
Definition at line 135 of file CouenneChooseStrong.hpp.