[Scip] Branching on continuous variables in the quadratic constraint

Timo Berthold berthold at zib.de
Tue Apr 8 00:25:47 CEST 2014


Hi Wen-Yang,

> Is there a general guideline on the
> advantage (other than finding feasible solutions) using IPOPT?

There are three points in SCIP where Ipopt is used:
- to determine whether quadratic constraints are convex by checking the
signs of their eigenvalues
- for the local search heuristic subNLP
- for the NLP diving heuristic

If none of this is beneficial for you, there is no further added value.

> My question is that, is it still
> algorithmic correct if I set the branching priority of these
> continuous variables (W_j) higher, in order to make SCIP branch on
> them before branching on the integer variables?

I think that this will not have the intended effect; as long as SCIP has a
fractional LP solution, it will keep branching on it.

For SCIP nerds ;-): In SCIPbranchExecLP, branch.c, it is checked whether
there are pseudo candidates of a higher priority than the highest LP
candidate; however, there is no such check for the external candidates. It
is debatable whether this is a bug or a feature. So or so, it seems to
hinder what Wen-Yang tries to implement.

@Wen-Yang, without any warranty (It did not check it myself):
Adding
   if( branchcand->externmaxpriority > branchcand->lpmaxpriority )
   {
      SCIP_CALL( SCIPbranchExecExtern(blkmem, set, stat, prob, tree, lp,
branchcand, eventqueue, cutoffbound, allowaddcons, result) );
      if( *result != SCIP_DIDNOTRUN )
         return SCIP_OKAY;
   }
after the corresponding code block for pseudocands in  SCIPbranchExecLP()
might give what you are asking for.

Best regards,
Timo



More information about the Scip mailing list