Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Priorities for pure Linear Tasks #137

Open
EnricoMingo opened this issue Jan 29, 2019 · 3 comments
Open

Priorities for pure Linear Tasks #137

EnricoMingo opened this issue Jan 29, 2019 · 3 comments

Comments

@EnricoMingo
Copy link
Contributor

If two Linear tasks are stacked to have Hard priorites, these are not respected since in the solver is missing the computation of the optimality constraint if the task is purely Linear. This means that, at the moment, pure Linear tasks can be added only at the lowest priority. I am not sure if this feature is useful or not but should be very easy to implement and test.

@alaurenzi
Copy link
Contributor

I'm under the impression that doing this would be very problematic. Consider the least squares problem as we usually do: the objective function is ||Ax - b||^2, and so the optimality constraint can be a linear constraint (Ax = Ay, where y is the previous solution). Now consider the least squares plus linear term, whose objective function is ||Ax-b||^2 + c'x: now the optimality constraint is ||Ax-b||^2 + c'x = ||Ay-b||^2 + c'y which is quadratic and non-convex.

@EnricoMingo
Copy link
Contributor Author

EnricoMingo commented Jun 14, 2019

Is it non convex? I thought convexity was given by H matrix in the cost function which in our case is always SPD, we should have basically three cases:

  1. c = 0 -> F = ||Ax - b||^2 where the optimality is given by Ax = Ay, which is ok
  2. A = 0 -> F = c'x where the optimality is given by c'x = c'y, which is ok
  3. Bot different from 0, then we have ||Ax-b||^2 + c'x = x'Hx + (g' + c')x and the optimality should be again in the form Ax = Ay right?

@EnricoMingo
Copy link
Contributor Author

After some discussion we end up with the following optimality condition:
[A; c'] x = [A; c']y
which is a linearization of the real optimality condition which indeed is not linear.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants