jump-dev / MathOptInterface.jl

A data structure for mathematical optimization problems
http://jump.dev/MathOptInterface.jl/
Other
392 stars 87 forks source link

Preparing for generic duals with: FunctionDual, SetDual (and ConeDual?), and ConstraintDual #97

Closed juan-pablo-vielma closed 3 years ago

juan-pablo-vielma commented 7 years ago

I am still processing the details, but after talking to @mlubin I think a name change from ConstraintDual to ConicDual may be important to allow the correct generic dual convention in the future.

The current dual conventions are based on Conic duality, but to me a more generic dual convention includes:

  1. dual for a constraint: simpler constraint (usually linear inequality) that approximates/contains the constraint.
  2. optimal dual for a constraint: a dual constraint that can replace the original constraint and lead to the same optimal value (and maybe solution)
  3. optimal set of constraint duals: set of optimal duals for the constraints that give a simple proof of optimality: e.g. objective is cx and duals are linear inequalities the cone generated by their lhs contains c
  4. dual problem: structured optimization problem that finds an optimal set of constraint duals.

Point 1. also works for functions and sets, and probably the function and set duals can be combined into a dual for the associated constraint (e.g. if the function is affine and the set is a cone, we know how to get the constraint dual). Points 2. and 3. are the same up to the relative scaling between the duals required by Point 3. You also may be able to get the duals for 3. even if 4. does not exist. Probably a lot more to discuss about this (e.g. infeasibility and unboundedness) and so too early to resolve.

In the mean time I propose changing ConstraintDual to ConicDual so we can reserve FunctionDual, SetDual and ConstraintDual for the future. ConicDual would be a special case of SetDual whose feasibility/optimality is w/r to 4. In particular, this would allow us to later have a ConeDual in between SetDual and ConicDual whose feasibility/optimality could be w/r to 1.-3. (e.g. in a conic problem the ConeDuals in an optimal set from 3. would be any non-zero scalings of the optimal ConicDuals)

odow commented 3 years ago

Do we still want to do this? We clearly haven't had any interest in the last few years.

juan-pablo-vielma commented 3 years ago

Closing it given how long it took me to understand what I had written :-)