Ignore:
Timestamp:
05/08/21 12:42:58 (3 years ago)
Author:
Maciej Komosinski
Message:

Added --debug mode that prints names of steps; final multiple evaluation now evaluates genotypes in hall of fame instead of the last population

Location:
framspy/evolalg/mutation_cross
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • framspy/evolalg/mutation_cross/frams_cross.py

    r1113 r1139  
    66
    77class FramsCross(FramsStep):
    8     def __init__(self, frams_lib, commands, cross_prob):
    9         super().__init__(frams_lib, commands)
     8    def __init__(self, frams_lib, commands, cross_prob, *args, **kwargs):
     9        super().__init__(frams_lib, commands, *args, **kwargs)
    1010        self.cross_prob = cross_prob
    1111
    1212    def call(self, population):
     13        super(FramsCross, self).call(population)
    1314        for i in range(1, len(population), 2):
    1415            if random.random() < self.cross_prob:
  • framspy/evolalg/mutation_cross/frams_cross_and_mutate.py

    r1113 r1139  
    55
    66class FramsCrossAndMutate(FramsStep):
    7     def __init__(self, frams_lib, cross_prob, mutate_prob, mutate_commands=None, cross_commands=None):
    8         super().__init__(frams_lib)
     7    def __init__(self, frams_lib, cross_prob, mutate_prob, mutate_commands=None, cross_commands=None, *args, **kwargs):
     8        super().__init__(frams_lib, *args, **kwargs)
    99
    1010        self.cross_prob = cross_prob
     
    1515
    1616    def call(self, population):
     17        super(FramsCrossAndMutate, self).call(population)
    1718        population = self.frams_cross(population)
    1819        population = self.frams_mutate(population)
  • framspy/evolalg/mutation_cross/frams_cross_or_mutate.py

    r1113 r1139  
    44import random
    55
     6
    67class FramsCrossOrMutate(FramsStep):
    7     def __init__(self, frams_lib, commands, cross_prob, mutate_prob, mutate_commands=None, cross_commands=None):
    8         super().__init__(frams_lib, commands)
     8    def __init__(self, frams_lib, commands, cross_prob, mutate_prob, mutate_commands=None, cross_commands=None, *args,
     9                 **kwargs):
     10        super().__init__(frams_lib, commands, *args, **kwargs)
    911
    1012        self.cross_prob = cross_prob
     
    1517
    1618    def call(self, population):
     19        super(FramsCrossOrMutate, self).call(population)
    1720        mutate_idx = []
    1821        cross_idx = []
     
    2124            if rng < self.cross_prob:
    2225                cross_idx.append(i)
    23             elif rng < self.cross_prob+self.mutate_prob:
     26            elif rng < self.cross_prob + self.mutate_prob:
    2427                mutate_idx.append(i)
    2528
     
    3235            self.frams_cross(cross_idx)
    3336
    34         for i,ind in zip(mutate_idx, mutate_ind):
     37        for i, ind in zip(mutate_idx, mutate_ind):
    3538            population[i] = ind
    3639
    37         for i,ind in zip(cross_idx, cross_ind):
     40        for i, ind in zip(cross_idx, cross_ind):
    3841            population[i] = ind
    3942
  • framspy/evolalg/mutation_cross/frams_mutation.py

    r1113 r1139  
    66
    77class FramsMutation(FramsStep):
    8     def __init__(self, frams_lib, commands, mutate_prob):
    9         super().__init__(frams_lib, commands)
     8    def __init__(self, frams_lib, commands, mutate_prob, *args, **kwargs):
     9        super().__init__(frams_lib, commands, *args, **kwargs)
    1010        self.mutate_prob = mutate_prob
    1111
    1212    def call(self, population):
     13        super(FramsMutation, self).call(population)
    1314        idx = []
    1415        for i in range(len(population)):
Note: See TracChangeset for help on using the changeset viewer.