@@ -161,8 +161,8 @@ func (pool *PoolModel) Minimize() {
161161 for i := range offsprings {
162162 for _ , op := range pool .ExtraOperators {
163163 if pool .Rnd .Float64 () <= op .Probability {
164- offsprings [i ].Evaluated = false
165164 offsprings [i ].Genome = op .Operator (offsprings [i ].Genome , pool .Rnd )
165+ offsprings [i ].Evaluated = false
166166 }
167167 }
168168 }
@@ -215,7 +215,6 @@ func (pool *PoolModel) selection(nOffstrings, nCandidates int) []eaopt.Individua
215215 return offsprings
216216}
217217
218- // TODO: Get rid of odd arrays here
219218func (pool * PoolModel ) crossover (in []eaopt.Individual ) []eaopt.Individual {
220219 offsprings := make ([]eaopt.Individual , len (in ))
221220 for i := 0 ; i < len (in )- 1 ; i += 2 {
@@ -241,8 +240,8 @@ func (pool *PoolModel) crossover(in []eaopt.Individual) []eaopt.Individual {
241240func (pool * PoolModel ) mutate (in []eaopt.Individual ) []eaopt.Individual {
242241 for i := range in {
243242 if pool .Rnd .Float64 () < pool .MutRate {
244- in [i ].Evaluated = false
245243 in [i ].Genome .Mutate (pool .Rnd )
244+ in [i ].Evaluated = false
246245 }
247246 }
248247
@@ -513,16 +512,8 @@ func (pool *PoolModel) migrationScheduler() {
513512 var conn * grpc.ClientConn
514513 dialed := false
515514
516- snap := pool .population .Snapshot ()
517- indivArr := make ([]eaopt.Individual , 0 , len (snap ))
515+ indivArr := pool .selection (pool .NMigrate , 4 )
518516 migrate := make ([]Individual , pool .NMigrate )
519-
520- for _ , item := range snap {
521- indivArr = append (indivArr , item .Object .(eaopt.Individual ).Clone (pool .Rnd ))
522- }
523-
524- // Sort population and get NMigrate best
525- indivArr = pool .SortFunc (indivArr , pool .SortPrecission )
526517 for i := range migrate {
527518 migrate [i ] = Individual {
528519 IndividualID : indivArr [i ].ID ,
0 commit comments