MTDATA – Phase Diagram Software from the National Physical Laboratory

 

 

 

Home 

News 

Products 


Training and Support 

FAQs 

Links 

Agents 

Other Services 

 

Services 

 

 

OPTIMISE

Function:

The OPTIMISE command is used to initiate an optimisation run in which thermodynamic parameters marked as OPTIMISED or LINKED are adjusted automatically to minimise the differences between calculated properties and experimental values (see LIST) as defined in an experimental data file (see DEFINE). Options allow different ALGORITHMs, and TOLERANCEs to be selected for the optimisation process, the overall number of comparisons made between calculation and experiment (MAXIMUM_FUNCTIONS) to be limited and a method for monitoring progress (by means of TEXT or GRAPHICAL output) to be specified. In the case of GRAPHICAL monitoring a frequency for updating the output can be specified.

Parameters:

algorithm

maximum_functions

output_type

tolerance

update_graphics

Defaults:

algorithm=lcqndf

maximum_functions = 100

output_type = graphical;

tolerance = 0.01

update_graphics = 1

Examples:

optimise !

optimise algorithm = upolyt toler = 0.001 out = graph !

opt alg = lsqndn max = 500 !

optimise max = 0 !

Parameter values:


ALGORITHM

ALGORITHM takes the values LCQNDF / UPOLYT / LSQNDN

ALGORITHM is used to select the algorithm to be used in subsequent optimisation runs, that is to say the mathematical method employed to determine the best possible values for OPTIMISED parameters. Options are selected by entering the keywords LCQNDF, UPOLYT and LSQNDN. The default, if no other choice is made, is LCQNDF.

The LCQNDF and LSQNDN algorithms work best when the parameters being changed are reasonably close to their final values.  UPOLYT is a often a better choice when the parameters being changed are far from their final values.

LCQNDF  requests use of the LCQNDF (Linearly Constrained Quasi Newton Function only) algorithm. This algorithm is used by default.

UPOLYT   requests use of the UPOLYT (Unconstrained POLYTope) algorithm. This algorithm is recommended for general use rather than LCQNDF or LSQNDN.

LSQNDN  requests use of the LSQNDN (Least Squares No Derivatives Needed) algorithm. This works in a similar way to LCQNDF but also makes available a detailed statistical analysis of each optimisation run.

MAXIMUM_FUNCTIONS

takes the value <number>

MAXIMUM_FUNCTIONS is used to specify a maximum number of times for the sum of squares of errors, minimised during an optimisation run, to be evaluated. The default value is 100. Setting too low a value may not allow enough scope for the best possible set of thermodynamic parameters to be found. Setting too high a value, especially with a small TOLERANCE, may lead to unnecessary calculations being performed to try an improve an already adequate result. The chosen number, a positive integer, should be entered after the MAXIMUM_FUNCTIONS keyword. For example:

optimise max_fun = 500 !

During an optimisation run results are reported, graphically or in text form, whenever a new lowest value for the sum of squares of errors is found, that is to say when a new iteration begins. Each iteration may involve more than one evaluation of the sum of squares of errors.

 

OUTPUT_TYPE

takes the values GRAPHICAL / TEXT

OUTPUT_TYPE is used to select whether the progress of subsequent optimisation runs is to be monitored graphically or by means of tables or intermediate parameter values output to the screen. It should be followed either by the keyword GRAPHICAL or by the keyword TEXT. GRAPHICAL is the default option. The tabular output generated by entering TEXT may be lengthy.

GRAPHICAL  generates graphs showing changes made to individual parameters during the course of each optimisation run and the effects of these changes on the sum of squares of errors being minimised. Plots are updated with a frequency requested using UPDATE_GRAPHICS.   

TEXT generates tables showing changes made to individual parameters during the course of each optimisation run and the effects of these changes on the sum of squares of errors being minimised. New tables are output with a frequency requested using UPDATE_GRAPHICS. Output may be lengthy.

TOLERANCE

takes the value <number>

TOLERANCE is used to specify a target accuracy to be achieved in optimisation runs. In the case of the LCQNDF and LSQNDN algorithms the value supplied is interpreted as a target accuracy for each thermodynamic parameter, expressed a fraction of its SCALE (see MODIFY). In the case of UPOLYT it is interpreted as a limiting value for the sum of squares of errors, minimised during each optimisation run.

The required TOLERANCE should be entered as a positive number immediately following the TOLERANCE keyword. For example:

optimise tolerance = 0.001 !

For most purposes there will be no need to change the default value of 10-5 adopted by the program. This is close to the lower limit of suitable values.

UPDATE_GRAPHICS

takes the value <number>

UPDATE_GRAPHICS is used to specify a frequency for updating the output, text or graphics, used to monitor the progress of optimisation runs. This is expressed as a number of iterations to be completed before each update, entered as a positive integer after the UPDATE_GRAPHICS keyword. For example:

optimise update 5 !

An iteration is completed each time a new lowest value for the sum of squares of errors, minimised during optimisation runs, is found. By default output is updated at the end of every iteration, that is to say UPDATE_GRAPHICS = 1.

Updated 4 August 2010