The gatool in MATLAB provides researchers with the ability to quickly apply optimization techniques to problems that need a genetic algorithm. As with all toolboxes contained in MATLAB the gatool has a command line interface and a GUI interface. We will be using the GUI interface since it provides an easier means of modifying the parameters of the toolbox. The gatool implements a canonical genetic algorithm, with the ability to provide custom functions for mutation, crossover and selection operators. Before going any further lets review Introduction To MathWorks MATLAB. Now that you are back lets see how this can be done.

We will need to create two functions for use with the gatool (1)objective function, (2)creation function. The objective function will be minimized by the genetic algorithm to give an ideal solution for our problem definition. While the creation function will be used to create initial individuals for the genetic algorithm population.

**Objective Function:**

function rtn = objective(param)
seq = [1 2 3 4 5];
temp = 5;
for i = 1:length(param)
if eq(seq(i),floor(param(i)))
temp = temp - 1;
end
end
rtn = temp;

**Creation Function:**

function rtn = creator(genomeLength, fitnessFn, options)
temp = floor(5.*rand(5,1));
rtn = temp';

**Gocha’s:** Arguements for the respective functions must be provided otherwise the toolbox will not be able to provide the necessary parameters to the functions.

Launch gatool-> Type gatool in the MATLAB command window

**GATOOL Interface: **Only parameters marked in red were modified.

**Results: **Click the start button on the gatool to start the optimization routine.

**Results Plot:**

**Conclusion:**

This post intends to use the gatool present in MATLAB to evolve a vector of integers from 1 to 5. If you take the floor of the final point listings you will see that this aim was achieved with 0.0 fitness. As an exercise you could modify the other parameters present in the gatool and re-run the routine to observe any changes that may occur.

### Like this:

Like Loading...

*Related*

## Published by Romaine Carter

Interests: optimization algorithms, Neural Nets, MATLAB, MASM programming, Visual C++, Python, C#.Net, Haskell, software design patterns, TDD and ASP.NET MVC x.
View all posts by Romaine Carter