Optimizing with Uncertainty
Analytica uses Monte Carlo simulation to analyze uncertain quantities. Probability distributions are represented as sample arrays that include the system index Run. Each element of the Run index represents a sample of possible values for uncertain quantities, according to the chosen probability distribution. As an array dimension, Run propagates through the moadel in the same way as any other index. How can uncertain quantities be combined with optimization and how should we interpret results of uncertain optimizations?
There are two basic approaches to combining uncertainty with optimization in Analytica.The appropriate approach depends on whether the decision maker must commit before or after the uncertainty is resolved. These lead to a Monte Carlo simulation within a single optimization (the Stochastic approach) or an optimization within each Monte Carlo scenario (the preposterior approach). For convenience, we label these FAST and MOSS, respectively.
- Optimize on Fractiles or Averages Stochastically (FAST)
Reduce the Run index in the Objective and Constraints by using summary statistics. In the Airline example, Module 3, we maximize the expected value of the objective:Mean(Profit). This collapses the Run dimension so that there is a scalar objective, and hence only one optimization. Fractile statistics are also commonly used instead of expected value. You can summarize the Objective as the median (50% fractile) or any other fractile value using the GetFract() function. For example, a constraint might require the 5% fractile for Profit to be greater than a certain value. In any case, it is important to reduce the Run index in the Objective as well as all Constraints when performing Stochastic Optimization.
- Multiple Optimizations of Separate Samples (MOSS)
Treat Run as an extrinsic index, abstracting it over the optimization. The result is a Monte Carlo sample of solutions. Each solution represents optimum decisions corresponding to the input values of an individual Monte Carlo sample. The MOSS method establishes the range of decision values that should be considered given the uncertainty. But it assumes that the actual decision will be made a posteriori, or after the uncertainty is resolved. Even though Analytica’s Intelligent Arrays make setting up MOSS optimizations much easier than in other environments, the method remains computationally intensive on all platforms. The sheer number of optimizations (equal to the sample size) may prevent the computational stone from rolling along as fast as you would like it to. It is always important to choose the correct sample size when using the MOSS method. For NLPs, you should also avoid unnecessary computation by identifying context variables. (See next section).
Enable comment auto-refresher