def mutESLogNormal(individual, c, indpb):
 size = len(individual)
 t = (c / math.sqrt((2.0 * math.sqrt(size))))
 t0 = (c / math.sqrt((2.0 * size)))
 n = random.gauss(0, 1)
 t0_n = (t0 * n)
 for indx in xrange(size):
  if (random.random() < indpb):
   individual.strategy[indx] *= math.exp((t0_n + (t * random.gauss(0, 1))))
   individual[indx] += (individual.strategy[indx] * random.gauss(0, 1))
 return (individual,)

def mutESLogNormal ( individual , c , indpb ) : size = len ( individual ) t = ( c / math . sqrt ( ( 2.0 * math . sqrt ( size ) ) ) ) t0 = ( c / math . sqrt ( ( 2.0 * size ) ) ) n = random . gauss ( 0 , 1 ) t0_n = ( t0 * n ) for indx in xrange ( size ) : if ( random . random ( ) < indpb ) : individual . strategy [ indx ] *= math . exp ( ( t0_n + ( t * random . gauss ( 0 , 1 ) ) ) ) individual [ indx ] += ( individual . strategy [ indx ] * random . gauss ( 0 , 1 ) ) return ( individual , )
mutate an evolution strategy according to its :attr:strategy attribute as described in [beyer2002]_ .