Optimization

Optimization can be applied in several ways and is important to a range of theoretical and practical problems. For instance:

·         The adjustment of primitives to minimize the value of some other primitive (for instance, the cost of a plan or action)

·         The adjustment of primitives to maximize the value of some primitive (for instance, the success rate in a campaign)

·         The adjustment of primitives in order to make the results of the simulation more closely match theoretical or historical measurements

All of the above can be done using Simgua’s built-in optimization features.  The following image displays an example optimization configuration window.

::::Desktop:Picture 2.png

Optimization Configuration in Simgua

The steps to carrying out an optimization are as follows:

1.      Select the primitives that will be modified in order to optimize the value of another primitive. These are called the source primitives.

2.      Define the boundaries for the search space for the values of the source primitives.

3.      Set the optimization accuracy for each of the source primitives. The optimization algorithm will continually attempt to improve the value of the goal primitive by changing the value of the source primitives until Simgua believes that the true optimum values of the source primitives are within the accuracy distance from the currently selected optimum.

4.      Select the goal primitive. This is the primitive whose value you want to maximize or minimize.

5.      Select the type of optimization. Specifically whether to maximize or minimize the value of the goal primitive and whether to look at the final value of the goal primitive or the sum of all the values of the goal primitive over the course of the simulation.

The optimization features within Simgua are very easy to use[7]. By adjusting the equation for your goal primitive you can optimize multiple primitives at once or minimize the deviations from theoretical values. It is important to note that the Simgua optimization algorithm is sensitive to local minimums or maximums. If your solution space contains such phenomena, then the result return by the optimization algorithm might be a local optimum, not the global optimum.

Example Two Variable Optimization Solution Space

On the Advanced tab you will see find few additional optimization options that can be used to fine-tune and improve the results of your optimization.

·         Extra Runs with Random Start: Simgua starts each optimization at the center of the constraint space for your source primitives. If you suspect that there are multiple local optimums in your model, you can instruct Simgua to carry out additional optimization runs with random start positions. Simgua will report the optimums of each of these runs so you can determine if local optimums are being found.

·         Maximum Number of Iterations: There are two terminating conditions for an optimization run. One is that the “step size” of the optimization run has fallen below the specified accuracies. This is the normal and desired case. However, sometimes the optimization algorithm will have difficulty converging on a solution. In this case, the step size might fail to reach the desired accuracy in a reasonable time and so there is a second constraint that will terminate the optimization early if the number of iterations within the algorithm has exceeded this threshold.

·         Step Size Reduction Factor: This is the factor by which the step size is reduced if the algorithm cannot find any better alternative points than the current optimum point. A smaller number will result in a more aggressive optimization that usually completes more quickly. A larger number will result in a slower optimization but one that is more likely to find the global optimum rather than a local optimum.