This repository has been archived by the owner on Jul 16, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 86
V1.0.0
Jacco Geul edited this page Feb 24, 2014
·
1 revision
Here follows a first draft of the development roadmap, in form of a TODO list.
- Optimization stuff
- Add mixed integer programming capabilities. Francesco proposes to add a member to the individual representing how many elements of the chromosome are integers. Algorithms such as DE would then work only on the continuous part. (DONE)
- Add constrained optimization capabilities. GOproblem should have a virtual function that returns also the constraint value and a member storing default values for penalty parameters to be used by those algorithms that do not know how to use the constraints. (DONE)
- Psowork stuff. Should be merged but only after a review of the code (or reimplementation). (DONE)
- Variable chromosome length. Could be done by a similar trick as the one proposed for the mixint.
- Add multiobjective. Same philosophy as above (virtual function returning vectors) (DONE)
- Provide a test problem for the external executable (twodee generalization)
- Centralize the individuals comparison (DONE)
- Come up with a test suite that actually tests all basic classes (and possibly automatically)
- Parallelization stuff
- Reimplement entirely David work on serialization for the archipelago (prerequisite for many things) (DONE)
- Make island as a polymorphic class (mpi island, boinc island, local island) (DONE)
- Extend PaGMO to deal with mpi clusters ... (DONE)
- Extend PaGMO to deal with islands connected via ip (boinc type) ...
- Pythonic stuff
- Allow users to define problems and algorithms in python. (DONE)
- Namespaces to be introduced as to mirror python module structures: example problem::rastrigin(20) instead of rastriginProb(20) - this is now being worked on in the [http://pagmo.git.sourceforge.net/git/gitweb.cgi?p=pagmo/pagmo;a=shortlog;h=refs/heads/code_refactor code_refactor] branch (DONE)
-
Linux Kernel coding style is decided and used as a basic reference (e.g. no CamelCase and tabs are eight.....) [http://lxr.linux.no/linux/Documentation/CodingStyle Linus' kernel coding style document]. Only variables that are likely to be used by other code users have to follow these strict guidelines.Implemented using [http://astyle.sourceforge.net/ astyle] in the [http://pagmo.git.sourceforge.net/git/gitweb.cgi?p=pagmo/pagmo;a=shortlog;h=refs/heads/code_refactor code_refactor] branch - Documentation uses doxygen and is mandatory (DONE)
- Comprehensive Windows packages: we may distribute a whole Python installation with all the needed extra packages (IPython, numpy, matplotlib, etc.). It would be quite big but self-sustaining. In addition, we could provide a minimal zip file with just PyGMO, for power-users who know how to administer their own Python installation. (DONE)
- Ubuntu packages.
- Source packages.
- With [http://www.riverbankcomputing.co.uk/software/pyqt/intro PyQt4] we could have some nice GUI capabilities, if we think they are useful (long-term).