mep

package module
v0.0.0-...-9dd4931 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 1, 2016 License: MIT Imports: 9 Imported by: 0

README

go-mep

A pure Go implementation of the Multi Expression Programming algorithm

Alpha version, under heavy development.

TO DO:

  • Comprehensive tests
  • Main program
  • Finish test functions

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ClassificationFF

func ClassificationFF(signal, target []float64) float64

ClassificationFF -

func MeanErrorFF

func MeanErrorFF(signal, target []float64) float64

MeanErrorFF -

func TotalErrorFF

func TotalErrorFF(signal, target []float64) float64

TotalErrorFF -

Types

type CrossoverType

type CrossoverType int

CrossoverType - uniform or onecutpoint

const (
	// OneCutPoint - crossover type
	OneCutPoint CrossoverType = iota
	// Uniform - crossover type
	Uniform
)

type FitnessFunction

type FitnessFunction func(signal, target []float64) float64

FitnessFunction -

type Mep

type Mep struct {
	// contains filtered or unexported fields
}

Mep - primary class

func New

func New(td TrainingData, ff FitnessFunction) *Mep

New - create a new Multi-Expression population

func (*Mep) Best

func (m *Mep) Best() (float64, string)

Best - return the best fitness,expression of the population

func (*Mep) BestExpr

func (m *Mep) BestExpr() string

BestExpr - return the best expression of the population

func (*Mep) BestFitness

func (m *Mep) BestFitness() float64

BestFitness - return the best fitness of the population

func (*Mep) Evolve

func (m *Mep) Evolve()

Evolve - one generation of population and sort for best fitness

func (*Mep) Oper

func (m *Mep) Oper(all bool) []string

Oper - list of enabled operators

func (*Mep) PrintBest

func (m *Mep) PrintBest()

PrintBest - print the best member of the population

func (*Mep) PrintTestData

func (m *Mep) PrintTestData()

PrintTestData - print the testdata

func (*Mep) SetConst

func (m *Mep) SetConst(fixed []float64, numRand int, minRand, maxRand float64)

SetConst - set fixed and random constants (resets population)

func (*Mep) SetCrossover

func (m *Mep) SetCrossover(crossoverType CrossoverType, crossoverProbability float64)

SetCrossover - crossover type and probability (valid range 0.0 - 1.0)

func (*Mep) SetMutation

func (m *Mep) SetMutation(mutationProbability float64)

SetMutation - mutation probability (valid range 0.0 - 1.0)

func (*Mep) SetOper

func (m *Mep) SetOper(operName string, state bool)

SetOper - enable/disable operator

func (*Mep) SetPop

func (m *Mep) SetPop(popSize, numSubpopulation, codeLength int)

SetPop - set population size and code length (resets population)

func (*Mep) SetProb

func (m *Mep) SetProb(mutationProbability, crossoverProbability float64)

SetProb - set mutation/crossover probability (valid range 0.0 - 1.0)

func (*Mep) Solve

func (m *Mep) Solve(numGens int, fitnessThreshold float64, showProgress bool) (int, time.Duration)

Solve - Evolve until fitnessThreshold or numGens is reached. Returns generations and total time

type TrainingData

type TrainingData struct {
	Train  [][]float64
	Target []float64
	Labels []string
}

TrainingData -

func NewAckley

func NewAckley(numTraining int) TrainingData

NewAckley -

func NewBooth

func NewBooth(numTraining int) TrainingData

NewBooth -

func NewDejongF1

func NewDejongF1(numTraining int) TrainingData

NewDejongF1 -

func NewDropwave

func NewDropwave(numTraining int) TrainingData

NewDropwave -

func NewKepler

func NewKepler(numTraining int) TrainingData

NewKepler -

func NewMichalewicz

func NewMichalewicz(numTraining int) TrainingData

NewMichalewicz -

func NewPiTest

func NewPiTest(numTraining int) TrainingData

NewPiTest -

func NewPythagorean

func NewPythagorean(numTraining int) TrainingData

NewPythagorean -

func NewQuarticPoly

func NewQuarticPoly(numTraining int) TrainingData

NewQuarticPoly -

func NewRastigrinF1

func NewRastigrinF1(numTraining int) TrainingData

NewRastigrinF1 -

func NewRosenbrock

func NewRosenbrock(numTraining int) TrainingData

NewRosenbrock -

func NewSchafferF6

func NewSchafferF6(numTraining int) TrainingData

NewSchafferF6 -

func NewSchwefel

func NewSchwefel(numTraining int) TrainingData

NewSchwefel -

func NewSequenceInduction

func NewSequenceInduction(numTraining int) TrainingData

NewSequenceInduction -

func NewSimpleConstantRegression1

func NewSimpleConstantRegression1(numTraining int) TrainingData

NewSimpleConstantRegression1 -

func NewSimpleConstantRegression2

func NewSimpleConstantRegression2(numTraining int) TrainingData

NewSimpleConstantRegression2 -

func NewSimpleConstantRegression3

func NewSimpleConstantRegression3(numTraining int) TrainingData

NewSimpleConstantRegression3 -

func NewSixHump

func NewSixHump(numTraining int) TrainingData

NewSixHump -

func ReadTrainingData

func ReadTrainingData(filename string, header bool, sep string) TrainingData

ReadTrainingData - read trainging data from a file

Directories

Path Synopsis
Package is an implementation of the Multi Expression Programming algorithm Copyright 2016 Mark Chenoweth Licensed under terms of MIT license (see LICENSE) Usage: mep -h | -help mep -v | -version mep -o | -oper mep [options] <filename>|testdata Options: -h -help print help -v -version print version -o -oper print operators -td print testdata -summary print summary only -popsize=<subPopSize> sets sub-population size (default=100) -numpop=<numSubPop> sets number of sub-populations (default=1) -code=<codeLen> sets code length (default=50) -gens=<numGens> sets number of generations to evolve -seed=<int> sets random number seed (default=unixNano time) -fitness=<float> sets fitness threshold to stop evolving -mp=<mutationProb> sets mutation probability -cp=<crossoverProb> sets crossover probability -const=num,min,max sets random constant parameters (-const=num,min,max[,(e|pi|<fixed>)]) -enable=<op[,op]> enables operators (comma separated list) -disable=<op[,op]> disables operators (comma separated list)
Package is an implementation of the Multi Expression Programming algorithm Copyright 2016 Mark Chenoweth Licensed under terms of MIT license (see LICENSE) Usage: mep -h | -help mep -v | -version mep -o | -oper mep [options] <filename>|testdata Options: -h -help print help -v -version print version -o -oper print operators -td print testdata -summary print summary only -popsize=<subPopSize> sets sub-population size (default=100) -numpop=<numSubPop> sets number of sub-populations (default=1) -code=<codeLen> sets code length (default=50) -gens=<numGens> sets number of generations to evolve -seed=<int> sets random number seed (default=unixNano time) -fitness=<float> sets fitness threshold to stop evolving -mp=<mutationProb> sets mutation probability -cp=<crossoverProb> sets crossover probability -const=num,min,max sets random constant parameters (-const=num,min,max[,(e|pi|<fixed>)]) -enable=<op[,op]> enables operators (comma separated list) -disable=<op[,op]> disables operators (comma separated list)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL