Changes between Initial Version and Version 2 of Ticket #20296


Ignore:
Timestamp:
03/27/16 00:36:26 (3 years ago)
Author:
mkoeppe
Comment:

Needs review.

Some remarks:

  • I'm using some _internals of InteractiveLPProblem (_constraint_types, _variable_types, _problem_type, _is_negative) because some accessor methods are missing. Should I be adding them?
  • There's should be a way to choose the base ring for the solver (right now I'm using AA -- but ultimately I'd like to use an embedded number field), but I'm not sure about the interface... perhaps MixedIntegerLinearProgram(solver=('InteractiveLP', AA)) or MixedIntegerLinearProgram(solver='InteractiveLP', base_ring=AA

New commits:

c39dd7dFix typo in documentation
4596534New MIP backend: InteractiveLPBackend
78039beFix doctests (which never run)
08d4548Fix typo in docstring

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #20296

    • Property Status changed from new to needs_review
    • Property Authors changed from to Matthias Koeppe
    • Property Cc dimpase novoselt ncohen vdelecroix chapoton added
    • Property Branch changed from to u/mkoeppe/mixedintegerlinearprogram__new_backend_using_interactivelpproblem
    • Property Commit changed from to 08d454882ce0a95b13f7d25c659c5cdde3b57090
  • Ticket #20296 – Description

    initial v2  
    1 If one has to solve a small LP with irrational (say, AA) data (and needs access to the exact solution), the only available tool is the didactical implementation of the simplex method in `InteractiveLPProblem` (but see #18735). This ticket implements a `MixedIntegerLinearProgram` backend using `InteractiveLPProblem`.
     1If one has to solve a small LP with irrational (say, `AA`) data (and needs access to the exact solution), the only available tool is the didactical implementation of the simplex method in `InteractiveLPProblem` (but see #18735). This ticket implements a `MixedIntegerLinearProgram` backend using `InteractiveLPProblem`.
     2
     3Example:
     4{{{
     5            sage: poly = polytopes.dodecahedron(base_ring=AA)
     6            sage: lp = poly.to_linear_program(solver='InteractiveLP')
     7            sage: b = lp.get_backend()
     8            sage: b.set_objective([1, 1, 1])
     9            sage: lp.solve()
     10            2.291796067500631?
     11}}}
     12(This example uses backend functions because of #20301 .)