MATLAB: How to optimize a non linear single objective function constrained with only integer variables using genetic algorithm

integer ga

For my problem which is a single objective, I am using genetic algorithm. In my problem, I have five different variables (all integer values) and their values are listed below.
Variable 1= 1500, 2000, 2500, 3000 and 3500.
Variable 2= 50, 55, 60, 65,…..100.
Variable 3= 5, 6, 7,…15.
Variable 4= 5, 6, 7,…15.
Variable 5 = 5, 6, 7,…15.
I want to use binary GA (not real GA), but I am facing an issue in their representation using binary bits due to the precision factor.

Best Answer

You would probably do best to use the ga mixed integer optimization capability. Have your five variables be integer-valued. Internally, in the objective function, change the variables to their appropriate values, something like this:
function y = objfun(x)
v1 = 1500 + 500*x(1);
v2 = 50 + 5*x(2);
v3 = 5 + x(3);
v4 = 5 + x(4);
v5 = 5 + x(5);
% do your fitness calculation using the v variables
% here
end
Call the ga solver with IntCon = 1:5. Set lower bounds of zeros(5,1) so each variable is 0 or greater, and upper bounds of [4,10,10,10,10]. There is a similar example here.
Alan Weiss
MATLAB mathematical toolbox documentation
Related Question