self.best_value, self.best = max(self.nests)
def new_nest(space):
- position = [2 * space.bound * random.random()
- - space.bound for _ in xrange(space.dimension)]
- value = space.d_function(*position)
- return (value, position)
+ position = [2 * space.bound * random.random()
+ - space.bound for _ in xrange(space.dimension)]
+ value = space.d_function(*position)
+ return (value, position)
def get_cuckoos(space):
beta = 1.5
space.nests = [max(n, m) for (n, m) in zip(space.nests, nests)]
space.best_value, space.best = max(space.nests)
-def optimize(dimension, boundary, function_d, n_nest, n_turns):
- space = Space(dimension, boundary, function_d, n_nest)
- for _ in xrange(n_turns):
- next_turn(space)
- return space.best
+def optimize(dimension, boundary, function_d, n_nest, n_turns, reset=1):
+ best_list = []
+ for i in xrange(reset):
+ space = Space(dimension, boundary, function_d, n_nest)
+ for _ in xrange(n_turns / reset):
+ next_turn(space)
+ best_list.append((space.best_value, space.best))
+ print space.best_value
+
+ return max(best_list)[1]