No feasible solution found when using quadprog
显示 更早的评论
Hello,
I am dealing with a large-scale convex quadratic programming with onlu inequality constraint.
In particular, H is a 1516-square matrix and A has dimension of 3038x1516.
I have used the code:
options = optimoptions('quadprog','interior-point-convex');
[x,fval,exitflag,output,lambda] = quadprog(H,f,A,b,[],[],[],[],[],options);
but the output is:
No feasible solution found.
quadprog stopped because it was unable to find a point that satisfies
the constraints within the default value of the constraint tolerance.
I have tried to normalize the matrix A and the vector b (as suggested in a old thread) but I got the same output. Then, using the suggestions of Converged to an Infeasible Point at https://it.mathworks.com/help/optim/ug/when-the-solver-fails.html#br44i73, I have tried to let Matlab find a feasible solution using LinProg and settingthe objective function to zero. Even in this way the solver cannot find a fesible solution. But, the vector of all zeros and of all ones are two fesible points.
Any suggestions?
Thank you a lot-
8 个评论
Bruno Luong
2021-4-6
"But, the vector of all zeros and of all ones are two fesible points. "
What is you provide those vectors as x0?
Elisabetta Biondi
2021-4-6
Bruno Luong
2021-4-6
If you said "all zeros and of all ones are two fesible points" then if you provide them as starting point, quadprog should never "stopped because it was unable to find a point that satisfies the constraints", but of course you have to use whatever algorithm that accepts starting point.
Unless if you make a mistake in setting up your problem. It's just a way to make sure there is no problem of your input arguments passing to quadprog.
Matt J
2021-4-6
I suggest attaching a.mat file containing b and c=sum(A,2).
I have used the code:
I doubt it. The first line generates an error.
options = optimoptions('quadprog','interior-point-convex');
Elisabetta Biondi
2021-4-7
Bruno Luong
2021-4-7
编辑:Bruno Luong
2021-4-7
Your b contain -1, so zeros is NOT feasible point either. (since A*0 is 0 vector and it is NOT <= -1)
You seem to have bug in b, or do your formulation incorrectky.
Elisabetta Biondi
2021-4-7
回答(0 个)
类别
在 帮助中心 和 File 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!