Changeset 1100
- Timestamp:
- 07/06/08 06:42:36 (5 months ago)
- Files:
-
- trunk/openopt/scikits/openopt/Kernel/LLSP.py (modified) (3 diffs)
- trunk/openopt/scikits/openopt/Kernel/objFunRelated.py (modified) (1 diff)
- trunk/openopt/scikits/openopt/Kernel/ooIter.py (modified) (1 diff)
- trunk/openopt/scikits/openopt/Kernel/runProbSolver.py (modified) (2 diffs)
- trunk/openopt/scikits/openopt/solvers/scipy_optim/scipy_ncg_oo.py (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/openopt/scikits/openopt/Kernel/LLSP.py
r1096 r1100 1 1 from ooMisc import assignScript 2 2 from BaseProblem import MatrixProblem 3 from numpy import asfarray, ones, inf, dot, nan, zeros, any, all, isfinite 3 from numpy import asfarray, ones, inf, dot, nan, zeros, any, all, isfinite, eye 4 4 from numpy.linalg import norm 5 5 import NLP … … 23 23 24 24 def llsp2nlp(self, solver, **kwargs): 25 if hasattr(self,'x0'): p = NLP.NLP(ff, self.x0, df=dff )26 else: p = NLP(ff, zeros(self.n), df=dff )25 if hasattr(self,'x0'): p = NLP.NLP(ff, self.x0, df=dff, d2f=d2ff) 26 else: p = NLP(ff, zeros(self.n), df=dff, d2f=d2ff) 27 27 p.args.f = self # DO NOT USE p.args = self IN PROB ASSIGNMENT! 28 28 self.inspire(p) … … 68 68 return r 69 69 70 70 def d2ff(x, LLSPprob): 71 r = dot(LLSPprob.C.T, LLSPprob.C) 72 if not LLSPprob.damp is None: r += LLSPprob.damp*eye(x.size) 73 return r 74 # TODO: add 2nd derivatives trunk/openopt/scikits/openopt/Kernel/objFunRelated.py
r1091 r1100 228 228 p.nEvals['d2f'] += 1 229 229 assert(len(p.user.d2f)==1) 230 r = p.user.d2f[0]( x)230 r = p.user.d2f[0](*(x, )+p.args.f) 231 231 if p.invertObjFunc and userFunctionType=='f': r = -r 232 232 return r trunk/openopt/scikits/openopt/Kernel/ooIter.py
r1089 r1100 50 50 if r is not False: 51 51 p.stopdict[key] = 1 52 p.istop = key53 if type(r) == tuple:54 p.msg = r[1]52 if p.istop >= 0: 53 p.istop = key 54 if type(r) == tuple: p.msg = r[1] 55 55 for fun in p.callback: 56 56 r = fun(p) trunk/openopt/scikits/openopt/Kernel/runProbSolver.py
r1091 r1100 210 210 211 211 r.solverInfo = dict() 212 for fn in ('homepage', 'alg', 'authors', 'license', 'info' ):212 for fn in ('homepage', 'alg', 'authors', 'license', 'info', 'name'): 213 213 r.solverInfo[fn] = getattr(p.solver, '__' + fn + '__') 214 214 … … 240 240 p.invertObjFunc = False 241 241 242 if p.iprint < 0: 242 if p.iprint >= 0: 243 if p.msg is not '': print "istop: ", r.istop , '(' + p.msg +')' 244 else: print "istop: ", r.istop 245 246 print 'Solver: Time Elapsed = ' + str(r.elapsed['solver_time']) + ' \tCPU Time Elapsed = ' + str(r.elapsed['solver_cputime']) 243 247 if p.plot: 244 pylab = __import__('pylab') 245 pylab.show() 246 return r #no final output 247 if p.msg is not '': print "istop: ", r.istop , '(' + p.msg +')' 248 else: print "istop: ", r.istop 249 250 251 print 'Solver: Time Elapsed = ' + str(r.elapsed['solver_time']) + ' \tCPU Time Elapsed = ' + str(r.elapsed['solver_cputime']) 252 if p.plot: 253 print 'Plotting: Time Elapsed = '+ str(r.elapsed['plot_time'])+ ' \tCPU Time Elapsed = ' + str(r.elapsed['plot_cputime']) 254 if not p.isFeasible: 255 print 'NO FEASIBLE SOLUTION is obtained (max residual = %0.2g, objFunc = %0.8g)' % (r.rf, r.ff) 256 else: 257 msg = "objFunValue: %0.8g" % r.ff 258 if not p.isUC: msg += ' (feasible, max constraint = %g)' % r.rf 259 print msg 248 print 'Plotting: Time Elapsed = '+ str(r.elapsed['plot_time'])+ ' \tCPU Time Elapsed = ' + str(r.elapsed['plot_cputime']) 249 if not p.isFeasible: 250 print 'NO FEASIBLE SOLUTION is obtained (max residual = %0.2g, objFunc = %0.8g)' % (r.rf, r.ff) 251 else: 252 msg = "objFunValue: %0.8g" % r.ff 253 if not p.isUC: msg += ' (feasible, max constraint = %g)' % r.rf 254 print msg 255 260 256 if p.plot: 261 257 pylab = __import__('pylab') trunk/openopt/scikits/openopt/solvers/scipy_optim/scipy_ncg_oo.py
r1004 r1100 21 21 else: fhess = None 22 22 23 try: 24 iterfcn(p.x0) 25 xf = fmin_ncg(p.f, p.x0, p.df, fhess = fhess, maxiter = p.maxIter, disp = 0, callback=iterfcn) 26 except isSolved: 27 xf = p.xk 23 xf = fmin_ncg(p.f, p.x0, p.df, fhess = fhess, maxiter = p.maxIter, disp = 0, callback=iterfcn) 28 24 29 25 ff = p.f(xf) 30 26 p.xk = p.xf = xf 31 27 p.fk = p.ff = ff 32 p.istop = 100033 p.iterfcn()34 28
