For solvers accepting expression trees (SCIP 9, Xpress, Lindo), extend MP FlatConverter to support them.
Advantage: better numerical properties (see SCIP 8 release paper.)
Scope:
[ ] Allow mixing flat constraints with expressions. For example, SCIP supports resvar = AND(v1, ..., vn), along with expressions.
[ ] Keep the existing automatic redefinition mechanism.
[ ] Allow per-expression type setting, whether it should be passed to the solver, or redefined - similar to flat constraints.
[ ] This should obvously coexist with the mp::NLHandler and mp::Expr interfaces passing expression trees directly from the NL file. We need clear documentation when to use which.
[ ] Inline expressions wherever reasonable, e.g., linear expressions into each other.
For solvers accepting expression trees (SCIP 9, Xpress, Lindo), extend MP FlatConverter to support them.
Advantage: better numerical properties (see SCIP 8 release paper.)
Scope:
resvar = AND(v1, ..., vn)
, along with expressions.mp::NLHandler
andmp::Expr
interfaces passing expression trees directly from the NL file. We need clear documentation when to use which.