[Couenne] balanced branching strategy in couenne
Pietro Belotti
belotti at lehigh.edu
Sat Feb 20 12:14:24 EST 2010
Hi Pete,
all powers x^k with k odd (or with odd inverse, such as x^(1/3)),
having inflection points, are treated depending on the lower and upper
bounds on x. See Couenne/src/branching/operators/branchExprPow.cpp,
lines 229-285 (and 290-345 for the odd inverse case). In the balanced
case, the procedure computing the branching point is at
Couenne/src/branching/operators/minMaxDelta.cpp, line 48.
With inflection points, the distances should be computed correctly in
the general case, but you are right in that there might be particular
cases where this doesn't work: it may either not compute a really
balanced branching rule or trigger an exception when computing the
square root of a negative number (this would happen at
Couenne/src/branching/operators/minMaxDelta.cpp line 37).
The default branching strategy though (mid-point) is also good, and in
fact we didn't notice significant differences in performance between
the two, so I'd suggest you try that.
Thanks very much for pointing this out. I'll submit a ticket so that
it gets in the pipeline and hopefully solved soon.
Cheers,
Pietro
_________________________________________
Pietro Belotti, Lehigh University
Dept. of Industrial and Systems Engineering
200 W Packer Ave, Bethlehem PA 18015.
phone: 610-758-3865 fax: 610-758-4886
email: belotti at lehigh.edu
web: http://www.lehigh.edu/~pib208
On 02/20/2010, Pete Janes <ppjanes at gmail.com> wrote:
> Hi Pietro,
>
> I am looking at the procedure for the balanced branching strategy in Couenne.
> I undertand that it computes the branching point which minimizes the
> differences
> in the distance between LP1 and the primal function, and LP2 and the
> primal function.
> Where LP1 and LP2 are the two LP's to be generated by the
> hypothetical branch.
>
> Looking at the code, it appears that this procedure assumes that the
> primal function
> is uniformly convex or concave - as the LP are taken to be the line
> segment from
> the two end points of the primal function. However, in Couenne,
> functions such as
> x^3 also uses the balanced branching strategy, and it has an
> inflection point.
>
> Can this be problematic in some isolated cases? (I am currently
> implementing a relaxation
> for a univariate function that has one saddle point) Should I use a
> simpler strategy just in
> case?
>
> Kind regards,
>
> Pete
>
----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.
More information about the Couenne
mailing list