You can set up the Optimization Control file from the Toolbar or from the Simulation Control dialog. To start from the toolbar click on the optimization button to open the Optimization wizard. Complete the payoff definition as described above and then click on the Next button to set up the Optimization Control file. From the Simulation Control dialog click on the Ed... button to the right of the Optimization Control field. The Optimization Control dialog will appear a somewhat different depending on where you start it form, but the contents will be the same. It is shown started from the wizard here.
Filename
Filename is the name of the Optimization Control file. If no filename has previously been specified Vensim will use the model name or, when using the Simulation Control dialog query you for a name. You can type in a different name if you like, which case a new copy of the control file .voc will be saved. If you do this and that file already exists you will be asked if you want to overwrite it. You do not need to include an extension, Vensim will automatically add one.
Choose New File... allows you to choose a different Payoff Definition file to work with. When you click on this a File Selection dialog will open. Select the file you want to work with and its contents will replace those in the dialog.
Optimizer & MCMC Settings
Optimization Settings:The uses and meanings of the control parameters are discussed in Optimization Options and MCMC Options. They are all set in this dialog by either typing in a value of selecting an alternative from the dropdown list.
Currently Active Parameters lists the parameters to be searched over. The general parameter search definition takes the form
minval <= model constant = initial val <= maxval | toltype=tolerance
where minval is a number or model Constant that the search parameter can never be smaller than, model constant is the name of the parameter being searched over , initial val is a number specifying the starting value for the search, maxval is a number or model Constant that the search parameter can never be bigger than, toltype is FRAC or ABS (see FRACTIONAL_TOLERANCE and ABSOLUTE_TOLERANCE below for the meaning of this) and tolerance is a number. All of these except for the name of the parameter to be searched over are optional, though it is recommended to always specify a minimum and maximum value. If you do specify a tolerance, that value will override the global value specified below. Note that, except when doing an SVECTOR search, tolerance should be a positive number. For SVECTOR a negative number is used to signal movement from max to min. In any case the tolerance used is the absolute value of the number specified.
Delete Selected deletes the selected parameter.
Modify Selected brings the selected parameter into the editing boxes below.
Add Editing adds the contents of the editing boxes into the list.
The different fields in the currently active parameter are repeated in the editing fields below. Use the Select button to bring a model Constant into the editing window to specify it as a search parameter.
When you have a model constant in the editing box the base model value for that constant will be displayed below the editing box. This is helpful in defining a meaningful search range.
NOTE If you are using a model with subscripts, you can use subscript ranges when specifying the constants to be searched over. The resulting .out file will, however, list each of the subscript elements separately.
If you are directly editing the optimization control file, the search specifications have the same form as displayed in the Currently Active Parameter list.
Note: this feature is new as of 10.3 and still under active development, so please get in touch if you'd like to request improvements or extensions.
You can now specify priors directly in the parameter list.
•Choose the distribution from the dropdown menu, then populate any arguments needed.
•The arguments can be numbers or variable names.
•Normally a variable should be a constant; in any case it will only be evaluated at INITIAL TIME.
•Variables can be subscripted.
oThe subscripts on the right side argument must match the left side parameter, as in parameter[x] ~ PRIOR( argument[x] ), OR
oAn argument on the right can be used with a subscripted parameter on the left, as in parameter[x] ~ PRIOR(argument)
•Arguments on the right may also appear in the parameter list, for hierarchy (hyperparameters). These relationships are not checked for circularity.
Prior Distributions
BETA( alpha, beta ) - The beta distribution, stretched to the range [Min,Max]. Normally this will be used for the [0,1] interval.
NORMAL( mean, standard deviation) - The normal (Gaussian) distribution, truncated by Min and Max. You can implement a half-normal by setting Min=mean=0, in which case the standard deviation controls the scale.
LOGNORMAL( geometric mean, geometric standard deviation ) - The lognormal distribution, which is often an easy way to express the subjective assessment that parameter X is approximately equal to a (geometric) mean value, plus or minus a fraction given by the geometric standard deviation.
SCALE() - A noninformative log-uniform scale prior, contributing -LN(parameter) to the payoff.
UNIFORM() - A noninformative uniform prior, which is really the same as no prior in historic practice. However, it does contribute a density of 1/(Max-Min), which may have an effect on the absolute value of the payoff, or even affect its shape if Min or Max are parameters.
PERT() - The PERT distribution is a convenient way to use the existing min/start/max settings in the parameter list. The PERT distribution is a BETA distribution, scaled such that it spans the range from Min to Max, with a mode (most likely) value at Start value. The mean is then (Min + 4*Start + Max)/6
CAUCHY(median, mean absolute deviation) - The Cauchy distribution, a.k.a. Student's T with 1 degree of freedom, is a heavy-tailed distribution with undefined mean and variance. As for NORMAL, the range will be truncated by the Min and Max.
If this list doesn't include what you need, please get in touch, as we may be able to add it in a future release. In the meantime, you can write an equation for your prior, and include the variable as a *R payoff element.
Examples
NORM_QUALITY
specifies NORM QUALITY as a search parameter. It will use the value in the model equation (or in a .cin file) as its initial value, and allow searches over all values of the parameter.
FRAC ERR DISC[DESIGN]=.05
specifies FRAC ERR DISC[DESIGN] as a search parameter and uses .05 as the initial search condition.
0 <= FRAC ERR DISC[ASSEMBLY] = .1 <= .5
specifies FRAC ERR DISC[ASSEMBLY] as a search parameter, uses .1 as the initial search condition, and prevents Vensim from using values less than 0 or more than .5.
PERSONNEL = 10500 <= 100000 | ABS
would terminate based on the default absolute tolerance (as discussed in "Optimization Options" below).
PERSONNEL = 10500 <= 100000 |ABS = 3
0 <= FLOOR SPACE FRAC = 10
which assigns an absolute tolerance of 3 to PERSONNEL and a fractional tolerance of 10 to FLOOR SPACE.