Share via

Major error in Excel Simplex-LP solver

Anonymous
2017-04-13T20:16:40+00:00

Hi,

There seems to be a major bug in the Excel Simplex-LP solver. Attached is the Excel with the linear problem and the correct solution as derived for example by OpenSolver or SAS:

https://www.dropbox.com/sh/3n23k13pruiz85m/AAB\_ey9NRGOENexGS7e0wXb8a?dl=0

The native Excel Simplex-LP solver finds a solution that is not even close to optimal. Is there an updated version for the solver available?

Regards,

Jost

Microsoft 365 and Office | Excel | For home | Windows

Locked Question. This question was migrated from the Microsoft Support Community. You can vote on whether it's helpful, but you can't add comments or replies or follow the question.

0 comments No comments

4 answers

Sort by: Most helpful
  1. Anonymous
    2017-04-17T17:27:34+00:00

    Wow.  I had no idea that Open Solver would have found a solution so quickly.

    Thanks for the feedback.

    Was this answer helpful?

    0 comments No comments
  2. Anonymous
    2017-04-17T17:22:34+00:00

    Hi Dana,

    I appeciate you taking the time to analyze the problem.

    OpenSolver takes 0.06s and SAS 0.01s to solve this mixed integer linear programming problem.

    I would expect from a commercial linear solver that it can solve a MILP problem of this size. If this is not the case for the Excel solver, then it should probably not pretend that it can. The solver says "Solver found a solution. (...) When Simplex LP is used, this means Solver has found a global optimal solution." This is wrong and therefore a bug.

    Best,

    Jost

    Was this answer helpful?

    0 comments No comments
  3. Anonymous
    2017-04-17T05:16:01+00:00

    Hi.  Just two cents on the Excel issue.

    I would be curious to learn how long it took Open Solver to solve this as written.

    As written, Excel's Solver would have to check every combination, which is astronomically large.

    It doesn't lend itself to a fast Simplex solution.

    Picture the solution plane as a surface with lots of hills and valleys.  Solver is asking to check every valley and then do a comparison of two cells.  Not very efficient.  Solver really can't do Global optimization well, unless it uses the  Evolutionary method, which would take forever in this case.

    The usual solution in this case is to write a macro that generates a better table that Solver can use.

    However, in this case, it may be better to do the following.

    Take each column of your data table, and multiply it by the columns constraint.

    It is now a simple task for vba to compare two rows at a time, and pick the minimum from each column.  There are only 45 row comparisons to make.  The solution is almost immediate.  I think this is a better way to go than have Solver compare billions of combinations.   Here, it immediately picked the same rows 4&5, and the sum of the green values are the same as what you had:  2,426,047,900

    If we look at just the 45 possible combinations, we see just how un-smooth the solution set is.   Solver would have to do a Global search, and it wouldn't be very efficient.:

    Here, the 25th comparison was your rows 4 & 5.

    Again, Excel got this solution immediately be changing the model.

    Was this answer helpful?

    0 comments No comments
  4. Deleted

    This answer has been deleted due to a violation of our Code of Conduct. The answer was manually reported or identified through automated detection before action was taken. Please refer to our Code of Conduct for more information.


    Comments have been turned off. Learn more