Documentation
¶
Index ¶
- Constants
- Variables
- func Abs(x int) int
- func Abs32(x int32) int32
- func Abs64(x int64) int64
- func ArgsForInstruction(op *govirtual.Instruction, existing, labels []string) string
- func DecodeSolutionCache(b *bytes.Buffer) *map[string]*Solution
- func EncodeSolutionCache() (b *bytes.Buffer)
- func Max(left, right int) int
- func Max32(left, right int32) int32
- func Max64(left, right int64) int64
- func Max8(left, right int8) int8
- func Min(left, right int) int
- func Min32(left, right int32) int32
- func Min64(left, right int64) int64
- func Min8(left, right int8) int8
- func Now() int
- func ReadSolutionCache() *bytes.Buffer
- func WriteSolutionCache(b *bytes.Buffer)
- type AndSelector
- type Breeder
- type Champion
- type Champions
- type CopyBreeder
- type CostEvaluator
- type CrossoverBreeder
- type Dictionary
- type Evaluator
- type InfluxBreeder
- type InverseEvaluator
- type IslandEvolver
- type MultiBreeder
- type MultiEvaluator
- type MutationBreeder
- type OrSelector
- type Population
- type PopulationReport
- type RandomBreeder
- type SafeRNG
- type Selector
- type Solution
- type SolutionList
- type StochasticUniversalSelector
- type TimeEvaluator
- type TopXSelector
- type TournamentSelector
Constants ¶
View Source
const ( MaxInt = int(^uint(0) >> 1) MinInt = int(-MaxInt - 1) MaxInt32 = int32(math.MaxInt32) MinInt32 = int32(math.MinInt32) MaxInt64 = int64(math.MaxInt64) MinInt64 = int64(math.MinInt64) )
Integer limit values.
Variables ¶
View Source
var SolutionCache map[string]*Solution
View Source
var USDict = NewDictionary("US.dic")
Functions ¶
func ArgsForInstruction ¶
func EncodeSolutionCache ¶
func ReadSolutionCache ¶
func WriteSolutionCache ¶
Types ¶
type AndSelector ¶
type AndSelector []Selector
func AndSelect ¶
func AndSelect(selectors ...Selector) *AndSelector
func (*AndSelector) AddSelector ¶
func (multi *AndSelector) AddSelector(s Selector)
func (AndSelector) Select ¶
func (multi AndSelector) Select(s *SolutionList) *SolutionList
type CopyBreeder ¶
type CopyBreeder struct {
PopulationSize int
}
func NewCopyBreeder ¶
func NewCopyBreeder(size int) CopyBreeder
func (CopyBreeder) Breed ¶
func (cp CopyBreeder) Breed(initialPop []string) []string
type CostEvaluator ¶
type CostEvaluator struct{}
func NewCostEvaluator ¶
func NewCostEvaluator() *CostEvaluator
func (*CostEvaluator) Evaluate ¶
func (c *CostEvaluator) Evaluate(p *govirtual.Processor) int
type CrossoverBreeder ¶
type CrossoverBreeder struct {
PopulationSize int
}
func NewCrossoverBreeder ¶
func NewCrossoverBreeder(popSize int) CrossoverBreeder
func (CrossoverBreeder) Breed ¶
func (breeder CrossoverBreeder) Breed(seeds []string) []string
type Dictionary ¶
type Dictionary []string
func NewDictionary ¶
func NewDictionary(name string) *Dictionary
func (*Dictionary) RandomWord ¶
func (dict *Dictionary) RandomWord() string
type InfluxBreeder ¶
type InfluxBreeder chan []string
func (InfluxBreeder) Breed ¶
func (breeder InfluxBreeder) Breed([]string) []string
type InverseEvaluator ¶
type InverseEvaluator struct {
Evaluator *Evaluator
}
func Inverse ¶
func Inverse(e Evaluator) *InverseEvaluator
func (InverseEvaluator) Evaluate ¶
func (inverse InverseEvaluator) Evaluate(p *govirtual.Processor) int
type IslandEvolver ¶
type IslandEvolver struct { ChampionSize int PopulationReportChan chan *PopulationReport InfluxBreeder // contains filtered or unexported fields }
func NewIslandEvolver ¶
func NewIslandEvolver() *IslandEvolver
func (*IslandEvolver) AddPopulation ¶
func (self *IslandEvolver) AddPopulation(heap *govirtual.Memory, registerSize int, is *govirtual.InstructionSet, term govirtual.TerminationCondition, breeder Breeder, eval Evaluator, selector Selector)
func (*IslandEvolver) Interbreed ¶
func (self *IslandEvolver) Interbreed()
type MultiBreeder ¶
type MultiBreeder []Breeder
func Breeders ¶
func Breeders(breeders ...Breeder) *MultiBreeder
func (MultiBreeder) Breed ¶
func (multi MultiBreeder) Breed(seeds []string) []string
type MultiEvaluator ¶
type MultiEvaluator []*Evaluator
func NewMultiEvaluator ¶
func NewMultiEvaluator(e ...*Evaluator) *MultiEvaluator
func (*MultiEvaluator) AddEvaluator ¶
func (multi *MultiEvaluator) AddEvaluator(e *Evaluator) *MultiEvaluator
func (*MultiEvaluator) Evaluate ¶
func (multi *MultiEvaluator) Evaluate(p *govirtual.Processor) int
type MutationBreeder ¶
func NewMutationBreeder ¶
func NewMutationBreeder(popSize int, mutationChance float64, is *govirtual.InstructionSet) MutationBreeder
func (MutationBreeder) Breed ¶
func (breeder MutationBreeder) Breed(seeds []string) []string
type OrSelector ¶
type OrSelector []Selector
func OrSelect ¶
func OrSelect(selectors ...Selector) *OrSelector
func (OrSelector) Select ¶
func (multi OrSelector) Select(s *SolutionList) *SolutionList
type Population ¶
type Population struct {
Id, RegisterLength int
InstructionSet *govirtual.InstructionSet
Breeder *Breeder
Evaluator *Evaluator
Selector *Selector
TerminationCondition *govirtual.TerminationCondition
ControlChan chan bool
PopulationReportChan chan *PopulationReport
Heap *govirtual.Memory
}
func NewPopulation ¶
func (*Population) Run ¶
func (s *Population) Run()
type PopulationReport ¶
type PopulationReport struct { Id int SolutionList }
type RandomBreeder ¶
type RandomBreeder struct {
PopulationSize, ProgramLength int
*govirtual.InstructionSet
}
func NewRandomBreeder ¶
func NewRandomBreeder(popSize int, programLen int, is *govirtual.InstructionSet) *RandomBreeder
func (RandomBreeder) Breed ¶
func (breeder RandomBreeder) Breed([]string) []string
type Selector ¶
type Selector interface {
Select(*SolutionList) *SolutionList
}
type Solution ¶
func FightInTournament ¶
type SolutionList ¶
type SolutionList []*Solution
func RWS ¶
func RWS(solutions *SolutionList, pointers []int) *SolutionList
func (*SolutionList) GetPrograms ¶
func (sol *SolutionList) GetPrograms() []string
func (SolutionList) Len ¶
func (s SolutionList) Len() int
func (SolutionList) Less ¶
func (s SolutionList) Less(i, j int) bool
func (SolutionList) Swap ¶
func (s SolutionList) Swap(i, j int)
type StochasticUniversalSelector ¶
type StochasticUniversalSelector struct {
Keep int
}
func NewStochasticUniversalSelector ¶
func NewStochasticUniversalSelector(keep int) *StochasticUniversalSelector
func (StochasticUniversalSelector) Select ¶
func (sel StochasticUniversalSelector) Select(s *SolutionList) *SolutionList
type TimeEvaluator ¶
type TimeEvaluator struct{}
func NewTimeEvaluator ¶
func NewTimeEvaluator() *TimeEvaluator
func (*TimeEvaluator) Evaluate ¶
func (t *TimeEvaluator) Evaluate(p *govirtual.Processor) int
type TopXSelector ¶
type TopXSelector struct {
Keep int
}
func TopX ¶
func TopX(keep int) *TopXSelector
func (TopXSelector) Select ¶
func (topx TopXSelector) Select(s *SolutionList) *SolutionList
type TournamentSelector ¶
type TournamentSelector struct {
Keep int
}
func Tournament ¶
func Tournament(keep int) TournamentSelector
func (TournamentSelector) Select ¶
func (t TournamentSelector) Select(solutions *SolutionList) *SolutionList
Click to show internal directories.
Click to hide internal directories.