function [bsf_value, bsf, fitness_call] = GRADEplusCERAFoptimization(Fconfig);

global regr

eval(Fconfig);

CERAFinit
GRADEinit

%while fitness_call < 10000
while fitness_call < 2000*Dim
%while (bsf_value-opt) > Prec
    GRADEnewpop
    CERAFcheck
    GRADEselect    
end

output = sprintf('%s.out', Name );
f = fopen(output,'a');
fprintf( f, '%d %g', fitness_call, bsf_value );
for i = 1:Dim fprintf( f, ' %g', bsf(i) ); end
fprintf( f, '\n' );
fclose( f );


%% author: Anicka Kucerova, Czech Technical University in Prague
%% version 0.0.3
%% 17 Sep 2013