本文整理汇总了C++中OsiClpSolverInterface::setWarmStart方法的典型用法代码示例。如果您正苦于以下问题:C++ OsiClpSolverInterface::setWarmStart方法的具体用法?C++ OsiClpSolverInterface::setWarmStart怎么用?C++ OsiClpSolverInterface::setWarmStart使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类OsiClpSolverInterface
的用法示例。
在下文中一共展示了OsiClpSolverInterface::setWarmStart方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: assert
double
CbcGeneralBranchingObject::branch()
{
double cutoff = model_->getCutoff();
//printf("GenB %x whichNode %d numberLeft %d which %d\n",
// this,whichNode_,numberBranchesLeft(),branchIndex());
if (whichNode_ < 0) {
assert (node_);
bool applied = false;
while (numberBranchesLeft()) {
int which = branchIndex();
decrementNumberBranchesLeft();
CbcSubProblem * thisProb = subProblems_ + which;
if (thisProb->objectiveValue_ < cutoff) {
//printf("branch %x (sub %x) which now %d\n",this,
// subProblems_,which);
OsiSolverInterface * solver = model_->solver();
thisProb->apply(solver);
OsiClpSolverInterface * clpSolver
= dynamic_cast<OsiClpSolverInterface *> (solver);
assert (clpSolver);
// Move status to basis
clpSolver->setWarmStart(NULL);
//ClpSimplex * simplex = clpSolver->getModelPtr();
node_->setObjectiveValue(thisProb->objectiveValue_);
node_->setSumInfeasibilities(thisProb->sumInfeasibilities_);
node_->setNumberUnsatisfied(thisProb->numberInfeasibilities_);
applied = true;
doingDoneBranch = true;
break;
} else if (numberBranchesLeft()) {
node_->nodeInfo()->branchedOn() ;
}
}
if (!applied) {
// no good one
node_->setObjectiveValue(cutoff + 1.0e20);
node_->setSumInfeasibilities(1.0);
node_->setNumberUnsatisfied(1);
assert (whichNode_ < 0);
}
} else {
decrementNumberBranchesLeft();
CbcSubProblem * thisProb = subProblems_ + whichNode_;
assert (thisProb->objectiveValue_ < cutoff);
OsiSolverInterface * solver = model_->solver();
thisProb->apply(solver);
//OsiClpSolverInterface * clpSolver
//= dynamic_cast<OsiClpSolverInterface *> (solver);
//assert (clpSolver);
// Move status to basis
//clpSolver->setWarmStart(NULL);
}
return 0.0;
}