Using a Solver Add-on Engine
With Analytica Optimizer 4.0, it is possible to add-in any external optimizer engine that is supported by Frontline solver. On different optimization problems, some engines may outperform others. These engines can be purchased directly from Frontline and added into an existing Analyica Optimizer license. Alternatively, Lumina may act as a reseller.
Available External Engines
The prices shown are approximate prices charged by Frontline for each engine license, not including annual support charge. See [|Solver Pricing] for more details.
- Xpress LP/MIP only ( ~$6K)
- Xpress LP/QP/MIP ( ~$8K)
- Knitro (NLP) ( ~$4K)
- Mosek SOCP ( ~$4K)
- Mosek SOCP/NLP ( ~$5K)
- OptQuest ( ~$2.5K)
Licensing for Analytica and Excel
Suppose you have a license for Analytica Optimizer 4.0 and a license for Frontline Solver 7.0 for Excel. If you purchase (in addition) one license for an external engine, such as Knitro, then that single license gives you access to Knitro from both Analytica Optimizer and Excel. [ Note: I am pretty sure this is the case, but we may need to verify with Frontline ]
How to install
Analytica Optimizer 4.0 or later must be installed before an external solver engine can be added in.
To install a frontline engine for use with Analytica Optimizer 4.0, you will need the following items:
- The engine add-on installer (or at least the DLL file containing the engine add-on).
- A full file path to the location where the engine DLL will be installed.
- The name of the external engine.
- The license for the external engine, provided by Frontline as a Solver.lic file.
- The location of your Analytica installation, [ANALYTICADIR], usually C:\Program Files\Lumina\Analytica 4.0
Steps:
1. Copy or install the external engine files. (Note the full path to the DLL file for step 6 below).
2. Append the license lines from item D above to the file [ANALYICADIR]\Solver.lic. You can use a text editor for this. Be extra careful not to delete any lines already in [ANALYTICADIR]\Solver.lic.
3. Run RegEdit.exe, navigate to:
HKLM/Software/Lumina Decision Systems/Analytica/4.0
4. Create the SolverEngines subfolder (if not already present), and inside it, create a string value with the name of your engine (item C above). Enter the fully qualified file path to your external engine DLL as the value for this key. The following screen shot shows an example of what your RegEdit may look like when done:
Using an External Engine
Once an External engine is installed, you select this engine from LpDefine, QpDefine or NlpDefine by specifying the optional Engine parameter, e.g.
NlpDefine( ... , Engine: "Knitro" )
You can list the set of engines installed on your system using:
SolverInfo( Item: "AvailEngines" )
When solving a particular optimization problem, it may be necessary to specify various parameters to tune the search. Some parameters may be unique to individual solver engines. To access the list of all settings for an engine, use (shown for the Knitro example):
SolverInfo( Engine: "Knitro", Item: ["Defaults", "MinSetting", "MaxSetting"] )
This returns an array indexed by a local index, .Parameters, also showing the default value and the range of possible parameter values. Normally, you will want to modify only a couple settings from their default value (out of the couple dozen settings typically exposed by each engine). To modify these, set up an index having the values you intend to modify (this will be a subset of the .Parameters index returned in the previous call), and then set up a table based on this index having the new values. It is convenient to use a self-indexed table for this, as in the following screen shot:
Enable comment auto-refresher