Esempio n. 1
0
 def take_step(self, current, step_size):
     position = Citizen()
     for i in range(Citizen.P_SIZE):
         minimum = min(
             [self.bounds[i][0],
              current.get_value(i) - step_size[i]])
         maximum = max(
             [self.bounds[i][1],
              current.get_value(i) + step_size[i]])
         value = rand_bound(minimum, maximum)
         position.set_value(i, value)
     return position
Esempio n. 2
0
 def generate_sample(self):
     sample = Citizen()
     for i in range(Citizen.P_SIZE):
         aux = rand_bound(self.means[i], self.stdevs[i])
         sample.set_value(i, aux)
     return sample
Esempio n. 3
0
 def random_neighbor(self, params=[]):
     mutant = Citizen(params)
     pos = randint_bound(Citizen.P_SIZE)
     mutant.set_value(pos)
     return mutant