-
Notifications
You must be signed in to change notification settings - Fork 41
COSMO & conflicting hard constraints? #176
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
Comments
The solver should return a status indicating that the problem is (primal) infeasible. In that case it will still return solution vectors, but the "solution" will instead be a proof of infeasibility for the problem in the form described in section 2.1 of the paper here. See also the documentation section on infeasibility here. |
Thanks for super quick response. In the current case, the hard constraint that is broken is only marginally broken.
[Alternatively, could JUMP have some strategy? I should probably ask the JUMP people about that...] |
The solver has settable tolerances that determine the stopping criteria. If your constraints are almost satisfiable, i.e. it is possible to produce an iterate where the residuals of the KKT conditions are very small even if those conditions are not actually satisfiable, then the solver may return such a point and claim it is optimal. All of the solver parameters are described here, and all are settable via JuMP. The default tolerances are relatively loose since the solver uses a first-order method, but you could try tightening them up a bit. The relevant ones for declaring a point optimal are You probably don't want to make them too tight since a first order method will typically not coverage to very high accuracy quickly. If you want something more like 1e-8 type accuracy, then perhaps better to use an interior point method. We are partial to this one. |
Thanks a lot for quick answers! |
No problem. I will close the issue since we have (I hope) answered the question, but feel free to reopen if needed. |
One of my students is using COSMO as a back-end to JUMP to solve a discrete optimal control problem. The model is linear, the cost function is quadratic, and there are two hard constraints on outputs:
-> If he removes the constraint on rate-of-change of produced power (p_ -> very large), COSMO satisfies the frequency constraint.
-> If both constraints are included, COSMO finds a solution that breaks the frequency constraint (possibly also the rate-of-change of power constraint).
QUESTION: how does COSMO handle cases where there is no feasible solution (like here) -- is it meant to report back that there is no feasible solution and then stop, or will it for that case produce an approximate solution? (IPOPT finds an approximate solution by default).
The text was updated successfully, but these errors were encountered: