gago/presets.go
2021-09-11 12:47:32 +02:00

46 lines
1 KiB
Go

package gago
// Generational returns a GA instance that uses the generational model.
func Generational(GenomeFactory GenomeFactory) GA {
return GA{
GenomeFactory: GenomeFactory,
NPops: 2,
PopSize: 50,
Model: ModGenerational{
Selector: SelTournament{
NContestants: 3,
},
MutRate: 0.5,
},
}
}
// SimulatedAnnealing returns a GA instance that mimicks a basic simulated
// annealing procedure.
func SimulatedAnnealing(GenomeFactory GenomeFactory) GA {
return GA{
GenomeFactory: GenomeFactory,
NPops: 1,
PopSize: 1,
Model: ModSimAnn{
T: 100, // Starting temperature
Tmin: 1, // Stopping temperature
Alpha: 0.99, // Decrease rate per iteration
},
}
}
// HillClimbing returns a GA instance that mimicks a basic hill-climbing
// procedure.
func HillClimbing(GenomeFactory GenomeFactory) GA {
return GA{
GenomeFactory: GenomeFactory,
NPops: 1,
PopSize: 1,
Model: ModMutationOnly{
NChosen: 1,
Selector: SelElitism{},
Strict: true,
},
}
}