#12823: Allow constants for objective function & deletion of rows in
MixedIntegerLinearProgram
--------------------------------------+-------------------------------------
       Reporter:  john_perry          |         Owner:  ncohen    
           Type:  defect              |        Status:  needs_info
       Priority:  major               |     Milestone:  sage-5.0  
      Component:  linear programming  |    Resolution:            
       Keywords:  solver objective    |   Work issues:            
Report Upstream:  N/A                 |     Reviewers:            
        Authors:  john_perry, ncohen  |     Merged in:            
   Dependencies:                      |      Stopgaps:            
--------------------------------------+-------------------------------------
Changes (by john_perry):

  * status:  new => needs_info


Old description:

> This is a bug.
> {{{
> sage: lp = MixedIntegerLinearProgram()
> sage: x, y = lp[0], lp[1]
> sage: lp.add_constraint(2*x + 3*y <= 6)
> sage: lp.add_constraint(3*x + 2*y <= 6)
> sage: lp.set_objective(x + y + 7)
> sage: lp.set_integer(x); lp.set_integer(y)
> sage: lp.solve()
> 2.0
> }}}
> The correct value ought to be '''9''', not '''2'''. The problem is this
> line in the `set_objective()` method of `mip.pyx`:
> {{{
>         f.pop(-1,0)
> }}}
> John Perry will create a patch for GLPK and CBC; Nathann Cohen will
> create a patch for Gurobi and CPLEX.

New description:

 Currently, MixedIntegerLinearProgram does not allow deleting rows. We
 would like to enable this for all backends that allow it.

 Also, this is a bug.
 {{{
 sage: lp = MixedIntegerLinearProgram()
 sage: x, y = lp[0], lp[1]
 sage: lp.add_constraint(2*x + 3*y <= 6)
 sage: lp.add_constraint(3*x + 2*y <= 6)
 sage: lp.set_objective(x + y + 7)
 sage: lp.set_integer(x); lp.set_integer(y)
 sage: lp.solve()
 2.0
 }}}
 The correct value ought to be '''9''', not '''2'''. The problem is this
 line in the `set_objective()` method of `mip.pyx`:
 {{{
         f.pop(-1,0)
 }}}

 John Perry will create a patch for GLPK and CBC; Nathann Cohen will create
 a patch for Gurobi and CPLEX.

--

Comment:

 I'm about to upload a new patch that takes into account our offline
 discussion '''and''' enables deletion of rows. The doctests and some
 warning blocks are only in the backends, though; should those be moved to
 `mip.pyx`? I'm not real clear on that.

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/12823#comment:3>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sage-trac?hl=en.

Reply via email to