Discrete Constraints

Top  Previous  Next

 

Note that this feature, while easy to use, is not yet integrated into the interface. Therefore you must implement it by editing control (.voc) files in a text editor. If you use the editors in the Simulation Control dialog, the DIS option settings may be lost.

 

Optimization control files now recognize tolerances on variables that are constrained to discrete values (e.g. integers). This is implemented by setting a DIS=tolerance flag (like the existing ABS and FRAC tolerance settings), as in:

 

:OPTIMIZER=Powell

<other options>

-2.048<=x[i]=0<=2.048|DIS=.1

 

Parameter values will then be rounded to the nearest integer multiple of the tolerance before simulations are executed, and the optimizer will not waste time executing simulations that are below the resolution of the tolerance. If necessary (as above), the minimum and maximum bounds on the parameter, and the initial guess, will also be rounded off.

 

Bear in mind that integer or discrete constraints may make the problem fundamentally harder to solve, in part because the discrete values create surface roughness which the optimizer may have difficulty navigating. Random multistart optimizations or simulated annealing are likely to be needed.