#12823: Allow constants for objective function & deletion of rows in
MixedIntegerLinearProgram
--------------------------------------+-------------------------------------
Reporter: john_perry | Owner: ncohen
Type: defect | Status: needs_review
Priority: major | Milestone: sage-5.0
Component: linear programming | Resolution:
Keywords: solver objective | Work issues: failing doctests
Report Upstream: N/A | Reviewers:
Authors: john_perry, ncohen | Merged in:
Dependencies: #12220, #12833 | Stopgaps:
--------------------------------------+-------------------------------------
Changes (by john_perry):
* status: needs_info => needs_review
Old 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.
>
> '''Apply''':
> * [attachment:trac_12823_const_for_obj_funs.patch]
> * [attachment:trac_12823_alternate_removal.patch]
> * [attachment:trac_12823-cplex_gurobi.patch]
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.
'''Apply''':
* [attachment:trac_12823_rolls_all_into_one.patch]
--
Comment:
The new patch should incorporate all the changes. It passes doctests on
5.0.beta8. It '''might''' depend on #12220; I'm not sure. The problems I
encountered before were due to my having messed up my queue; I had popped
too much, and [attachment:trac_12823_alternate_removal.patch] included
material from #12736. Please review...
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/12823#comment:37>
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.