We use a wide variety of spreadsheet models and associated spreadsheet layouts to test OpenSolver; these are available here, so you too can see exactly how Solver and OpenSolver handle merged cells in your decision variables…
Have you ever wondered what calculations Excel Solver does to discover your model? Be curious no longer; this spreadsheet (ObserveCalculations.xlsm) will show you exactly what goes on. Be sure to bring up the VBA Immediate window (Alt-F11) to watch the calculations in real time. To make it easier, we’ve also copied some of this output into the sheets. You can, of course, also use this to watch OpenSolver doing its work. Enjoy. PS: You’ll see that things have changed quite a bit between Solver 2007 and Solver 2010…
I learnt a lot working on OpenSolver 1.1beta. For example, did you know that Excel’s union operator can produce ranges with duplicate cells!? Pearson describes the problem here. (We haven’t implemented this yet in OpenSolver as it may slow things down, but will do if it causes problems.) I also realised that Excel allows ranges (such as for the decision variables) like “A1:A5,A2:A6” that internally overlap; OpenSolver now internally fixes ranges like this when they occur.
I’ve always told my students that Solver’s “Assume Non-Negative” applies zero lower bounds to all the variables. I was wrong, as demonstrated by Solver’s new wording “Make Unconstrained Variables Non-Negative”. Lower bounds are only applied to variables that don’t have ‘explicit’ lower bounds set for them in the constraints. ‘Explicit’ here means the variable appears in the left hand side of a constraint which has a right hand side specified by a range or a constant. However, my preliminary tests suggest that Excel 2010 also requires that the left hand side of the constraint not include any non-decision variables. This can lead to different solutions when you move to Excel 2010, which seems rather strange. OpenSolver used to apply zero lower bounds to all the variables. The new version now implements the 2007 approach; you can see this in the new Bounds section in the .lp files.
Finally, did you know the right hand side of a constraint can contain a formula? This is a direct consequence of Excel allowing formulae to be entered as a “named range” (not that it is actually a range!). OpenSolver now handles these (not that I’d suggest you use this obscure feature).
OpenSolver 1.1beta is now available for download. OpenSolver can now run in Excel 2010 as well as 2007, and solves much larger problems and does so more quickly. (We tested on a problem with 70,000 variables and 70,000 constraints sent in by a user!) There are lots of little bug fixes and big improvements, including an AutoModel feature that provides an optional alternative to the Solver dialog; many thanks to my student Iain Dunning for coding this up. We now also check that the model is linear, and highlight any problems. Thanks to Kathleen Gilbert for working over her holidays to make these improvements. You can download the beta here. We look forward to your feedback.
Users of Excel should also be aware of OpenSolver. This is an Excel VBA add-in that extends the Excel built-in solver from Frontline Systems Inc. This add-in allows the user to formulate a model using the builtin Excel solver. However, rather than optimize the model with the built-in Excel solver engine, with the OpenSolver add-in, you can solve the problem using the COIN-OR Cbc mixed-integer linear programming solver. Thus, there are no size limitations based on license restrictions. Students can build and experiment with large realistic-sized models. Another feature of OpenSolver is that it has a command, View LP Model, which shows the algebraic statement of the model. This is a nice feature for debugging and actually seeing the underlying constraints and objective function in an easily readable format. Although built on COIN-OR software, OpenSolver is not available at the COIN-OR website; it must be obtained at http://opensolver.org/.
Martin, Kipp: Tutorial: COIN-OR: Software for the OR Community, Interfaces 40(6), pp. 465–476, INFORMS 2011
http://interfaces.journal.informs.org/cgi/reprint/40/6/465 (subscription required)
OpenSolver is moving from the GPL to the Common Public License (CPL), the license favoured by the COIN-OR community. We’ll be releasing a new version shortly (with a few minor improvements) under this license.
In response to a user request, OpenSolver has been upgraded to version 0.982. This new version can handle larger problems with more than 32,000 variables and/or constraints. However, such models will be very slow to build. Andrew
OpenSolver has been upgraded to version 0.98 (still beta). This version includes bug fixes associated with quick solves (one GUI related, one that fixes the handling of multi-area ranges, and checks that the user is on the same sheet and workbook as that used to initialise the quick solve), and also improvements so that OpenSolver dynamically resizes its arrays to handle large problems (assuming everything fits in memory). All feedback appreciated… Andrew
Mike Trick, who visited New Zealand a few years ago, has blogged about OpenSolver. This has generated an interesting discussion about the GPL license, and whether this will limit what people want to do with OpenSolver. I’ve been having similar discussions with Ted Ralphs, the CBC maintainer, and Stu Mitchell of PULP fame. If anyone wants OpenSolver to be available under another license, then please let me know.
As well as all the contributions Mike made to OR in New Zealand during his stay, I also have to thank him for his Travelling Umpire Problem (TUP) which kept my Heuristics class very busy.
I hadn’t come across Larry’s IEOR Tools site before following the link on his OpenSolver comment. He too has written about OpenSolver. He’s created an interesting site with a good open source emphasis that I’ll be visiting more often.
Some of you may have arrived at this site by clicking on a Google ad. This is an experiment that’s possible thanks to the free Google credits provided by our GoDaddy hosting plan. On our first day we’ve had 5 click-thru’s, all for a total cost of nz$1.20 a day!
OpenSolver has now moved from wordpress.com over to our GoDaddy hosted site. It took a while (longer than I’d expected, and with too many GoDaddy hiccups), but it is now up and running. Enjoy. Andrew
Better checking of parameters; better handling of Escape during long CBC runs (no DoEvents now, and a new dialog). Fixed bug in the “Last open model in CBC” where OpenSolver was waiting for CBC to close (but still allowing events to be handled, including sheet edits etc.)
Updated OpenSolver. Added a fix for sheet names with spaces, and for the definition of parameters. Added new commands to (1) Solve LP relaxation, and (2) to open CBC command line. Also added improved support for cancelling long CBC runs. A new .zip file has been uploaded. Enjoy. Andrew
Welcome to OpenSolver, the Open Source linear and integer optimizer for Microsoft Excel. This is our first release of OpenSolver.