# p.gtol = 1e-8 # p.ftol = 1e-7 # p.xtol = 1e-7 elif solver == 'lincher': #p.iprint = 1 p.maxTime = 1e15 p.maxIter = 100 ## p.check.df = 1 ## p.check.dc = 1 ## p.check.dh = 1 r = p.solve(solver) for fn in ('h', 'c'): if not r.evals.has_key(fn): r.evals[fn] = 0 # if no c or h are used in problem results[solver] = (r.ff, p.getMaxResidual(r.xf), r.elapsed['solver_time'], r.elapsed['solver_cputime'], r.evals['f'], r.evals['c'], r.evals['h']) subplot(2, 1, 1) F0 = asscalar(p.f(p.x0)) lines.append(plot([0, 1e-15], [F0, F0], color=colors[j])) for i in range(2): subplot(2, 1, i + 1) legend(lines, solvers) subplots_adjust(bottom=0.2, hspace=0.3) xl = [ 'Solver f_opt MaxConstr Time CPUTime fEvals cEvals hEvals' ]
if solver == "algencan": p.gtol = 1e-2 elif solver == "ralg": pass # p.debug = 1 # p.debug = 1 r = p.solve(solver) for fn in ("h", "c"): if not r.evals.has_key(fn): r.evals[fn] = 0 # if no c or h are used in problem results[solver] = ( r.ff, p.getMaxResidual(p.xk), r.elapsed["solver_time"], r.elapsed["solver_cputime"], r.evals["f"], r.evals["c"], r.evals["h"], ) if PLOT: subplot(2, 1, 1) F0 = ff(startPoint) lines.append(plot([0, 1e-15], [F0, F0], color=colors[j])) if PLOT: for i in range(2): subplot(2, 1, i + 1) legend(lines, solvers)
if solver == "algencan": p.gtol = 1e-2 elif solver == "ralg": pass # p.debug = 1 p.debug = 1 r = p.solve(solver) for fn in ("h", "c"): if not r.evals.has_key(fn): r.evals[fn] = 0 # if no c or h are used in problem results[solver] = ( r.ff, p.getMaxResidual(r.xf), r.elapsed["solver_time"], r.elapsed["solver_cputime"], r.evals["f"], r.evals["c"], r.evals["h"], ) if PLOT: subplot(2, 1, 1) F0 = asscalar(p.f(p.x0)) lines.append(plot([0, 1e-15], [F0, F0], color=colors[j])) if PLOT: for i in range(2): subplot(2, 1, i + 1) legend(lines, solvers)
#print h1.D(startPoint) #print h2.D(startPoint) #continue if solver =='algencan': p.gtol = 1e-2 elif solver == 'ralg': pass #p.debug = 1 #p.debug = 1 r = p.solve(solver) for fn in ('h','c'): if not r.evals.has_key(fn): r.evals[fn]=0 # if no c or h are used in problem results[solver] = (r.ff, p.getMaxResidual(p.xk), r.elapsed['solver_time'], r.elapsed['solver_cputime'], r.evals['f'], r.evals['c'], r.evals['h']) if PLOT: subplot(2,1,1) F0 = ff(startPoint) lines.append(plot([0, 1e-15], [F0, F0], color= colors[j])) if PLOT: for i in range(2): subplot(2,1,i+1) legend(lines, solvers) subplots_adjust(bottom=0.2, hspace=0.3) xl = ['Solver f_opt MaxConstr Time CPUTime fEvals cEvals hEvals'] for i in range(len(results)):
############# colors = colors[:len(solvers)] lines, results = [], {} for j in range(len(solvers)): solver = solvers[j] color = colors[j] p = NLP(objSIR.cost, theta, df=objSIR.sensitivity,lb = lb, ub = ub, ftol = 1e-6, maxFunEvals = 1e7, maxIter = 1220, plot = 1, color = color, iprint = 0, legend = [solvers[j]], show= False, xlabel='time', goal='minimum', name='nlp3') if solver == 'algencan': p.gtol = 1e-1 elif solver == 'ralg': p.debug = 1 r = p.solve(solver, debug=1) print 'c1 evals:', cc1, 'c2 evals:', cc2, 'c3 evals:', cc3 results[solver] = (r.ff, p.getMaxResidual(r.xf), r.elapsed['solver_time'], r.elapsed['solver_cputime'], r.evals['f'], r.evals['c'], r.evals['h']) subplot(2,1,1) F0 = asscalar(p.f(p.x0)) lines.append(plot([0, 1e-15], [F0, F0], color= colors[j])) # for i in range(2): # subplot(2,1,i+1) # legend(solvers) subplots_adjust(bottom=0.2, hspace=0.3) xl = ['Solver f_opt MaxConstr Time CPUTime fEvals cEvals hEvals'] for i in range(len(results)): xl.append((expandtabs(ljust(solvers[i], 16)+' \t', 15)+'%0.2f'% (results[solvers[i]][0]) + ' %0.1e' % (results[solvers[i]][1]) + (' %0.2f'% (results[solvers[i]][2])) + ' %0.2f '% (results[solvers[i]][3]) + str(results[solvers[i]][4]) + ' ' + rjust(str(results[solvers[i]][5]), 5) + expandtabs('\t' +str(results[solvers[i]][6]),8))) xl = '\n'.join(xl)