Quadratic optimization with quadratic constraints

조회 수: 4 (최근 30일)
Rene
Rene 2012년 2월 1일
댓글: Steve Grikschat 2024년 7월 6일
Hi everyone,
I have an optimization problem with a quadratic objective function and quadratic constraint functions AND the problem is non-convex.
Is there any Matlab function which can do this? QUADPROG and FMINCON only allow linear constraints afaik. I also tried a solver by MOSEK (<http://mosek.com/>) but this only can deal with convex problems. Is there any tool/function for the non-convex case?
Thanks! René

채택된 답변

Steve Grikschat
Steve Grikschat 2012년 2월 1일
Hi Rene (sorry, can't get the accent right)
You can use FMINCON to solve this problem. However, there is no dedicated input for quadratic constraints. Instead, you must formulate them as nonlinear constraints.
Since your problem is non-convex, you should probably use the interior-point algorithm. http://www.mathworks.com/help/toolbox/optim/ug/brnoxzl.html#brnpd5f
Also, since your objective and constraint functions are quadratic, you can save a lot of time by providing outputs that compute the gradients (H*x + f) and a function that computes the Hessian (of the Lagrangian, in this case).
To do this, you'll need to create functions to compute your objective and constraints, as well as setting these options:
- Algorithm to 'interior-point' - GradObj to 'on' (user-computed 1st derivatives) - GradConstr to 'on' (same) - Hessian to 'user-supplied' (user-computed 2nd derivatives) - HessFcn to a handle to a function that computes the Hessian of the Lagrangian (see this page:http://www.mathworks.com/help/toolbox/optim/ug/fmincon.html#f186882)
+Steve
  댓글 수: 1
Matt J
Matt J 2020년 9월 18일
Rene commented:
Sorry for responding that late, I had been busy with other stuff lately and just wanted to say "thank you" for your help, Steve!

댓글을 달려면 로그인하십시오.

추가 답변 (2개)

Matt J
Matt J 2016년 6월 19일
If you have single, L2-norm constraint, then this FEX submission should help,

Steve Grikschat
Steve Grikschat 2020년 9월 18일
As of R2020b, Optimization Toolbox now has a dedicated solver for second-order cone programming, which can be used to solve quadratic constrained problems.
https://www.mathworks.com/help//optim/ug/convert-qp-to-socp.html
Function reference:
coupled with a function to make a second-order cone constraint
For an example see
  댓글 수: 5
rui liu
rui liu 2024년 7월 6일
Hello, if there is some methods to accelerate the SOCP computation. I try to generate C code but it says "Function 'secondordercone' not supported for code generation. if there is other methods to make the solver process quick. Thank you!
Steve Grikschat
Steve Grikschat 2024년 7월 6일
C code generation for coneprog is not supported in the current release, but is on our plans (see if you can access the R2024b pre-release notes which mentions this: https://www.mathworks.com/help/releases/R2024b/optim/release-notes.html)
In the meantime, an option that can have a notable effect on the solve time is the LinearSolver option
If your linear or cone constraints are dense (many nonzeros) or have dense columns, then tuning this option may be helpful.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Quadratic Programming and Cone Programming에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by