I released genCore 0.7.0 today. I'm not too happy about it, because I planned to release it after I finish testing the XML module and after I finish the GUI module. However, I do need the responses about the new Circuits way, so I'm releasing this minor-0 version. When the XML module is finished, I'll release a minor-1, GUI, minor-2, and then, check this out: Eclipse plugin!
So its worth the wait, and worth the feedback. Please let me know what you think, so I can change the interfaces and abstractions, before it'll cost in many hours of work to make changes.... read more
First of all, I'd like to inform any of you patient users that the Circuits design I talked about earlier is written out and in the CVS for a couple of days now.
Another module I discussed in the Circuits news article is the XML module. The XML Module will be used to simplify the code: Instead of seeing a lot of code creating CircuitItem objects and connecting them to each other, you will have an XML file and an XMLCircuit which parses an XML file into a fully featured Circuit object. ... read more
Just a few notes about what I mean by Circuits (Those of you who actually Read the article about the genCore 0.6 release might have noticed I mentioned it briefly in the Expected changes).
To begin with, I'll just say that this is an entire new approach to the way the genotypes in the genCore engine move around in the "circle of life". If up until now a life of a genotype was to be born, to be pushed into a pool of other genotypes, then evaluated, selected, breeded, mutated and matured and then back into the pool till the pool converges, the circuits approach is about determining the process the genotype must go through in its life. ... read more
* Finished with the structure-based genotypes. They're working now, a (complicated) example can be seen in the "scheduler" project in CVS, but a TSPSolution example will be added later on to show how to use the structure-based genotypes.
* Sigh. Yet another change in the package tree... This time, to make more sense when distinguishing between bitset-based genotypes and structure-based genotypes.
* Moved many functionalities to the AbstractGenotype, and changed the way the VisitorsFactory worked a little.... read more
Those of you that actually take a look at the CVS from time to time might've noticed that there's a project called "scheduler" there.
One of the toughest problems in cs is the scheduling problem, and many different implementations have tried to solve it, including using genetic algorithms. This is my implementation to this problem using genCore as its engine, based on papers I've read on the subject.... read more
bzBee version 0.2 released!
Added functionality is almost entirely in the AbstractBee, which adds the hop() method to hop between hives, and to back-propogate when splitting tasks.
Functionality to be added in 0.3 will be generalizing tasks such as the bag-of-tasks paradigm, splitting-work paradigm, and a specific paradigm for use with genetic algorithms.
bzBee is a project inside GAF (Genetic Algorithms Framework) which allows applications a simple API to use distributed computing in a mobile-agents programming style.
genCore package version 0.5 is finally released!
The most significant changes are:
* The class tree has changed, most significantly with the added AbstractBitsetGenotype abstract class to abstract most of the Bitset operations, in order to create both regular and compressed BitsetGenotypes under it, and moving most classes to better named package names.
* Adding caching ability to the AbstractBitsetGenotype which improves performence greatly (In the TSP with 32 points improvements reached 9 times better).
* Changed structure to be able for further development of strcture-based genotypes instead of bitset-based genotypes.
* Added compression classes - However, not useful as of now.... read more
Few notes about progress:
Compression library is finished. Using Dynamic Huffman Coding as a compression algorithm (searchable through http://www.citeseer.com\). There is some work needed to be done on the gaf.genCore.util.compression.Compression static class, but for now the gaf.genCore.impl.local.GenotypeBitsetCompressed is working great.
Some performence issues:
* Compressed genotypes are barely working with large scale genes and island-count.
* Added caching abilities to AbstractGenotypeBitset. I dont know how I didnt think of this earlier - But this little caching scheme boosted the solver by almost one thousand (1000!!) percent! Originally added to help the compressed genotypes, it helped the uncompressed ones very much, as it seemed. ... read more
Just a few teasers for bzBee and genCore's new versions:
gaf.bzBee.client.BeeLaucnher - First appeared but not implmented in the 0.1 version of bzBee, now this little runnable class can launch any bee to any server using a simple interface provided by gaf.bzBee.client.BeeCreator.
gaf.bzBee.client.AbstractBee - This class enhances the bee's API to a degree where a developer need not worry about his bee going to the trash or how to choose which server to hop to - The AbstractBee provides everything for the developer, with simple interface and events. Also providing the ability to retrace the bee's route through the hives, using the setReturning() method to start the retrace, and the onReturning and onFinishedReturning events to perform operations when retracing the route. ... read more
These are the release notes of bzBee 0.1:
This is the first release of the bzBee API.
bzBee is an API for creating applications that use distributed computing using Mobile Agents as the programming method. Meaning, instead of programming the application from the server's "point of view", you write it from the single agent's point of view - Processing data, and producing output. The server or some paradigm will make sure the work will be distributed and that the data and executing code be transferred over the netwrk topology in an optimal way.... read more
Yes! genCore 0.4 has been released! Those of you who were following, might have noticed that there was no genCore 0.3 released. The reason is hat genCore 0.3 is kept in the "gafwork" module written in C++. It became non-operatable and does not compile, and for other judgements I have chosen to swtich to Java - And genCore 0.4 iis the product of that decision. Its based on the desiign of genCore 0.3, but it is rewritten entirely in Java, with minor changes to the design (Using the Visitors design pattern rather than some Assemblers design pattern that noone heard of).... read more
From some stupid reason I didnt notice that the CVS repository in SF.net doesn't show the module names, so if anyone wanted to check out the current version of genCore (0.3 with a bug in the Bitset operators as we speak) he/she can do it by cvs-ing the module "gafwork". Sorry for not doing this earlier.. Please let me know if you have any questions about the code or teh design - I'd love to help. :)... read more
There will be a delay in the release of the genCore v0.3.
The problem is that the project has already lost all its connection to static-ness (templated version for all classes) like it had in 0.2. The new design implemented in 0.3 is much better, but it uses a lot of the heap (for comparison, the 0.2 code didnt contain a single "new" statement).
So, I'm now rethinking the programming language. It seems like Java would be much more suitable for the new implmentation of genCore, and for the rest of the modules (which will be introduced in time).
I hope this decision will prove itself as the correct decision. For now, I'm not deleiting anything: The old genCore will stay as a CVS module called "gafwork", while the new Java version will be in a new module called "genCore", and by that I also start to devide the modules in CVS according to the modules in GAF. As I hinted before, there will be more modules. :)... read more
Well, 0.2b is out on the File Releases, and soon it'll be out from the CVS. It has served its purpose, and its soul is not leaving us yet: Its the core to the entire 0.3 class tree.
I'm still leaving its code in the File Releases, so if anyone wants it (and I know noone does - Noone is actually viewing this site at the moment..) its downloadable from there.
Well, the 0.2 Beta went out about a week ago and it seemed that it didnt cause such a stir.
Heh, obviously - Who knows about this forsaken project?
But seriously now. 0.2b was a testing grounds, to see that I could actually figure out how to make things work, and it worked - I bet it could be done a LOT better, but for the trial subjects (TSP and some other problem which I forgot its name) it worked very good (to my standards - Ofcourse, it might've been doing much better).... read more