The toolbox provides the high level functions (including a general evolutionary algorithm capable of solving a wide range of problems) and a big group of methods. In total, more than 100 functions at present. Users can write new methods and use them in the toolbox easily. They only need to maintain the header for each method, which defines the group and order of the compulsory input/output parameters. Additional parameters are always possible to let users implement general methods that depend on other inputs. This approach allows us to keep on incrementing the functionality of the toolbox easily while maintaining the original framework and lets users incorporate knowledge about their problem in the population of individuals (solutions).
The individual are implemented as a group of chromosomes and each chromosome codified with a group of genes. The genes of the individuals are generated with the selected low level function so any kind of coding and domain can be used. The toolbox allows the use of different coding and domains for the genes of each chromosome. Individuals with different number of genes can also be created. High-level functions (such as crossover and mutation) that work on the population can use different methods for each of the chromosomes.
EVOCOM also provides a group of structures for specifying all the information selected. The information is organized in the individual structure (for storing the information and methods that determine the characteristics of the individuals), the objective structure (related with the objective functions) and the EA structure (for storing the specification of all the methods of the general evolutionary algorithm). When the three structures are correctly filled, users can run the general EA to obtain the solutions of their problems.
Specifying the contents of the structures and running the algorithm can be done from the Matlab prompt (using a group of functions that deal with the structures) or from a group of friendly GUIs. The same functionality can be reached in both cases, although the GUIs perform some error checking about the consistency of the information provided. To shorten the path between these ways of working with EVOCOM, the GUIs include an option for writing the information provided to the GUIs in a Matlab Script file that can be run from the command line.
The second version of the toolbox is working and we are using them for solving test and real-life problems. It is documented in 3 different manuals (a user manual with over 50 pages, a reference manual with over 250 pages, and a user manual of its graphic user interface with nearly 100 pages). Several examples are included with the toolbox, some of them explained in the manuals. New low level functions are being incorporated as we need them for solving more problems.
Right now the toolbox depends only on general Matlab functions, and so it is not necessary to use other toolboxes. However, when users are solving problems whose objective functions or methods depends on other Matlab tools (such as the control toolbox or Simulink), those tools will be necessary. For the methods and examples provided so far, none of the Matlab toolboxes are needed.