[Bonmin] Bonmin ignoring bin-var bounds [0, 1] (implicitly given by it's variable-type) during relaxation?

Stefan Vigerske stefan at math.hu-berlin.de
Sat Feb 10 22:06:47 EST 2018


Hi,

I think that's by design.
In your implementation of TMINLP::get_bounds_info you should specify 
bounds [0,1] for (unfixed) binary variables, though it may seem redundant.

Stefan

On 02/10/2018 10:25 PM, Sascha Schnug wrote:
> Hi,
> i wrote a small Python-based library to use Bonmin as MIQP-solver (not much
> non-commercial alternative solvers).
> After writing an interface for cvxpy's newly introduced QP-reduction pipeline
> (convex only), i observed the following:
>           x = Variable()
>           y = Variable(integer=True)
>           z = Variable(boolean=True)
>           constraints = [0 <= x, x <=5,
>                               -3 <= y, y <=2,
>                                0 <= z, z <= 1]  # !!! imho: should not be needed
>           p = Problem(Maximize(x + y + z), constraints)
>           p.solve(solver='BONMIN_QP', verbose=True)
>           assert p.status == s.OPTIMAL
> does only work, if i manually add constraints to induce bounds on z, which is of
> boolean-type!
> So removing the last line of the two constraints bounding z, Bonmin results in
> the final result: unbounded!
> The relaxation should also be more strong when those bounds are available.
> I was expecting Bonmin to automatically introduce those bounds when relaxing the
> problem
> after observing some of those variables are binary (bound-information implicitly
> given).
> I don't think i did something wrong in providing variable-type options within my
> wrapper.
> _Is this by design? Is this a bug? Or do you think i made a mistake?_
> It should not matter, but if someone is interested, the links:
> python-lib wrapping Bonmin and doing necessary Jac/Hess calcs:
> - https://github.com/sschnug/pyMIQP
> <https://urldefense.proofpoint.com/v2/url?u=https-3A__deref-2Dweb-2D02.de_mail_client_f1vAKS3sel8_dereferrer_-3FredirectUrl-3Dhttps-253A-252F-252Fgithub.com-252Fsschnug-252FpyMIQP&d=DwMBaQ&c=Ngd-ta5yRYsqeUsEDgxhcqsYYY1Xs5ogLxWPA_2Wlc4&r=BRcuJnQr5NAzU29t80hk2rsLc4vrlRySBDabuq0O1ZI&m=D68zNJKefssacJL8kg4gANs697LqHQXHUqrcwt4nqTo&s=bCzRjYmbnxMwsTH2KyBXEAV7jPkAA08azPZmjxc55hs&e=>
> cvxpy-interface:
> - https://github.com/cvxgrp/cvxpy/pull/438
> <https://urldefense.proofpoint.com/v2/url?u=https-3A__deref-2Dweb-2D02.de_mail_client_LXHNEdkuygw_dereferrer_-3FredirectUrl-3Dhttps-253A-252F-252Fgithub.com-252Fcvxgrp-252Fcvxpy-252Fpull-252F438&d=DwMBaQ&c=Ngd-ta5yRYsqeUsEDgxhcqsYYY1Xs5ogLxWPA_2Wlc4&r=BRcuJnQr5NAzU29t80hk2rsLc4vrlRySBDabuq0O1ZI&m=D68zNJKefssacJL8kg4gANs697LqHQXHUqrcwt4nqTo&s=eKBwbfe_-xtWSFgnD06avkXxKcpbxpwPuzcdN_qlgVY&e=>
> Greetings,
> Sascha
> 
> 
> 
> _______________________________________________
> Bonmin mailing list
> Bonmin at list.coin-or.org
> https://urldefense.proofpoint.com/v2/url?u=https-3A__list.coin-2Dor.org_mailman_listinfo_bonmin&d=DwICAg&c=Ngd-ta5yRYsqeUsEDgxhcqsYYY1Xs5ogLxWPA_2Wlc4&r=BRcuJnQr5NAzU29t80hk2rsLc4vrlRySBDabuq0O1ZI&m=D68zNJKefssacJL8kg4gANs697LqHQXHUqrcwt4nqTo&s=yYO39RvOswbhg4PionkShGsxC0h3_7Y5QNGV1ncW8qQ&e=
> 



More information about the Bonmin mailing list