def stepES()

in jsuarez/ES.py [0:0]


   def stepES(self):
      if self.tick % self.tstep != 0:
         return 
      meanOff, n = 0, 0
      noise = self.noise

      #Mean over rollouts
      elite = [(np.min(v), k) for k, v in self.elite.items() if len(v) >= self.minRollouts]
      if len(elite) == 0:
         return
      elite = sorted(elite, reverse=True)
      self.elite = defaultdict(list)
      Fs, mutations = list(zip(*elite))
      topP = int(self.topP * len(Fs))
      Fs, mutations = Fs[:topP], mutations[:topP]
 
      Fs = rankdata(Fs, method='dense')
      Fs = np.asarray(Fs)[:, np.newaxis]
      mutations = noise[mutations, :]

      if len(Fs) == 0:
         return
      #Weighted mean vec update
      meanOff = np.mean(Fs*mutations, 0)
      meanVec = self.meanVec
      self.meanVec = meanVec + self.alpha * meanOff

      self.data = self.meanVec, self.noise