Opened 19 months ago
Last modified 3 months ago
#31742 new enhancement
MixedIntegerLinearProgram.ambient_manifold, feasible_subset, objective_scalar_field, optimal_subset
Reported by:  Matthias Köppe  Owned by:  

Priority:  major  Milestone:  sage9.8 
Component:  manifolds  Keywords:  
Cc:  Eric Gourgoulhon, Michael Jung, Travis Scrimshaw, Yuan Zhou  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 (10)
comment:1 Changed 19 months ago by
Branch:  → u/mkoeppe/mixedintegerlinearprogram_ambient_manifold__feasible_subset__objective_scalar_field__optimal_subset 

comment:2 Changed 19 months ago by
Commit:  → 616dc06bdd5325f26c603d47a02d3c3ab5845a13 

comment:3 Changed 19 months ago by
Commit:  616dc06bdd5325f26c603d47a02d3c3ab5845a13 → b1b29a5bf3c7f5e01358fb0179a9717ab695ed69 

Branch pushed to git repo; I updated commit sha1. New commits:
b1b29a5  MixedIntegerLinearProgram.ambient_manifold: New

comment:4 Changed 19 months ago by
Commit:  b1b29a5bf3c7f5e01358fb0179a9717ab695ed69 → 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 19 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 19 months ago by
opened #31791 (MIPVariable
: Better names for backend variable names)
comment:7 Changed 17 months ago by
Milestone:  sage9.4 → sage9.5 

comment:8 Changed 12 months ago by
Milestone:  sage9.5 → sage9.6 

comment:9 Changed 9 months ago by
Milestone:  sage9.6 → sage9.7 

comment:10 Changed 3 months ago by
Milestone:  sage9.7 → sage9.8 

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