Optimization

From Heureka Wiki
Revision as of 13:03, 20 January 2010 by Peder (talk | contribs) (→‎Settings)
Jump to navigation Jump to search


About the optimization tool

The in-built optimization tools is for formulating and solving LP and MIP problems. It is basically a graphical user interface to the ZIMPL optimization modelling language. For solving a problem, external third-party solvers are used and directly linked to the optimization tool. Currently, the solvers available are

  • LPSolve, which is freely available, and
  • ILOG CPLEX, which is a very efficient, state-of-the-art solver. However, it is commercial and requires that the user has a licence.

The linking to SCIP/Soplex is currently under development.

The optimization model is linked to a Heureka-formatted SQL Server database used for storing input data, simulation data, and result data. This enables a seamless integration with the input data required by the optimization model, as well as direct presentation of optimization results in the form of tables, graphs, and maps. This simplifies the analysis and visualization of scenarios or plans of forest development and outputs.

As an alternative to the integrated optimization tool, an AIMMS model has been developed, which may be more suitable for a OR researcher or the very advanced user who needs maximum flexibility or maximum optimization performance. This model is also linked to the same database, but is run as a separate application. It also requires an AIMMS licence.

Instructions

Settings

Applying a LP-optimization model in forest management planning, integer solutions are sometimes of interest. A stand is usually regarded as a treatment unit to be completely treated according to a certain treatment in a certain period. This might be of special interest when it comes to short term-planning, i.e. what to do now and in the next year - couple of years.

The most straightforward way to obtain integer solutions is to allow only integer values of the decision variable, i.e. constrain the range type of xi, j to "Binary". However, this might lead to infeasible solutions. Another way is to round off to closest integer value (0 or 1), hence forcing the results to be a set of complete treatment programmes for each stand in the analysis area. In menu "Optimization" > "Settings...":

  • The General-tab allows the user to, e.g., selecting "Round to integer solution". Do observe that this is done after solving the optimization problem. Any results shown in the output window will not be rounded off (except the decision variable, with its actual value within parentheses). Results derived from the result database will however be of integer solutions, if this was selected. Optimization results are saved to the database by pressing the "Save"-button in the optimization model builder-window. As an alternative to rounding off, the "Mip Gap" gives an opportunity to accept a solution not certainly optimal. A relative gap of 1% imply that the solution might be one percentage from the optimum. An absolute gap is defined in the same unit as the objective function. The "Time Limit" defines the time, in seconds, for the optimization model to search for a feasible solution.
    • Relative mip gap: Relative optimization tolerance. The optimization algorithm stops when an integer solution is quaranteed to be within this percentage of the true optimal solution.
    • Absolute mip gap: Absolute optimization tolerance (not available in Lp_Solve). The optimization algorithm stops when an integer solution is proven to be within this absolute difference of the optimal solution.
    • Time limit: The maximum time for the solving a problem. If the time limit has been passed but an optimal solutions has not been found, the best solution found is returned. For difficult problems it is possible that no feasible solution is found.
    • Round to integer: If check, decision variables are rounded to the nearest 0/1 integer value.
  • The SCIP/SoPlex Settings-tab: Here you select the SCIp/SoPlex binary file (.exe) that you must have on your disk, see Optimization.

Adding a variable

Adding a parameter which is linked to a state or revenue variable

  1. In the Optimization Model window, right-click in "Parameters" section and Select "Add new parameter"
  2. Type a name, for example "pulpWood" (without apostrophes)
  3. Let "Heureka result variable" be selected
  4. Click Next
  5. Select Financial Value > PulpWood Volume Total (if this is the variable you are interested in)
  6. Click Finish

To check what Heureka variable a certain parameter is linked to:

  1. Select the parameter
  2. In the Properties window for the parameter (under the syntax window), under Databinding > ResultProperty, you can see what Heureka variable the parameter is bounded to. If you click on it you can change the binding.

Adding a function

Sharing and downloading models