OpenSolver ChangeLog

Download as xlsx, pdf, or txt
Download as xlsx, pdf, or txt
You are on page 1of 15

OpenSolver Release Notes

TODO:
1/

2/

Convert constants and formulae into the user's locale before displaying them in the Model dialog. OpenSolver currentl
locale into the internal US-locale on entry, but does not do the reverse on display. We need to put formulae into a cell,
As part of this, record in CConstraint a RHS either as a range, a value, or 'something else'. Then we can localise each of
Pipe the CBC output so that it is visible to the user; see
http://www.vbforums.com/archive/index.php/

Version 2.6
10/8/2014
Add support for Office 2011 on Mac - nearly all features supported
Add support for local COIN-OR non-linear solvers
Resolve bugs introduced by system-locale settings
NEOS solvers write AMPL files to disk before sending to NEOS. These can be used to run the model locally
Bugfixes for non-linear NOMAD solver
Upgrade NOMAD to v3.6.2
Bugfixes for NEOS solvers
Version 2.5.4 alpha
NOMAD bug fixes for when errors are encountered
Version 2.5.3 alpha
Add support for NOMAD in 64-bit Office.
Version 2.5.2 alpha
Fix memory bug causing Excel 2013 to crash when using NOMAD
Non-linear NEOS bug fixes
Version 2.5.1 alpha
Stability fixes for NOMAD non-linear solver
Inclusion of 64-bit CBC with release - appropriate version is selected automatically
Re-add NEOS non-linear solvers to release with lots of bug fixes.
Bug fixes for sensitivity analysis methods.
Version 2.5 alpha

6/20/2014

Updated CBC.exe to version 2.8.8


