next up previous contents
Next: Usage Example Up: Optimization from Matlab Previous: Details on JEInterface   Contents

Optimization Options

Vital for the usage in Matlab are the termination criteria of the optimization run. We adopt some parameters from the builtin optimset structure in analogy to the Matlab function fminsearch. To find out more about optimset, check the Matlab documentation. The JEInterface options provided are listed in Tab. 1. Display triggers output to the Matlab console during an optimization process. While 'final' only shows final optimization results, 'notify' corresponds to ``show every k-th iteration'' while 'iter' corresponds to ``show all iterations'' compared to the GUI options. The default is 'off'. An optimization run terminates if MaxFunEvals has been reached or the best solution changes both in domain and codomain less than TolX and TolFun for a certain number of evaluations, which may be set using TolXEvals and TolFunEvals, respectively. If TolX is positive, the run is seen as converged, if the best individual (the best parameter set) does not change more than the threshold defined by TolX for a number of TolFunEvals evaluations. Convergence in the fitness domain is defined in the same way using TolFun and TolFunEvals.

If no options are defined through the constructor, the default values for TolX and TolFun are the same as in Matlab ($ 10^{-4}$ ), while the default value for MaxFunEvals is usually $ 10^{4}$ . You can check the options by calling getOptions for a JEInterface instance. In analogy to fminsearch, the three criteria will be logically combined as in $ (MaxFunEvals\;\mathrm{OR}\;(TolX\;\mathrm{AND}\; TolFun))$ , meaning that reaching MaxFunEvals is a hard stopping criterium, while TolX/TolFun must be both fulfilled to stop the run, if MaxFunEvals has not been reached. To change options on an existing object JI, call for example JI=setOpt(JI, 'TolFun', 1e-7) to set the TolFun convergence threshold to $ 10^{-7}$ . If you don't want to regard convergence and just have the optimization perform a certain number of evaluations, set TolX and TolFun to zero, e.g. by typing JI=setOptions(JI, makeOptions(JI, 'TolX', 0, 'TolFun', 0)). To perform not more than $ 10^{5}$ and stop earlier if the best solution's fitness has not changed by more than 0.1 for 1000 evaluations, set MaxFunEvals=$ 10^{5}$ , TolX=0, TolFun=0.1 and TolFunEvals=1000. Be aware that at least one termination criterion must be defined through the options, or the optimization will not start.


next up previous contents
Next: Usage Example Up: Optimization from Matlab Previous: Details on JEInterface   Contents
Marcel Kronfeld 2011-05-05