slack variables in optimization: a different usage
12 次查看(过去 30 天)
显示 更早的评论
Hello, I have an optimisation problem with equalities and inequalities.
A x < b is an inequality, with x,b being a vector.
If the problem is infeasible with b, I want to allow b to change to b*, only enough for the problem to be solved and (b*-b) should be heavily punished. This corresponding cost would be k*ϵ, where k = 10^6 for example. Thus, my slack variable is ϵ = b* - b > 0.
How could I formulate this in matlab? I am using quadprog for optimization.
Thanks,
0 个评论
回答(1 个)
Carl
2017-10-13
I don't believe this functionality is built into the quadprog function, or for the Optimization Toolbox in general. The closest thing I was able to find was the ConstraintTolerance option:
The documentation page here gives a good explanation of that tolerance value. If your problem cannot be solved with the current value of b, you can try increasing the value of ConstraintTolerance.
另请参阅
类别
在 Help Center 和 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!