Opened 6 months ago
Last modified 3 months ago
#31742 new enhancement
MixedIntegerLinearProgram.ambient_manifold, feasible_subset, objective_scalar_field, optimal_subset
Reported by:  mkoeppe  Owned by:  

Priority:  major  Milestone:  sage9.5 
Component:  manifolds  Keywords:  
Cc:  egourgoulhon, ghmjungmath, tscrim, yzh  Merged in:  
Authors:  Reviewers:  
Report Upstream:  N/A  Work issues:  
Branch:  u/mkoeppe/mixedintegerlinearprogram_ambient_manifold__feasible_subset__objective_scalar_field__optimal_subset (Commits, GitHub, GitLab)  Commit:  1c7a69772c51deaa5898d2cf5d5b1a888c7c7c94 
Dependencies:  Stopgaps: 
Description
We define some convenience methods that make it easy to construct manifold objects corresponding to linear and mixedinteger linear optimization problems.
The ambient manifold is just a Euclidean space, using the (formatted) variable names of the frontend. We also define a backend chart using the variable names that the MILP backend uses.
Adding variables to the MILP will define a ContinuousMap
that injects the previous MILP into the new one.
Adding constraints to the MILP will set up a subset.
Change History (7)
comment:1 Changed 6 months ago by
 Branch set to u/mkoeppe/mixedintegerlinearprogram_ambient_manifold__feasible_subset__objective_scalar_field__optimal_subset
comment:2 Changed 6 months ago by
 Commit set to 616dc06bdd5325f26c603d47a02d3c3ab5845a13
comment:3 Changed 6 months ago by
 Commit changed from 616dc06bdd5325f26c603d47a02d3c3ab5845a13 to b1b29a5bf3c7f5e01358fb0179a9717ab695ed69
Branch pushed to git repo; I updated commit sha1. New commits:
b1b29a5  MixedIntegerLinearProgram.ambient_manifold: New

comment:4 Changed 6 months ago by
 Commit changed from b1b29a5bf3c7f5e01358fb0179a9717ab695ed69 to 1c7a69772c51deaa5898d2cf5d5b1a888c7c7c94
Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:
1c7a697  MixedIntegerLinearProgram.ambient_manifold: Add docstring

comment:5 Changed 6 months ago by
Perhaps the strange variable names for the backend, constructed in MIPVariable.__getitem__
, should be changed to the format that _format_backend_variable_name
uses.
sage: M2.<x> = MixedIntegerLinearProgram() sage: x[1,2] x_0 sage: x[3,4] x_1 sage: M2.get_backend().col_name(0) 'x[(1, 2)]'
This variable name is not compatible with LP (http://lpsolve.sourceforge.net/5.0/CPLEXformat.htm) or MPS file format (https://www.gurobi.com/documentation/9.1/refman/mps_format.html).
So changing this to something that has a chance to work with these file formats, such as x_1_2
, would be an improvement.
comment:6 Changed 6 months ago by
opened #31791 (MIPVariable
: Better names for backend variable names)
comment:7 Changed 3 months ago by
 Milestone changed from sage9.4 to sage9.5
Branch pushed to git repo; I updated commit sha1. New commits:
MixedIntegerLinearProgram: New init arg 'name'
MixedIntegerLinearProgram.interactive_lp_problem: Factor out helper functions _backend_variable_names etc
MixedIntegerLinearProgram.ambient_manifold: New