-
Notifications
You must be signed in to change notification settings - Fork 107
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Cartesian Genetic Programming extension #77
Open
ImpactHorizon
wants to merge
23
commits into
perone:master
Choose a base branch
from
ImpactHorizon:master
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
ImpactHorizon
commented
Jul 27, 2016
- New genome type including operators for cartesian genetic programming with tests and usage example.
- Network data exchange in Migration modification for large genomes (like CGP ones).
- Added multithreading for fitness calculation which outperformes multiprocessing for large set of images as targets to compare.
- New type of error accumulator dedicated for vector processing (images or other signals).
Added genome type and initializator for it with tests.
Added 4 mutators (input, parameters, function and order of nodes in active path) for cartesian genetic programming and new methods for CGP genome to handle new mutators.
Added tests for new genome functions, whitespaces fixed and default crossover for CGP,
Added mutators and crossover tests, few bugs in mutators and cartesian genome fixed.
Added new methods for CGP genome (for getting expression, compiled code of expression and writing expression to pydot graph), reverted orientation of the net (now is more intuitive), few bugs fixed and new tests added.
Performance issue modification + tests. Now evaluating CGP genome only if mutations changed expression structure, the bigger the net is the more profit we get from this change. It is also noticeable for slow fitness function.
New object in utils for better array-like error calculation. Based on ErrorAccumulator, basic tests included.
Added possibility of using multithreading in evaluation of individuals from population. Multithreading is memory cheaper and faster in initialization than multiprocessing. Unit tests included.
Changed sending-receiving const chunk size schema. Now first 4 bytes of message is size of the data and sending-receiving is looped until all bytes from data are sent. This change allows to send bigger genomes (CGP genomes can have much bigger size) also after individual migration their score is reevaluated (every island can have different fitness function). Added tests for sending-receiving changes.
Improved migration
Multithreading
VectorErrorAccumulator addon
Added missing GA's method for setting multithreading, which calls internal population method for MT.
Changed dictionary keying from node object to node position (position is stable, objects not). Added missing expressionNodes copying in genome copy method.
Updating tests after changing expressionNodes keying in CGP genome.
Changed port value in tests for non-admin system users.
Multithreading
Added out nodes to expressionNodes in CGP genome so the reevaluating schema is now correct.
Now numpy import error is notified via logging module.
Added CGP example file. Finding image filter schema to obtain target data from input data. Using params in nodes, multithreading and VectorErrorAccumulator for better presentation of working with signals idea.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.