15 #include "CoinPragma.hpp"
16 #include "OsiSolverInterface.hpp"
17 #include "CoinWarmStartBasis.hpp"
18 #include "CbcModel.hpp"
30 BonCbcFullNodeInfo::BonCbcFullNodeInfo()
33 sequenceOfInfeasiblesSize_(0),
34 sequenceOfUnsolvedSize_(0)
38 int numberRowsAtContinuous) :
39 CbcFullNodeInfo(model, numberRowsAtContinuous),
40 sequenceOfInfeasiblesSize_(0),
41 sequenceOfUnsolvedSize_(0)
46 CbcFullNodeInfo(other),
47 sequenceOfInfeasiblesSize_(other.sequenceOfInfeasiblesSize_),
48 sequenceOfUnsolvedSize_(other.sequenceOfUnsolvedSize_)
76 roptions->AddLowerBoundedIntegerOption(
"max_consecutive_infeasible",
77 "Number of consecutive infeasible subproblems before aborting a"
80 "Will continue exploring a branch of the tree until \"max_consecutive_infeasible\""
81 "consecutive problems are locally infeasible by the NLP sub-solver.");
82 roptions->setOptionExtraInfo(
"max_consecutive_infeasible",8);
85 roptions->AddLowerBoundedIntegerOption
86 (
"max_consecutive_failures",
87 "(temporarily removed) Number $n$ of consecutive unsolved problems before aborting a branch of the tree.",
89 "When $n > 0$, continue exploring a branch of the tree until $n$ "
90 "consecutive problems in the branch are unsolved (we call unsolved a problem for which Ipopt can not "
91 "guarantee optimality within the specified tolerances).");
92 roptions->setOptionExtraInfo(
"max_consecutive_failures",8);
101 : CbcPartialNodeInfo(),
102 sequenceOfInfeasiblesSize_(0),
103 sequenceOfUnsolvedSize_(0)
107 int numberChangedBounds,
108 const int *variables,
109 const double *boundChanges,
110 const CoinWarmStartDiff *basisDiff)
111 : CbcPartialNodeInfo(parent,owner,numberChangedBounds,variables,
112 boundChanges,basisDiff),
113 sequenceOfInfeasiblesSize_(0),
114 sequenceOfUnsolvedSize_(0)
117 int numberInfeasible = 0;
118 int numberUnsolved = 0;
135 if (model->solver()->isAbandoned() ||
136 model->solver()->isIterationLimitReached())
139 if (model->solver()->isProvenPrimalInfeasible())
145 : CbcPartialNodeInfo(rhs),
146 sequenceOfInfeasiblesSize_(rhs.sequenceOfInfeasiblesSize_),
147 sequenceOfUnsolvedSize_(rhs.sequenceOfUnsolvedSize_)
int getSequenceOfUnsolvedSize()
Number of consecutive unsolved parents only recorded if node is infeasible.
static void registerOptions(Ipopt::SmartPtr< Bonmin::RegisteredOptions > roptions)
Register all the options for class instance.
int sequenceOfInfeasiblesSize_
Number of consecutive infeasible parents only recorded if node is infeasible.
Class for storing warm start informations for Ipopt.
Holds information for recreating a subproblem by incremental change from the parent for...
int getSequenceOfInfeasiblesSize()
Number of consecutive infeasible parents only recorded if node is infeasible.
virtual void allBranchesGone()
Method called when all direct sons have been explored to flush useless warm start information...
int sequenceOfUnsolvedSize_
Number of consecutive unsolved parents only recorded if node is infeasible.
int getSequenceOfInfeasiblesSize()
Number of consecutive infeasible parents only recorded if node is infeasible.
virtual void allBranchesGone()
Method called when all direct sons have been explored to flush useless warm start information...
int getSequenceOfUnsolvedSize()
Number of consecutive unsolved parents only recorded if node is infeasible.
Diff class for IpoptWarmStart.
virtual CbcNodeInfo * clone() const
Clone.
Holds information for recreating a subproblem by incremental change from the parent for Bonmin...
virtual CbcNodeInfo * clone() const
Clone.
void flushPoint()
flush the starting point