Skip to content

chetan51/genesys

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Genesys: Evolving Programs to Solve Problems

Architecture

Node
	- value
	- isTerminal
	- left
	- right
	- setLeft(node)
	- setRight(node)

Program
	- root
	- run(assignments, maxOperations=1000, maxTime=1000)
		- Returns: assignments, or None if maxOperations or maxTime is reached
	- mate(program)
		- Returns: program
	- toString()
		- Returns: string

Population
	- programs
	- problem
	- init(problem, size=100)
	- computeFitnesses()
		- Returns: fitnesses (dict)
	- killWeakest(n, fitnesses)
	- mateStrongest(n, fitnesses)
	- mutate()
	- sortProgramsByFitness(fitnesses)
		- Returns: program
	- _createProgram(problem) [static]
		- Returns: program
	- computeFitnessStats(fitnesses)
		- Returns: (min, max, average, standard deviation)

AbstractProblem
	- INPUTS [static]
	- OUTPUTS [static]
	- OPERATORS [static]
	- CONSTANTS [static]
	- init(args)
	- computeFitness(program)
		- Returns: int

TODO

- Clean up static vs instance methods in Node
- Have Population call methods on Program to do mutation and random
initialization instead of doing it itself
- Clean up 1D regression problem

About

Evolving Programs to Solve Problems [WIP]

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages