Libcea is a library for running evolutionary algorithms. Currently under heavy development, libcea is being written in C++ with a few tool scripts written in Bash script. It is built with the CMake build system and version-controlled with git (obviously). Cog is used to generate test code from Python embedded in C++ source.
The final aim is a library which can be used to run "quick and dirty" EAs using the provided class templates, or heavily, if not completely, customised algorithms which merely take advantage of the framework and so-called "meta-algorithm" which CEA provides.
- Rolled back allocator changes. Will implement later perhaps...
- After some fiddling, the
makeandmake_push_backmember functions ofalghave (probably) been superseded by theobj_factclass and itsget<ObjClass>member function. This allows users to produce compatiblealgandop_*objects easily, without breaking encapsulation. - Tests largely redone. Some are only demo cases at the moment, with no value checking undertaken.
- Major redesign to allow populations to be built from any roughly STL compliant containers. Users will write
cea::cea<std::vector, std::list, float> myCeaAlg(num_individuals, num_genes);, for example.
- Cea/src/ops/xo_npoint.hpp: Allow variable number of children independent of parents.
- Cea/src/ops/xo_npoint.hpp: Handle parents.size() + children.size() != p.size().
- Cea/src/ops/xo_npoint.hpp: Allow list-like genomes to take advantage of their structure by using splce-like operations here.
- Cea/src/ops/sel_trunc.hpp: Make op_sel_trunc work properly with non-RA iterators.
- Cea/src/ops/sel_trunc.hpp: Implementation reorders the population - desirable?