Skip to content

GPMixin: Add optional linearization of goal order

Tjerk Vreeken requested to merge linear-goal-order-mixin into master

For some problems it is preferred to not introduce any non-linear terms in the objective. For example, when using a MILP solver, one wants the entire problem to remain linear. This sometimes clashed with the desire for an order 2 goal, which steers the solution in the direction of many small exceedences instead of one large exceedence. An order 1 goal does not distuinguish between the two.

This commit adds functionality to linearly approximate the goal order. That way, one can keep the problem fully linear, why getting some of the benefits of higher order goals back.

Aside from solvers which only handle LP and not QP, using a linearly approximated goal order is also useful when keep_soft_constraints is set. A quadratic problem in priority 1 would mean a quadratically constrained problem in priority 2 with that option, something that can be much harder to solve.

  • Needs some tests (e.g. order = 1 is exactly equal. order = 2 is approximately equal, but different from order = 1)
  • Add thing about minimization goals to commit message
Edited by Tjerk Vreeken

Merge request reports