code: def main():
      # Differential evolution parameters
      CR = 0.25
      F = 1
      MU = 300
      NGEN = 200
  
      pop = toolbox.population(n=MU)
      hof = tools.HallOfFame(1)
      stats = tools.Statistics(lambda ind: ind.fitness.values)
      stats.register("avg", numpy.mean)
      stats.register("std", numpy.std)
      stats.register("min", numpy.min)
      stats.register("max", numpy.max)
  
      logbook = tools.Logbook()
      logbook.header = "gen", "evals", "std", "min", "avg", "max"
  
      # Evaluate the individuals
      fitnesses = toolbox.map(toolbox.evaluate, pop)
      for ind, fit in zip(pop, fitnesses):
          ind.fitness.values = fit
  
      record = stats.compile(pop)
      logbook.record(gen=0, evals=len(pop), **record)
      print(logbook.stream)
  
      for g in range(1, NGEN):
          for k, agent in enumerate(pop):
              a, b, c = toolbox.select(pop)
              y = toolbox.clone(agent)
              index = random.randrange(NDIM)
              for i, value in enumerate(agent):
                  if i == index or random.random() < CR:
                      y[i] = a[i] + F * (b[i] - c[i])
              y.fitness.values = toolbox.evaluate(y)
              if y.fitness > agent.fitness:
                  pop[k] = y
          hof.update(pop)
          record = stats.compile(pop)
          logbook.record(gen=g, evals=len(pop), **record)
          print(logbook.stream)
  
      print("Best individual is ", hof[0], hof[0].fitness.values[0])
  
file_path: deap/examples/de/basic.py
imports: import random
  import array
  import numpy
  from deap import base
  from deap import benchmarks
  from deap import creator
  from deap import tools
label_desc: Use image node_id 1 for calling a global function with example usage: main() without return types