@@ 93-114 (lines=22) @@ | ||
90 | self.p_current = self.individuals[nth_pop] |
|
91 | return self.p_current.init_pos() |
|
92 | ||
93 | @EvolutionaryAlgorithmOptimizer.track_new_pos |
|
94 | def iterate(self): |
|
95 | n_ind = len(self.individuals) |
|
96 | ||
97 | if n_ind == 1: |
|
98 | self.p_current = self.individuals[0] |
|
99 | return self.p_current.iterate() |
|
100 | ||
101 | self.sort_pop_best_score() |
|
102 | rnd_int = random.randint(0, len(self.pop_sorted) - 1) |
|
103 | self.p_current = self.pop_sorted[rnd_int] |
|
104 | ||
105 | total_rate = self.mutation_rate + self.crossover_rate |
|
106 | rand = np.random.uniform(low=0, high=total_rate) |
|
107 | ||
108 | if rand <= self.mutation_rate: |
|
109 | return self.p_current.iterate() |
|
110 | else: |
|
111 | if not self.offspring_l: |
|
112 | self._crossover() |
|
113 | self.p_current.pos_new = self.offspring_l.pop(0) |
|
114 | return self.p_current.pos_new |
|
115 | ||
116 | @EvolutionaryAlgorithmOptimizer.track_new_score |
|
117 | def evaluate(self, score_new): |
@@ 88-106 (lines=19) @@ | ||
85 | self.p_current = self.individuals[nth_pop] |
|
86 | return self.p_current.init_pos() |
|
87 | ||
88 | @EvolutionaryAlgorithmOptimizer.track_new_pos |
|
89 | def iterate(self): |
|
90 | self.n_ind = len(self.individuals) |
|
91 | ||
92 | if self.n_ind == 1: |
|
93 | self.p_current = self.individuals[0] |
|
94 | return self.p_current.iterate() |
|
95 | ||
96 | self.sort_pop_best_score() |
|
97 | self.rnd_int = random.randint(0, len(self.pop_sorted) - 1) |
|
98 | self.p_current = self.pop_sorted[self.rnd_int] |
|
99 | ||
100 | total_rate = self.mutation_rate + self.crossover_rate |
|
101 | rand = np.random.uniform(low=0, high=total_rate) |
|
102 | ||
103 | if rand <= self.mutation_rate: |
|
104 | return self.p_current.iterate() |
|
105 | else: |
|
106 | return self._cross() |
|
107 | ||
108 | @EvolutionaryAlgorithmOptimizer.track_new_score |
|
109 | def evaluate(self, score_new): |