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

Update for MOI v0.9 #55

Merged
merged 5 commits into from
Aug 23, 2019
Merged

Update for MOI v0.9 #55

merged 5 commits into from
Aug 23, 2019

Conversation

blegat
Copy link
Collaborator

@blegat blegat commented May 29, 2019

  • Fix Silent. It seems :verbose is ignored when it is set by update_settings!, i.e. by osqp_update_verbose. @bstellato Any idea ?
  • Implement DualObjectiveValue. @bstellato How do we get that from OSQP ?
  • Implement TimeLimitSec.

Support for SingleVariable is removed because the index should be equal to the variable index. It was bridged inside this wrapper anyway so it is better if it is not supported and relies on ScalarFuntionizeBridge: http://www.juliaopt.org/MathOptInterface.jl/dev/apireference/#MathOptInterface.Bridges.ScalarFunctionizeBridge

@blegat
Copy link
Collaborator Author

blegat commented Aug 23, 2019

@bstellato bump, we released MOI v0.9 and we are about to release JuMP v0.20

@bstellato
Copy link
Collaborator

Oops sorry. I have been busy with other stuff and release 0.6.0. I will fix it as soon as possible + make the changes for 0.6.0. Otherwise if anyone else would like to fix this for now I would appreciate it a lot. It seems tests are failing for some dependency issues.

@blegat
Copy link
Collaborator Author

blegat commented Aug 23, 2019

@bstellato I have updated the PR. It now fails because DualObjectiveValue is not defined.

@bstellato
Copy link
Collaborator

Thanks a lot @blegat! Unfortunately we do not return the dual objective value in OSQP since it would involve more complex operations such as computing the inverse of the quadratic form matrix P. Is there any way to disable that functionality in MOI when calling OSQP? Otherwise if you know better easier ways to compute the dual objective function I would be happy to integrate them in OSQP.

@gbanjac
Copy link
Collaborator

gbanjac commented Aug 23, 2019

Actually, there is no need to compute the inverse of P. Have a look at equation (4) in this paper to see the dual of the original problem. You would just need to evaluate the support function (which is easy).

However, I am not sure how useful this value will be in the case when the iterates are not dual feasible. For instance, it will not necessarily be a lower bound to the optimal objective value.

@bstellato
Copy link
Collaborator

Exactly! I meant the case where we do not depend on x (i.e., we plug in the equality constraint of (4) into the cost function). In that case it would be easy to get dual feasible iterates (by projecting on the cone) but we would depend on the inverse of P to compute the cost. We might want to discuss it in an issue on the main repo. I have created one here osqp/osqp#175.

@mlubin
Copy link
Collaborator

mlubin commented Aug 23, 2019

If DualObjectiveValue isn't available, then it shouldn't be implemented (and the corresponding tests should be disabled).

@codecov-io
Copy link

codecov-io commented Aug 23, 2019

Codecov Report

Merging #55 into master will decrease coverage by 0.28%.
The diff coverage is 61.9%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master      #55      +/-   ##
==========================================
- Coverage   87.59%   87.31%   -0.29%     
==========================================
  Files           6        6              
  Lines         919      922       +3     
==========================================
  Hits          805      805              
- Misses        114      117       +3
Impacted Files Coverage Δ
src/MOI_wrapper.jl 89.03% <61.9%> (-1.26%) ⬇️
src/interface.jl 78.82% <0%> (+0.9%) ⬆️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update fda1c30...e7df956. Read the comment docs.

@blegat
Copy link
Collaborator Author

blegat commented Aug 23, 2019

I moved the TODO list as separate issues.

@blegat blegat merged commit f09a281 into master Aug 23, 2019
@mlubin mlubin deleted the bl/moiv0.9 branch September 11, 2019 13:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants