Changeset 559


Ignore:
Timestamp:
09/12/12 11:40:33 (4 years ago)
Author:
mmckerns
Message:

fmin_powell with full_output return more standard (moved direc to end)

Files:
4 edited

Legend:

Unmodified
Added
Removed
  • branches/HPCtut/optimize_helper.py

    r534 r559  
    1111                                         disp=disp, itermon=mon, handler=0) 
    1212    # return: solution, energy, generations, fevals 
    13     return solved[0], solved[1], solved[3], solved[4] 
     13    return solved[0], solved[1], solved[2], solved[3] 
    1414 
    1515def diffev(cost, x0, full=1, disp=1, monitor=0): 
     
    2323                                         disp=disp, itermon=mon, handler=0) 
    2424    # return: solution, energy, generations, fevals 
    25     return solved[0], solved[1], solved[3], solved[4] 
     25    return solved[0], solved[1], solved[2], solved[3] 
    2626 
    2727 
  • branches/UQ/math/legacy/dirac_measure.py

    r558 r559  
    10221022  if debug: stepmon = VerboseMonitor(10)  #!!! 
    10231023  if npop: # use VTR 
    1024     _i = 2 #XXX: iter returned as results[2] 
    10251024    results = diffev2(cost, guess, npop, ftol=ftol, gtol=gtol, bounds=bounds,\ 
    10261025                      maxiter=maxiter, maxfun=maxfun, constraints=constraints,\ 
     
    10291028                      full_output=1, disp=0, handler=False) 
    10301029  else: # use VTR 
    1031     _i = 3 #XXX: iter returned as results[3]  (results[2] == direc) 
    10321030    results = fmin_powell(cost, guess, ftol=ftol, gtol=gtol, bounds=bounds,\ 
    10331031                      maxiter=maxiter, maxfun=maxfun, constraints=constraints,\ 
     
    10371035  pm = scenario() 
    10381036  pm.load(results[0], pts)            # params: w,x,y 
    1039   if debug: print "final cost: %s" % results[1] 
    1040   if debug and results[_i] >= maxiter: # iterations 
     1037 #if debug: print "final cost: %s" % results[1] 
     1038  if debug and results[2] >= maxiter: # iterations 
    10411039    print "Warning: constraints solver terminated at maximum iterations" 
    1042  #func_evals = results[_i+1]           # evaluation 
     1040 #func_evals = results[3]           # evaluation 
    10431041  return pm 
    10441042 
     
    11541152  if debug: stepmon = VerboseMonitor(2)  #!!! 
    11551153  if npop: # use VTR 
    1156     _i = 2 #XXX: iter returned as results[2] 
    11571154    results = diffev2(cost, guess, npop, ftol=ftol, gtol=gtol, bounds=bounds,\ 
    11581155                      maxiter=maxiter, maxfun=maxfun, constraints=constraints,\ 
     
    11611158                      full_output=1, disp=0, handler=False) 
    11621159  else: # use VTR 
    1163     _i = 3 #XXX: iter returned as results[3]  (results[2] == direc) 
    11641160    results = fmin_powell(cost, guess, ftol=ftol, gtol=gtol, bounds=bounds,\ 
    11651161                      maxiter=maxiter, maxfun=maxfun, constraints=constraints,\ 
     
    11701166  pm.load(results[0], pts)            # params: w,x,y 
    11711167 #if debug: print "final cost: %s" % results[1] 
    1172   if debug and results[_i] >= maxiter: # iterations 
     1168  if debug and results[2] >= maxiter: # iterations 
    11731169    print "Warning: constraints solver terminated at maximum iterations" 
    1174  #func_evals = results[_i+1]           # evaluation 
     1170 #func_evals = results[3]           # evaluation 
    11751171  return pm 
    11761172 
  • mystic/mystic/differential_evolution.py

    r540 r559  
    335335       #else: self._stepmon.info('STOP()') 
    336336 
    337         # code below here pushes output to scipy.optimize.fmin interface 
     337       ## code below here pushes output to scipy.optimize.fmin interface 
    338338        fval = self.bestEnergy 
    339         warnflag = 0 
     339       #warnflag = 0 
    340340 
    341341        if self._fcalls[0] >= self._maxfun: 
    342             warnflag = 1 
     342       #    warnflag = 1 
    343343            if disp: 
    344344                print "Warning: Maximum number of function evaluations has "\ 
    345345                      "been exceeded." 
    346346        elif self.generations >= self._maxiter: 
    347             warnflag = 2 
     347       #    warnflag = 2 
    348348            if disp: 
    349349                print "Warning: Maximum number of iterations has been exceeded" 
     
    558558       #else: self._stepmon.info('STOP()') 
    559559 
    560         # code below here pushes output to scipy.optimize.fmin interface 
     560       ## code below here pushes output to scipy.optimize.fmin interface 
    561561        fval = self.bestEnergy 
    562         warnflag = 0 
     562       #warnflag = 0 
    563563 
    564564        if self._fcalls[0] >= self._maxfun: 
    565             warnflag = 1 
     565       #    warnflag = 1 
    566566            if disp: 
    567567                print "Warning: Maximum number of function evaluations has "\ 
    568568                      "been exceeded." 
    569569        elif self.generations >= self._maxiter: 
    570             warnflag = 2 
     570       #    warnflag = 2 
    571571            if disp: 
    572572                print "Warning: Maximum number of iterations has been exceeded" 
     
    739739        constraints = kwds['constraints'] 
    740740        solver.SetConstraints(constraints) 
    741     if bounds != None: 
     741    if bounds is not None: 
    742742        minb,maxb = unpair(bounds) 
    743743        solver.SetStrictRanges(minb,maxb) 
  • mystic/mystic/scipy_optimize.py

    r540 r559  
    318318       #else: self._stepmon.info('STOP()') 
    319319 
    320         # code below here is dead, unless disp!=0 
    321         x = sim[0] 
     320       ## code below here is dead, unless disp!=0 
     321       #x = sim[0] 
    322322        fval = min(fsim) 
    323         warnflag = 0 
     323       #warnflag = 0 
    324324 
    325325        if self._fcalls[0] >= self._maxfun: 
    326             warnflag = 1 
     326       #    warnflag = 1 
    327327            if disp: 
    328328                print "Warning: Maximum number of function evaluations has "\ 
    329329                  "been exceeded." 
    330330        elif iterations >= self._maxiter: 
    331             warnflag = 2 
     331       #    warnflag = 2 
    332332            if disp: 
    333333                print "Warning: Maximum number of iterations has been exceeded" 
     
    340340 
    341341 
    342         if full_output: 
    343             retlist = x, fval, iterations, self._fcalls[0], warnflag 
    344             if retall: 
    345                 retlist += (allvecs,) 
    346         else: 
    347             retlist = x 
    348             if retall: 
    349                 retlist = (x, allvecs) 
     342       #if full_output: 
     343       #    retlist = x, fval, iterations, self._fcalls[0], warnflag 
     344       #    if retall: 
     345       #        retlist += (allvecs,) 
     346       #else: 
     347       #    retlist = x 
     348       #    if retall: 
     349       #        retlist = (x, allvecs) 
    350350 
    351351        return #retlist 
     
    431431        constraints = kwds['constraints'] 
    432432        solver.SetConstraints(constraints) 
    433     if bounds != None: 
     433    if bounds is not None: 
    434434        minb,maxb = unpair(bounds) 
    435435        solver.SetStrictRanges(minb,maxb) 
     
    447447    fcalls = len(evalmon.x) 
    448448    iterations = len(stepmon.x) 
    449     allvecs = [] 
    450     for i in range(iterations): 
    451        #allvecs.append(list(stepmon.x[i])) 
    452         allvecs.append(stepmon.x[i]) 
     449    allvecs = stepmon.x 
    453450 
    454451    if fcalls >= solver._maxfun: 
     
    493490        """ 
    494491        AbstractSolver.__init__(self,dim) 
    495         self._direc = None #FIXME: this is the easy way to return 'direc'... 
     492        self._direc = None # this is the easy way to return 'direc'... 
    496493 
    497494 
     
    536533        xtol=1e-4      #line-search error tolerance 
    537534        if kwds.has_key('callback'): callback = kwds['callback'] 
    538         if kwds.has_key('direc'): direc = kwds['direc']  #XXX: best interface? 
     535        if kwds.has_key('direc'): direc = kwds['direc'] 
    539536        if kwds.has_key('xtol'): xtol = kwds['xtol'] 
    540537        if kwds.has_key('disp'): disp = kwds['disp'] 
     
    661658       #else: self._stepmon.info('STOP()') 
    662659 
    663         # code below here is dead, unless disp!=0 
    664         warnflag = 0 
     660       ## code below here is dead, unless disp!=0 
     661       #warnflag = 0 
    665662 
    666663        if self._fcalls[0] >= self._maxfun: 
    667             warnflag = 1 
     664       #    warnflag = 1 
    668665            if disp: 
    669666                print "Warning: Maximum number of function evaluations has "\ 
    670667                      "been exceeded." 
    671668        elif iter >= self._maxiter: 
    672             warnflag = 2 
     669       #    warnflag = 2 
    673670            if disp: 
    674671                print "Warning: Maximum number of iterations has been exceeded" 
     
    680677                print "         Function evaluations: %d" % self._fcalls[0] 
    681678     
    682         x = squeeze(x) 
    683  
    684         if full_output: 
    685             retlist = x, fval, direc, iter, self._fcalls[0], warnflag 
    686             if retall: 
    687                 retlist += (allvecs,) 
    688         else: 
    689             retlist = x 
    690             if retall: 
    691                 retlist = (x, allvecs) 
     679       #x = squeeze(x) 
     680 
     681       #if full_output: 
     682       #    retlist = x, fval, direc, iter, self._fcalls[0], warnflag 
     683       #    if retall: 
     684       #        retlist += (allvecs,) 
     685       #else: 
     686       #    retlist = x 
     687       #    if retall: 
     688       #        retlist = (x, allvecs) 
    692689 
    693690        return #retlist 
     
    738735        the encoded constraints. 
    739736 
    740 Returns: (xopt, {fopt, direc, iter, funcalls, warnflag}, {allvecs}) 
     737Returns: (xopt, {fopt, iter, funcalls, warnflag, direc}, {allvecs}) 
    741738 
    742739    xopt -- ndarray - minimizer of function 
    743740    fopt -- number - value of function at minimum: fopt = func(xopt) 
    744     direc -- current direction set 
    745741    iter -- number - number of iterations 
    746742    funcalls -- number - number of function calls 
     
    748744        1 : 'Maximum number of function evaluations.' 
    749745        2 : 'Maximum number of iterations.' 
     746    direc -- current direction set 
    750747    allvecs -- list - a list of solutions at each iteration 
    751748 
     
    784781        constraints = kwds['constraints'] 
    785782        solver.SetConstraints(constraints) 
    786     if bounds != None: 
     783    if bounds is not None: 
    787784        minb,maxb = unpair(bounds) 
    788785        solver.SetStrictRanges(minb,maxb) 
     
    801798    fcalls = len(evalmon.x) 
    802799    iterations = len(stepmon.x) - 1 
    803     allvecs = [] 
    804     for i in range(len(stepmon.x)): 
    805        #allvecs.append(list(stepmon.x[i])) 
    806         allvecs.append(stepmon.x[i]) 
    807     direc = solver._direc #FIXME: better way to get direc from Solve() ? 
     800    allvecs = stepmon.x 
     801    direc = solver._direc #XXX: need better way to return direc ? 
    808802 
    809803    if fcalls >= solver._maxfun: 
     
    815809 
    816810    if full_output: 
    817         retlist = x, fval, direc, iterations, fcalls, warnflag 
     811        retlist = x, fval, iterations, fcalls, warnflag, direc 
    818812        if retall: 
    819813            retlist += (allvecs,) 
Note: See TracChangeset for help on using the changeset viewer.