Support for using the Gurobi LP/IP solver if a user has this installed on their machine
Support for cloud-based NEOS server for CBC solver
Support for solving non-linear models using both NOMAD and the cloud-based NEOS servers (assuming non-negativity currently do
Reporting of dual variables and sensitivity analysis
Many small bux fixes and feature enhancements

Version 2.4 beta


2/19/2013
Fixed bug for drawing the model with large rectangles that were over the excel limit.
The AutoModel now groups adjacent constraints of the same sense rather then an individual constraint for every single one
The model window has a 'Clear Model' button that clears all the information in the model. Unfinished models can also be saved no
Constraints can now refer to a column LHS and a row RHS (or vice versa)
Changed the model dialogue so you can now save uncompleted models
OpenSolver can now handle models with no objective
Trap bad numeric number errors
Has the option of solving with Gurobi rather then CBC. Individual read CBC or gurobi solved models
Can write sensitivity analysis either on the same sheet (with shadow price/reduced cost, possible increase, possible decrease) or o
Can put multiple bounds on variables and it writes them all in the cell rather then using multiple boxes on top of each other. For ex

Uses gurobi.bat from python and can get the sensitivity information for gurobi. Writes it to the same tables that are used for CBC
The model window can now show the name of a range if it has been defined in Defined Names and there is the option to turn this
OpenSolver now uses the environment variable "OpenSolverTempPath" as the path to save files to if this has been defined by the
Added beta functionality for a non-linear blackbox solver (NOMAD) which uses the models saved in solver and OpenSolver
Extra options in the menu: to AutoModel and Solve in one, to change solver, to view NOMAD log file, view gurobi solution file
Model Dialogue: New option to change Solver, New Options under sensitivity analysis
QuickSolve Example worksheet

Version 2.3 beta


10/29/2012
Fixed bugs for sheet names with spaces (a few) and with a single quote (which caused OpenSolver to fail with an error msg); thank
Added support for 64 bit versions of the COIN-OR CBC solver, allowing bigger models to be solved without CBC failing

Version 2.2 beta


9/24/2012
Fixed a minor bug leaving Excel in manual calculation mode if cbc.exe was missing
We now only look in the same folder as OpenSolver.xlam for the CBC file, but now look first for the 64-bit cbc64.exe if it exists and
Version 2.1 beta
9/5/2012
Added better handling of non-US systems, in particular decision variables with multiple areas in their range
(Thanks to Brenhard Aeschbacher for pointing out this bug on his German system.)

Version 2.0 beta


2/24/2012
Updated CBC.exe to version 2.7.6
Added an option to let the user turn off linearity checking
Improved the linearity checking to work around coefficients of many different magnitudes in which case numerical rounding can ca
Changed from displaying inequalities as < and > to and on screen, and <= and >= in message dialogs (9/8/2012)

Version 1.9 beta


12/5/2011
Fixed some display issues in the model dialog to give more compact displays, and force formulae RHS to be in absolute terms
Fixed a bug that saw models being wrongly built and then reported as non-linear (incorrectly) for some complex models if Excel ca
Fixed passing of multiple parameters to CBC if the user defines a parameter table on the sheet; previously only the last parameter
Deleted the DLL's downloaded in the .zip file which don't seem to be needed now that we statically link everything in CBC.
Version 1.8 beta
11/30/2011
Updated OpenSolver to properly handle models with an objective and constraints on multiple sheets
- this changed some of the formulae checking in the model dialog, but this still needs more work for better locale support
Fixed a bug stopping OpenSolver loading on 64 bit systems

Version 1.7 beta


11/11/2011
Added controls in the About box to allow easy installation and uninstallation
Added code to interact nicely with the forthcoming OpenSolver Studio
Improved OpenSolver for use from VBA:
- Build and Solve operations now throw errors (instead of popping up dialogs), allowing dialog-free usage from VBA
- Return codes are better handled (and Solver compatible)
- A new optional parameter has been added to RunOpenSolver to avoid dialogs even if infeasible/unbounded solutions are genera

Version 1.6 beta


9/29/2011
Fixed display and editting of an objective target value in the Model dialog.
Modified the Open Last Model in CBC functionality so that it passes any Solver options and any CBC solve parameters to CBC if the
Fixed a minor issue in Model dialog where a RHS could be entered for a new constraint if the user had previously had a Bin or Int c

Fixed a redim bug in the quick non-linearity checker for models with no constraints (which can happen if there is only a target obje
Added "Show optimisation progress while solving" (being Solver's "Show Iteration Results") to the OpenSolver options dialog
Improved operation of Options dialog, including proper sycnronisation of values when opened from the Model dialog
Better handling of the Excel 2010 "Simplex engine" option as used in parallel with "Assume linear model"
Fixed an error in the full non-linearity checker
Added output of dual prices onto the sheet; this is set using the Model dialog
Rearranged Model dialog to better fit new Duals option, and better use space around constraint listing
Better handling of the Excel solver options - OpenSolver now sets all these to sensible defaults
Better handling of users entering formulae in the Model dialog for a constraint RHS in terms of non-English localisation issues, but
Fixed a size limitation in Quick Solve, and converted Quick Solve to sparse matrix handling for better memory usage.

Version 1.5 beta


8/9/2011
Recompiled CBC with static linking to librarie so it works on machines without Visual Studio 2010
Fixed an issue where an objective or decision cells formatted as "currency" or "date" caused errors; we now use .Value2 (not .Valu
We now pass the solve options (such as tolerance) to CBC both when solving the problem, and when opening the last model in CBC
Properly pass Tolerance and RatioGap to CBC (in English) on internationalised systems
Version 1.4 beta
7/31/2011
Fixed 2003 menus
Fixed the issue with .HorizontalAlignment in 2003
http://www.officekb.com/Uwe/Forum.aspx/excel-prog/159706/Shape-TextEffect-HorizontalAlignment-throws-error
Moved the .Character lines before the .HorizontalAlignment line

Quick Auto Model with no spreadsheet open doesn't crash.


AutoModel window doesn't show if AutoModel works.
no text colouring in AutoModel.
If a Model is showing, and the user does a QuickAutomodel, but does not choose to show the Model, then the current Model displ
Clear the status bar after the AutoModel tool changes it.
Fixed an edge case with AutoModel relating to double-tracking cells.
Fixed a ref-edit related focus bug in Model tool that was causing some strange behaviour.
Added partial locale support. Entering number like 180,2 will work, but will display as 180.2
Uses spreadsheet internal to the OpenSolver add-in and Range.FormulaLocal to do a conversion.
Added an Options window, available under Model in menu, and from a button on the Model form.
Added different locale support to Options window.
Tolerance stored internally as 5.1
So for output, CStr(5.1) = "5.1" (English) and "5,1" (French) - fine!
for input, originally had CStr(Val(txtTol.Text) / 100)
But Val doesn't handle 5,1 and CStr() gives locale version - bad, because we are putting it into a name.
So use CDbl "5.1"->5.1 & "5,1"->5.1
And Str() 5.1 -> "5.1" regardless of locale
Added error catching in Solve for int/bin constraints on non-decision variable cells.
Added error catching in Visualiser too.
Added warning message to Model tool.
Updated CBC to version 2.7
Added custom icons for toolbar.
Debug.Prints commented out

Version 1.3 beta


7/7/2011
Now completely independent of Solver - GUI for building models created.
Menus for Excel 2003 added
Excel 64-bit support
Various bug fixes
Version 1.2 beta
3/8/2011
OpenSolver now treats empty cells as containing the value zero, which mimics Solver's approach

Version 1.1 beta


3/4/2011
This version is the result of work over the New Zealand summer by Engineering Science students Kathleen Gilbert and Iain Dunning
The code was subsequently tested and re-factored by Andrew Mason
Changes include
Support for much larger problemns
Sparse A matrix handling
Much faster data transfer between VBA and Excel
Using Ranges in the VBA instead of arrays for efficiency
New model display routines to handle large problems
Handling of Excel calculations that didn't complete; we observed these on large models (70,000 variables)
We have a problem submitted by a user with over 70,000 variables and 70,000 constraints that we can now solve (alth
Correct Handling of Assume Non Negative
Models no longer require "Assume Non-Negative" to be turned on
If it is, then we only add 0 lower bounds to variables that do not have an explicit lower bound set in Solver
Note: Excel 2010 and 2007 seem to handle this differently when a single range includes decision variables and other ce
Supprot for Excel 2010
We recognise choosing the Simplex engine as being equivalent to Assume Linear
We present version-specific dialogs to easily turn on one of these options
Reporting of Infeasible solutions
If CBC reports the solution as infeasible, we load it in anyway to show the user
Better Model and Range Checking
Excel allows ranges (eg for the decsion variables) that count individual cells multiple times; we now 'fix' such ranges
We check for merged cells in the decision variables, and handle them correctly (allowing them if possible; Solver doesn
We have improved our model error reporting (which we now think is more useful than Solver's)
We check for constraints that don't vary with the decision variables; if we find them, we check that they are satisfied, a
Better checking of s/sheets that contain errors in model cells.
We now require all cells in constraints to contain numeric values. For example, a blank RHS gives an error (even tho' So
Auto Model
Added an AutoModel feature to build Solver models more easily.
Added improved detection of decision variables when the obj fn cell has dependents
This was coded by Engineering Science student Iain Dunning
Non-Linearity Checker
We now check that the solution given by CBC gives the expected LHS and objective function values when loaded into th
We also provide a more extensive nonlinearity check that the user cxan run if the model appears to be non-linear; this
Support for Models with Constraints on Other Sheets
Our View Model will now show constraints on sheets other than the active sheet
Formulae in the Right Hand Side
OpenSolver can how handle a constraint with a formula (such as "=2*B1") entered as the right hand side
Bug Fixes
OpenSolver used to crash when checking constraints that did not vary with the decision variables; this has been fixed

Test Problem Bank


We now have a suite of test problems that we use for testing OpenSolver.
TODO

Excel's UNION method does not eliminate all overlaps; we need to determine the consequence of this (if any); see Prop
Improve non-linearity check so that decision variables are not put back to 0 (which currently stops us seeing product te
Improve non-linearity check so that the model is not rebuilt multiple times
Improve the AutoModel code to be more robust

Version 0.982
17-Aug-10
In response to a user request, OpenSolver has been upgraded to version 0.982. This new version can handle larger problems with m

Version 0.98

16-Jul-10

OpenSolver has been upgraded to version 0.98 (still beta). This version includes bug fixes associated with quick solves (one GUI rel
and workbook as that used to initialise the quick solve), and also improvements so that OpenSolver dynamically resizes its arrays to
Version 0.95

6-Jun-10

Better checking of parameters; better handling of Escape during long CBC runs (no DoEvents now, and a new dialog). Fixed bug in t
to be handled, including sheet edits etc.)
Version 0.95

6-Jun-10

Updated OpenSolver. Added a fix for sheet names with spaces, and for the definition of parameters. Added new commands to (1)
long CBC runs.

Initial Version
17-May-10
Our first public release.

m in the Model dialog. OpenSolver currently converts new formulae from the users
display. We need to put formulae into a cell, and read them back, to do this conversion.
mething else'. Then we can localise each of these more efficiently.
p://www.vbforums.com/archive/index.php/t-47843.html

ervers (assuming non-negativity currently doesn't work correctly for non-linear NEOS, all variables are assumed positive, not just unconstrained ones)

vidual constraint for every single one


del. Unfinished models can also be saved now.

t, possible increase, possible decrease) or on a new sheet like solver does. Choice can be made in the model dialogue. Can also choose to overwrite old
g multiple boxes on top of each other. For example 7,5.

it to the same tables that are used for CBC


d Names and there is the option to turn this on and off ( thanks Andres Sommerhoff for your help adding in this functionality)
save files to if this has been defined by the user (thanks again Andres Sommerhoff)
dels saved in solver and OpenSolver
OMAD log file, view gurobi solution file

OpenSolver to fail with an error msg); thanks to Fenny for this bug report.
o be solved without CBC failing

first for the 64-bit cbc64.exe if it exists and the systems is 64 bit

e areas in their range

des in which case numerical rounding can cause problems


message dialogs (9/8/2012)

formulae RHS to be in absolute terms


rrectly) for some complex models if Excel calculation mode was set to manual.
he sheet; previously only the last parameter was passed.
we statically link everything in CBC.

more work for better locale support

g dialog-free usage from VBA

f infeasible/unbounded solutions are generated

and any CBC solve parameters to CBC if they are available in any current worksheet
if the user had previously had a Bin or Int constraint selected

hich can happen if there is only a target objective value)


ults") to the OpenSolver options dialog
opened from the Model dialog

erms of non-English localisation issues, but this still needs work


ing for better memory usage.

aused errors; we now use .Value2 (not .Value) to get cell values.
em, and when opening the last model in CBC. This is useful for checking the CBC arguments.

tEffect-HorizontalAlignment-throws-error

ow the Model, then the current Model display is hidden.

al to do a conversion.

are putting it into a name.

e students Kathleen Gilbert and Iain Dunning

arge models (70,000 variables)


000 constraints that we can now solve (although it takes hours!)

plicit lower bound set in Solver


nge includes decision variables and other cells; we follow the 2007 approach

multiple times; we now 'fix' such ranges


ctly (allowing them if possible; Solver doesn't allow any)
useful than Solver's)
nd them, we check that they are satisfied, and if not report this explicitly to the user

ple, a blank RHS gives an error (even tho' Solver allows this, but sometimes puts in zero's)

bjective function values when loaded into the s/sheet


n if the model appears to be non-linear; this can highlight non-linearities on the model

entered as the right hand side


the decision variables; this has been fixed

ne the consequence of this (if any); see ProperUnion method


(which currently stops us seeing product terms!)

w version can handle larger problems with more than 32,000 variables and/or constraints. However, such models will be very slow to build. Andrew

es 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
OpenSolver dynamically resizes its arrays to handle large problems (assuming everything fits in memory).

Events 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

f parameters. Added new commands to (1) Solve LP relaxation, and (2) to open CBC command line. Also added improved support for cancelling

sumed positive, not just unconstrained ones)

del dialogue. Can also choose to overwrite old sensitivity sheets or to make new ones

in this functionality)

h models will be very slow to build. Andrew

ecks that the user is on the same sheet


).

for CBC to close (but still allowing events

added improved support for cancelling

You might also like