A modeling language for mathematical programming
Management Science
The OPL optimization programming language
The OPL optimization programming language
Disjunctive programming: properties of the convex hull of feasible points
Discrete Applied Mathematics
Automatic generation of staged geometric predicates
Proceedings of the sixth ACM SIGPLAN international conference on Functional programming
Semantics of Exact Real Arithmetic
LICS '97 Proceedings of the 12th Annual IEEE Symposium on Logic in Computer Science
Modeling Languages in Mathematical Optimization (APPLIED OPTIMIZATION)
Modeling Languages in Mathematical Optimization (APPLIED OPTIMIZATION)
Logical modeling frameworks for the optimization of discrete-continuous systems
Logical modeling frameworks for the optimization of discrete-continuous systems
Flexible, rule-based constraint model linearisation
PADL'08 Proceedings of the 10th international conference on Practical aspects of declarative languages
First-order mixed integer linear programming
UAI '09 Proceedings of the Twenty-Fifth Conference on Uncertainty in Artificial Intelligence
A type theory for probability density functions
POPL '12 Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Self-aligned double patterning aware pin access and standard cell layout co-optimization
Proceedings of the 2014 on International symposium on physical design
Hi-index | 0.00 |
Mathematical programs (MPs) are a class of constrained optimization problems that include linear, mixed-integer, and disjunctive programs. Strategies for solving MPs rely heavily on various transformations between these subclasses, but most are not automated because MP theory does not presently treat programs as syntactic objects. In this work, we present the first syntactic definition of MP and of some widely used MP transformations, most notably the big-M and convex hull methods for converting disjunctive constraints. We use an embedded OCaml DSL on problems from chemical process engineering and operations research to compare our automated transformations to existing technology—finding that no one technique is always best—and also to manual reformulations—finding that our mechanizations are comparable to human experts. This work enables higher-level solution strategies that can use these transformations as subroutines.