Multiple objective function and constraint evaluation for OptionsMatlab

optjobparallel2 evaluates user defined objective and constraint functions in parallel. To evaluate the objective function the user must define two functions, the first which initiates the calculation of the objective function, and the second which determines the state of the job and, if complete, return the value of the objective or constraint functions.

The user-defined objective function called by optjobparallel2 to perform the job submission should conform to the following function prototype:

RETRIEVALID = objfun(VARS,PARAMS,U_CONS,L_CONS,DATA) where RETRIEVALID is an identifier used by retrieve the results, for example this may be a structure containing a number of fields. The only mandatory input argument is VARS, the other input arguments PARAMS, U_CONS, L_CONS and DATA are all optional.

This function must be specified in the OPTFUN field of the OptionsMatlab input structure.

A second retrieval function is be defined to determine whether the job has completed, and if so return the value of the objective function. This function must have the same name as the job submission function appended with '_parse2'. For example, when the objective function submission function is saved in the file 'objfun.m' the retrieval function must be saved in the file 'objfun_parse2.m'.

The retrieval function should conform to the following function prototype:

[EVAL,PARAMS,CONS,U_CONS,L_CONS]=objfun_parse2( RETRIEVALID) where RETRIEVALID is the identifier returned by the job submission function. EVAL is the value of the objective function (or empty if the job has not completed). The other output arguments PARAMS, CONS, U_CONS and L_CONS are all optional. CONS is the value of the constraints.

This function should determine whether the job has completed. If the job has completed the value of EVAL (and that of CONS) should be returned. If the job is still running the function should return an empty value for EVAL (i.e. EVAL = []), in which case the status of other jobs will be determined before the '_parse2' function is invoked again for this job. If the job has failed a suitable bad point indicator should be returned.

If the value of the constraints and the objective function are return by the same function the field 'OPTCON' should be set to equal 'OPTFUN'. Alternatively if the constraints are evaluated independently of the objective function the user may also define two separate functions to perform the job submission and to parse the constraints. In this case the functions indicated by the field 'OPTCON' should conform to the following function prototypes:

RETRIEVALID = objcon(VARS,PARAMS,U_CONS,L_CONS,DATA)

[CONS,PARAMS,U_CONS,L_CONS] = objcon_parse2(RETRIEVALID)

Copyright © 2007, The Geodise Project, University of Southampton