This was an assignment in the 1st semester of my MSc. in AI, at University of Moratuwa for the subject 'Evolutionary Computing'.

Given below are some example problems and how I solved them using the GA Optimization toolkit in Matlab 2012Rb.

Problem 1 : solving simultaneous equations

2x+y = 8

x+y = 6

Select 'Double Vector' for the population. Set 'Number of variables' as 2. Set 'Integer variable indices' as [1,2]. Use the correct fitness function and run the GA using the rest of the default values.

The fitness function I used is given below..

function fitness = optimization(params)

fitness1 = 8 - 2* params(1) - params(2);

fitness2 = 6 - params(1) - params(2);

if(fitness1 < 0 )

fitness1 = -fitness1;

end

if(fitness2 < 0 )

fitness2 = -fitness2;

end

fitness = fitness1 + fitness2;

end

You can change the default values and observe how the output value changes..

Problem 2 : solving a profit optimization problem

Suppose a fruit seller has 5 different kinds of fruits to sell. They are, mango(m), banana(b), strawberry(s), peach(p), orange(o). Suppose the profit from selling each fruit is as follows, mango - 30,banana - 15, strawberry - 50, peach - 20, orange - 10. If the fruit seller wants to make a profit of 10,000 how many fruits of each type should he sell?

Select Double Vector for the population. Since there are 5 types of fruits. You need a chromosome with 5 genes. Set 'Number of variables' as 5. You should specify that the minimum value for each variable is 0 by giving the lower bound as the vector [0,0,0,0,0]. You should also specify that the variables can only take integer values by giving the 'Integer variable indices' as [1,2,3,4,5]. Next you must specify the fitness function.

The fitness function I used is given below:

function fitness = fruits(params)

m = params(1);

b = params(2);

s = params(3);

p = params(4);

o = params(5);

fitness = 10000 - m*30-b*15-s*50-p*20-o*10;

if (fitness < 0)

fitness = -1*fitness;

end

After setting these values you can simply run the GA with the rest of the default values. The output I got was,

m = 26, b = 230, s= 19, p = 95, o = 292 which gives a profit of exactly 10,000.

The corresponding graphs are give below..

You can change the default values and observe how the output value changes..