MATLAB: Large-Scale Linear Programming

large-scalelinear programminglinprogoptimizationOptimization Toolboxstarting point

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

Best Answer

  • 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