Ejemplo n.º 1
0
 def crossover(self, pcross):
     for i in xrange(0, self.pop_size, 2):
         if random() < pcross:
             (son1, son2) = Crossovers.single_point_crossover(self.internal_pop[i], self.internal_pop[i+1])
             self.internal_pop[i] = son1
             self.internal_pop[i].needs_eval = True
             self.internal_pop[i+1] = son2
             self.internal_pop[i+1].needs_eval = True
Ejemplo n.º 2
0
#import Mutators
import time

if __name__ == "__main__":
    size = 100
    cross_max_iters = 100000
    #mut_max_iters = 1000000
    pmut = 0.02
    dad = BinaryString.BinaryString(size)
    mom = BinaryString.BinaryString(size)
    #print dad
    #print mom
    
    start = time.time()
    for i in xrange(1, cross_max_iters):
        (son1, son2) = Crossovers.single_point_crossover(dad, mom)    
    end = time.time()
    print "single_point_crossover time:", ((end-start)*1000) / cross_max_iters, "ms"
    
    #print son1
    #print son2

    start = time.time()
    for i in xrange(1, cross_max_iters):
        (son1, son2) = Crossovers.two_point_crossover(dad, mom)    
    end = time.time()
    print "two_point_crossover time:", ((end-start)*1000) / cross_max_iters, "ms"

    start = time.time()
    for i in xrange(1, cross_max_iters):
        (son1, son2) = Crossovers.uniform_crossover(dad, mom)