[OS] Binary variables ignore bounds?

Tony Kelman kelman at berkeley.edu
Fri Jan 30 23:11:38 EST 2015


So, my Julia interface to OS is now working, see
https://github.com/tkelman/CoinOptServices.jl - I can send a more detailed
announcement with installation and usage instructions soon. The unit test
suite of JuMP (a Julia package for optimization modeling) is revealing what
looks like buggy behavior. Here's a very simple osil file:

<?xml version="1.0" encoding="utf-8"?>
<osil xmlns="os.optimizationservices.org" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="os.optimizationservices.org 
http://www.optimizationservices.org/schemas/2.0/OSiL.xsd">
  <instanceHeader>
    <description>generated by CoinOptServices.jl on 2015/01/30 at 
19:01:45</description>
  </instanceHeader>
  <instanceData>
    <variables numberOfVariables="1">
      <var lb="0.0" ub="0.0" type="B"/>
    </variables>
    <objectives numberOfObjectives="1">
      <obj maxOrMin="max" numberOfObjCoef="1">
        <coef idx="0">1.0</coef>
      </obj>
    </objectives>
    <constraints numberOfConstraints="0"/>
  </instanceData>
</osil>


When I send this problem to OSSolverService, using any of Cbc, Bonmin, or
Couenne, I get an incorrect solution of <var idx="0">1</var>, instead of
0 as expected. I have not yet tracked down where in the source this might
be happening. Somewhere that processes variable types might be overwriting
lower and upper bounds to 0 and 1 for all binary variables, instead of first
checking whether any existing bounds given in the osil file are stricter.

-Tony



More information about the OS mailing list