Why does the LINPROG function in the Optimization Toolbox exit saying that the problem is infeasible when there definitely is a feasible solution?

5 次查看(过去 30 天)
When the large-scale method is used on a problem with a feasible solution, the following error is generated:
ERROR: Exiting: One or more of the residuals, duality gap, or total relative error has stalled:
the primal appears to be infeasible (and the dual unbounded).
(The dual residual < TolFun=1.00e-008.)
The simplex method will solve the problem but is very slow.

采纳的回答

MathWorks Support Team
编辑:MathWorks Support Team 2021-5-12
This behavior can occur when the matrix 'Aeq' has linearly dependent constraint rows and the LINPROG solvers do not detect these rows which can cause the algorithms to take an excessively long time to converge or fail to converge at all.
Please refer to the following link for details about linearly dependent vectors:
As a workaround, you can use the active-set algorithm to obtain the indices of the dependent rows. Then you can remove the dependent rows manually to create new matrices 'rAeq' and 'rbeq', which can be solved by LINPROG. To use the active-set Algorithm, set the 'LargeScale' option to 'off' and 'Simplex' to 'off'(default) using the OPTIMSET function.

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Linear Programming and Mixed-Integer Linear Programming 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by