Changeset 758


Ignore:
Timestamp:
10/04/14 13:08:55 (20 months ago)
Author:
mmckerns
Message:

diffev2 uses wrap_nested to apply constraints and evaluate cost in parallel

Location:
mystic/mystic
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • mystic/mystic/differential_evolution.py

    r748 r758  
    146146 
    147147from mystic.tools import wrap_function, unpair, isiterable 
    148 from mystic.tools import wrap_bounds, wrap_penalty, reduced 
     148from mystic.tools import wrap_bounds, wrap_penalty, wrap_nested, reduced 
    149149 
    150150from mystic.abstract_solver import AbstractSolver 
     
    388388                strategy(self, candidate) 
    389389            # apply constraints 
    390             self.trialSolution[candidate][:] = self._constraints(self.trialSolution[candidate]) 
     390           #self.trialSolution[candidate][:] = self._constraints(self.trialSolution[candidate]) 
     391        # bind constraints to cost 
     392        concost = wrap_nested(cost, self._constraints) 
    391393 
    392394        # apply penalty 
    393395       #trialEnergy = map(self._penalty, self.trialSolution)#,**self._mapconfig) 
    394396        # calculate cost 
    395         trialEnergy = self._map(cost, self.trialSolution, **self._mapconfig) 
     397        trialEnergy = self._map(concost, self.trialSolution, **self._mapconfig) 
    396398 
    397399        # each trialEnergy should be a scalar 
  • mystic/mystic/scipy_optimize.py

    r748 r758  
    182182                y[k] = val[k] 
    183183                sim[k+1] = y 
    184                 f = cost(y) 
     184                f = cost(y) #XXX: use self._map? 
    185185                fsim[k+1] = f 
    186186 
     
    238238                        for j in one2np1: 
    239239                            sim[j] = sim[0] + sigma*(sim[j] - sim[0]) 
    240                             fsim[j] = cost(sim[j]) 
     240                            fsim[j] = cost(sim[j]) #XXX: use self._map? 
    241241 
    242242        if len(self._stepmon): 
     
    502502 
    503503                # apply constraints 
    504                 x = asfarray(self._constraints(x)) 
     504                x = asfarray(self._constraints(x)) #XXX: use self._map? 
    505505            # decouple from 'best' energy 
    506506            self.energy_history = self.energy_history + [fval] 
     
    547547 
    548548                # apply constraints 
    549                 x = asfarray(self._constraints(x)) 
     549                x = asfarray(self._constraints(x)) #XXX: use self._map? 
    550550 
    551551            # decouple from 'best' energy 
Note: See TracChangeset for help on using the changeset viewer.