Large-Scale Linear Programming
6 views (last 30 days)
Show older comments
Hi Programmers,
I have faced an essential problem when I try to start linprog optimizer with 48 variables and 30 inequality constraints and 48 variable constraints (side constraints); it doesn't accept my initial points (starting points)!
It gives the following message: Large scale (interior point) algorithm uses a built-in starting point; ignoring user-supplied X0.
My question is: Is there any way to let MATLAB to accept the starting points for the large-scale (not medium-scale) linear programming instead of using its built-in starting points?
It is very essential for me to let linprog to optimize the high-dimensional problem with the given supplied starting points
Thanks a lot
0 Comments
Accepted Answer
Alan Weiss
on 10 Sep 2013
As stated on the linprog function reference page:
x = linprog(f,A,b,Aeq,beq,lb,ub,x0) sets the starting point to x0. linprog uses x0 only with the active-set algorithm. linprog ignores x0 with the interior-point and simplex algorithms.
However, 48 variables, or even 100, is not a big problem. You can use any algorithm you like, all should work just fine with that small a problem, though the interior-point algorithm is likely to be the fastest.
If your real problem is much larger, meaning many thousands of variables and constraints, then indeed you should use the interior-point (large-scale) algorithm. I am not sure why you think you need to include a starting point, linear programs are convex problems, and so any answer is going to be a global optimum.
Alan Weiss
MATLAB mathematical toolbox documentation
7 Comments
Matt J
on 15 Sep 2013
Edited: Matt J
on 15 Sep 2013
the option exists onoy because sometimes you can speed up the active-set solver by giving a good starting value.
Seems to me, though, that you should also be able to speed up the interior-point algorithm in the same way. I find it curious that any iterative algorithm would be absent an option to take advantage of a good initial guess, when available.
Alan Weiss
on 16 Sep 2013
Matt, a characteristic of interior-point solvers that they have a different idea of what a good initial point is than you might think. If you give a point on the boundary as an initial point, an interior-point method thinks it a horrrible point, because it wants to stay away from boundaries (in many interior-point codes there is a large penalty for being close to the boundary). So it is usually better to allow interior-point algorithms to choose their own starting points, or at least to substantially modify any point you pass in. And if it is going to substantially modify the point, well, maybe the algorithm should just not accept a start point.
Alan Weiss
MATLAB mathematical toolbox documentation
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!