From 137ef279acdb6b80a16e1303e6f68bd593f7003c Mon Sep 17 00:00:00 2001 From: Marcel Kronfeld Date: Thu, 11 Sep 2008 13:30:05 +0000 Subject: [PATCH] Cosmetics for the Matlab-Interface. --- resources/MatlabInterface/@JEInterface/optimize.m | 14 +++++++++----- .../MatlabInterface/@JEInterface/optimizeWith.m | 10 +++++++--- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/resources/MatlabInterface/@JEInterface/optimize.m b/resources/MatlabInterface/@JEInterface/optimize.m index b5d812a9..b07cbb12 100644 --- a/resources/MatlabInterface/@JEInterface/optimize.m +++ b/resources/MatlabInterface/@JEInterface/optimize.m @@ -27,7 +27,10 @@ if ((nargin == 2) || (nargin == 3)) xTol = int.opts.TolX; maxEvals = int.opts.MaxFunEvals; fTol = int.opts.TolFun; - + if (ischar(xTol)) ; xTol = str2num(xTol); end; + if (ischar(maxEvals)) ; maxEvals= str2num(maxEvals); end; + if (ischar(fTol)) ; fTol = str2num(fTol); end; + import eva2.server.go.operators.terminators.PhenotypeConvergenceTerminator; import eva2.server.go.operators.terminators.FitnessConvergenceTerminator; import eva2.server.go.operators.terminators.CombinedTerminator; @@ -39,15 +42,16 @@ if ((nargin == 2) || (nargin == 3)) % values of 1e-4 in . Thats what we do as well if (isempty(int.opts.TolX)) ; xTol = 1e-4; end if (isempty(int.opts.TolFun)) ; fTol = 1e-4; end - + + evalsForConv=100; % construct Terminators if ((xTol > 0) && (fTol > 0)) % both criteria are given, use combination - convTerm = CombinedTerminator(FitnessConvergenceTerminator(fTol, 100, 1, 1), PhenotypeConvergenceTerminator(xTol, 100, 1, 1), 1); + convTerm = CombinedTerminator(FitnessConvergenceTerminator(fTol, evalsForConv, 1, 1), PhenotypeConvergenceTerminator(xTol, evalsForConv, 1, 1), 1); else if (xTol > 0) % only phenotye convergence - convTerm = PhenotypeConvergenceTerminator(xTol, 100, 1, 1); + convTerm = PhenotypeConvergenceTerminator(xTol, evalsForConv, 1, 1); else if (fTol > 0 ) % only fitness covnergence - convTerm = FitnessConvergenceTerminator(fTol, 100, 1, 1); + convTerm = FitnessConvergenceTerminator(fTol, evalsForConv, 1, 1); else convTerm = 'undef'; % signal that there is no terminator yet end diff --git a/resources/MatlabInterface/@JEInterface/optimizeWith.m b/resources/MatlabInterface/@JEInterface/optimizeWith.m index 2f64df12..40fe20b2 100644 --- a/resources/MatlabInterface/@JEInterface/optimizeWith.m +++ b/resources/MatlabInterface/@JEInterface/optimizeWith.m @@ -23,6 +23,9 @@ if (nargin < 2) error('invalid number of arguments!'); end +int.optParams = []; +int.optParamValues = []; + if (nargin == 2) % standard case, just call optimize retInt = optimize(int, optType); @@ -44,7 +47,8 @@ else % load parameter/value pairs into an array parNames(i) = cellstr(varargin{nextMem}); parValues(i) = {varargin{nextMem+1}}; -% if (~ischar(parArr(i))) + +% if (~isstr(parNames(i))) % error('invalid argument, member names must be char'); % end nextMem = nextMem+2; @@ -52,6 +56,6 @@ else int.optParams = parNames; int.optParamValues = parValues; retInt = optimize(int, optType, output); - int.optParams = []; - int.optParamValues = []; + retInt.optParams = []; + retInt.optParamValues = []; end