In order to run an optimization in GoldSim, you first need to select an objective function that is to be maximized or minimized. The objective function can be any output in your model. The optimization is carried out based on the final value (the value at the end of the realization) of the objective function.
The objective function can be a simple computed measure (e.g., impact, cost) or a complex expression (e.g. “stakeholder satisfaction” or “risk-weighted net present value”). In most cases, it will represent either a cumulative value (e.g., total accumulated cost), a peak value (e.g., the highest water level observed during the simulation), or a valley (e.g., the minimum amount of money in an account during the simulation). Cumulative values can be computed using Integrators, Reservoirs and Pools in GoldSim, while peaks and valleys can be computed using Extrema elements. As a result, the objective function is often a function of one or more of these types of elements.
After you have defined the objective function, you need to identify one or more optimization variables (Data or Stochastic elements in your model) that can be adjusted by GoldSim to optimize the objective function. Optimization variables often represent “decision variables” in your model – variables that you have direct control over (e.g., how much money to spend, when to implement something, the properties of a facility that you are simulating). GoldSim requires you to specify an initial value (an initial guess) for each variable, as well as an upper and lower bound between which the variable will be allowed to range. You can also specify whether the variable is to be limited to integer values.
Obviously, the objective function should be dependent (either directly or indirectly) on all of the optimization variables.
You can also define a constraint that must be met when selecting optimization variables (such as not exceeding a regulatory limit, staying within a financial budget, or never having a combination of optimization variables that would be unacceptable for some reason). GoldSim will seek the optimal value of the objective function by varying the optimization variables within their bounds and will dismiss any solutions which do not meet the specified constraint condition.
Once the objective function and optimization variables have been defined, and any required constraints specified, the optimizer can be run. The optimization is based on Box’s complex method.
Note: Box’s complex method is described in: Box, M.J. (1965). “A new method of constrained optimization and a comparison with other methods,” The Computer Journal, Volume 8, Issue 1, pp. 42-52.
Box’s complex method begins by developing an initial “complex,” which is a set of valid solutions that meet all of the requirements specified by the user. This complex contains twice as many valid solutions as the number of optimization variables. Once the initial complex has been developed, the algorithm searches the solution space iteratively, replacing the least optimal members of the complex with more optimal ones until the solution converges or GoldSim determines that convergence cannot be achieved (in which case a warning message will be displayed).
When you complete an optimization run, GoldSim provides options for copying the optimal values of the optimization variables to the element definitions before carrying out any further simulations.
Learn more about:
Defining the Optimization Settings