@Override public boolean optimize( Structure output) { stopRequested = false; double before = minimizer.getFunctionValue(); for( int i = 0; i < maxIterations && !stopRequested; i++ ) { if( minimizer.iterate() ) break; } codec.decode(minimizer.getParameters(), output); return minimizer.getFunctionValue() < before; }