[Bonmin] Issues when dealing with linear constraints involving integer variables

Jonathan Currie jonathan.currie at aut.ac.nz
Thu May 14 18:46:57 EDT 2015


Hi Filippo,

As far as I am aware, both IPOPT and BONMIN treat N \leq \sum{i\in I}v_i \leq N as \sum{i\in I}v_i=N. Therefore you are correctly implementing an equality constraint. Using OPTI, you can check this using IPOPT (relax all integer variables) and checking the display output of IPOPT – it should state that it found your equality constraint:

This is Ipopt version 3.12.3, running with linear solver pardiso.

Number of nonzeros in equality constraint Jacobian...:        2
Number of nonzeros in inequality constraint Jacobian.:        2
Number of nonzeros in Lagrangian Hessian.............:        3

Total number of variables............................:        2
                     variables with only lower bounds:        0
                variables with lower and upper bounds:        2
                     variables with only upper bounds:        0
Total number of equality constraints.................:        1
Total number of inequality constraints...............:        1
        inequality constraints with only lower bounds:        0
   inequality constraints with lower and upper bounds:        0
        inequality constraints with only upper bounds:        1

You may also increase the print out of BONMIN above the default, so each IPOPT solve is displayed. See test_bonmin_linearcon.m line 67, increase this to 4, and you will see what I mean. This option is not available via the OPTI object however.

Regarding the convergence issues, this is best left to one of the members of this forum to discuss the reasons this could be occurring.

Regards,
Jonathan

From: bonmin-bounces at list.coin-or.org [mailto:bonmin-bounces at list.coin-or.org] On Behalf Of Filippo Pecci
Sent: Friday, 15 May 2015 1:07 a.m.
To: bonmin at list.coin-or.org
Subject: [Bonmin] Issues when dealing with linear constraints involving integer variables

Dear all,

We have been using BONMIN to solve some MINLP problems with binary integers that represent  ON/OFF type elements in our optimization. One of the linear constraints we have is a that the sum of integer variables is a fixed positive integer N (i.e. \sum{i\in I}v_i=N)

  *   We use bonmin through OPTI's mex interface. As a result, we implement this linear constraint on the integer variable as N \leq \sum{i\in I}v_i \leq N. This has some convergence issues, often failing to find a feasible solution.

  *   We  relaxed the above constraints using small delta to N-\delta \leq \sum{i\in I}v_i \leq N+\delta. Although this solved the issue for some small N, the same problem was faced for larger N values.

  *   We also replaced this constraint with \sum{i\in I}v_i \leq N, which is equivalent to the original constraint in our problem since the objective function cannot be improved with less ON elements (i.e. with less v_i that are equal to 1). This formulation always works with good convergence properties.

What is it about bonmin that causes this behaviour? Pseudocosts? How bonmin passes equality constraints in integer variables to ipopt? Can it be related to the branching rules?

Thank you for your time and consideration.

Best regards,

Filippo Pecci
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/bonmin/attachments/20150514/b5cda66e/attachment-0001.html>


More information about the Bonmin mailing list