All Courses
All Courses
Courses by Software
Courses by Semester
Courses by Domain
Tool-focused Courses
Machine learning
POPULAR COURSES
Success Stories
Aim : To find the maxime value of a function using matlab. Objective : 1. Knowing how to use ga inbuilt function , and syntax of ga. 2. Information about genetic algorithm. Theory : Genetic algorithm is to find the optimum value . 1.…
Epuri Yoga Narasimha
updated on 27 Nov 2020
Aim : To find the maxime value of a function using matlab.
Objective :
1. Knowing how to use ga inbuilt function , and syntax of ga.
2. Information about genetic algorithm.
Theory :
Genetic algorithm is to find the optimum value .
1. At , first let's about some basic information about genetic algorithm.
2. Genetic algorithm also called evolutionary algorithm , as the idea of this algorithm was from darwin
Evolutionary theory.
3. Genetic algorithm steps :
1. Initialization.
2. Selection.
3. Crossover.
4. Mutation.
5.Sorting and selecting best solution.
4. Solutions of a fitness function called chromosomes.
5. Fitness function , the function to find the optimum value.
Steps explanation in gentic algorithm :
1. Initialization : At first , a random solution is created and caluculated it's fitness value .
2. Selected best solution , using different types of selection algorithms like Tournament selection.
3. chromosomes undergoes crosssover for to generate offsprings (advanced over Parents).
4 . Undergoes mutation if required , to modify it's nature.
5 . Sorting and selected best solutions from it .
6. The steps repeated.
Chart descrinig the Genetic algorithm:
Syntax of 'ga' :
[opt_co,fval,exitflag,output,population,score] = ga(fit_fun,nvar,Aeq,beq,A,B,lb,ub,nonlcon,options)
outputs:
1.opt_co = co-ordinates of the optimum soluitons.
2.fval = optimum soluiton value.
3.exitflag = tells what is the stopping criteria.
4.Outputs - tells information about ga number of iterations , population size and stopping criteria.....
5.population - final population.
6.score - final popualtion fitiness value.
Inputs:
1.fit_fun - fitness function , always must be a handle.
2.nvar - Number of decision variables.
3.Aeq - L.H.S side , containing the coefficients of the linear equality constraints.
4.beq - R.H.S side , containing the numeric value of linear equality constraints.
5.A - Similar to Aeq , but A contains linear inequality constraints.
6. B - similar to B,contains for linear inequality constraints.
7 . lb - Lower bound of decision variables.
8 . ub - upper bound of decision variables.
9 . nonlcon - function handle , contains information non-linear equalities and inequalities constraints.
10. optoins - options used to change default values of ga , if required.
Fitness function:
f1=(sin((5.1⋅π⋅x)+0.5))6f1=(sin((5.1⋅π⋅x)+0.5))6
f2=(sin((5.1⋅π⋅y)+0.5))6f2=(sin((5.1⋅π⋅y)+0.5))6
f3=exp(-4⋅log(2)⋅(x-0.0667)20.64)f3=exp(−4⋅log(2)⋅(x−0.0667)20.64)
f4=exp(-4⋅log(2)⋅((y-0.0667)20.64)f4=exp(−4⋅log(2)⋅((y−0.0667)20.64)
(f=-1⋅f1⋅f2⋅f3⋅f4)(f=−1⋅f1⋅f2⋅f3⋅f4)
Code snippet for fitness function:
function output_func_value = stalgamite(input_vec)
% this function used to get the value of the function at given inputs
% storing the first value in input_vec in x
x = input_vec(1) ;
% storing the second value in input_vec in y
y = input_vec(2) ;
% splitting total function into parts for simplicity
f1 = (sin((5.1*pi*x)+0.5))^6;
f2 = (sin((5.1*pi*y)+0.5))^6;
f3 = exp(-4*log(2)*((x-0.0667)^2)/0.64);
f4 = exp(-4*log(2)*((y-0.0667)^2)/0.64);
% Final equation
% output_func_value , stores the function value at given inputs
% -ve sign for to find the maximum output of the fitness function.
output_func_value = (-1*f1*f2*f3*f4);
end
This snippet for defining the fitness function.
-ve sign used to find the maximum value of the fitness function , as ga only finds the optimum minimum value.
Code snippet:
close all % to clear the figures at present.
clear all % to clear the data in worksapce.
clc % to clear the command window.
% creating the range of x and y axis values
x = linspace(0,0.6,150);
y = linspace(0,0.6,150);
% Creating a 2-D grid for to make the size of x and y equal
[xx,yy] = meshgrid(x,y);
% storing the length of x in variable n
n = 50;
% creating an array to store the function values at all inputs
%f_out = NaN(n,n);
% creating an input array to store the x and y value at the current iterations
%input = NaN(1,2);
% for loop to calculate the function value of the objective function.
for i = 1:length(x)
for j = 1:length(x)
inputs(1) = xx(i,j);
inputs(2) = yy(i,j);
f_out(i,j) = stalgamite(inputs);
end
end
% rng used to create a same random numbers over executions.
% study 1
% this ga gives the global maxima of the objective function , considered no
% bound constraints , non linear/linear inequality and equality
% constraints.
for i = 1:n
[inpu,fval(i)] = ga(@stalgamite,2);
xopt(i) = inpu(1);
yopt(i) = inpu(2);
end
figure(1)
subplot(2,1,1)
surfc(xx,yy,f_out)
hold on
plot3(xopt,yopt,fval,'marker','o','markersize',5,'markerfacecolor','r')
xlabel('x values')
ylabel('y values')
zlabel('f_out values')
title('function values for given inputs')
shading interp
subplot(2,1,2)
plot(-fval)
xlabel('No. of iterations')
ylabel('Function maximum')
title('No.of iterations vs Function maximum')
%% Study 2
% Now , considering the bound constraints of decision variable.
% Lower bound = [0 0]
% Upper bound = [1 1]
% Considering no.of iterations as 50
tic
for j = 1:n
[inpu1,fval1(j)] = ga(@stalgamite,2,[],[],[],[],[0 0],[1 1]);
optimum_coordinate1(j) = inpu1(1);
optimum_coordinate4(j) = inpu1(2);
end
stop_time2 = toc;
figure(2)
subplot(2,1,1)
surfc(xx,yy,f_out)
hold on
plot3(optimum_coordinate1,optimum_coordinate4,fval1,'marker','o','markersize',5,'markerfacecolor','r')
xlabel('x values')
ylabel('y values')
zlabel('f_out values')
title('function values for given inputs')
shading interp
subplot(2,1,2)
plot(-fval1)
xlabel('No. of iterations')
ylabel('Function maximum')
title('No.of iterations vs Function maximum')
%% Study 3
%Changing the population size , using optimoptions
options = optimoptions('ga');
options = optimoptions(options,'PopulationSize',300);
for j = 1:n
[inpu1,fval2(j)] = ga(@stalgamite,2,[],[],[],[],[0 0],[1 1],[],[],options);
optimum_coordinate3(j) = inpu1(1);
optimum_coordinate4(j) = inpu1(2);
end
stop_time3 = toc
figure(3)
subplot(2,1,1)
surfc(xx,yy,f_out)
hold on
plot3(optimum_coordinate3,optimum_coordinate4,fval2,'marker','o','markersize',5,'markerfacecolor','r')
xlabel('x values')
ylabel('y values')
zlabel('f_out values')
title('function values for given inputs')
shading interp
subplot(2,1,2)
plot(-fval2)
xlabel('No. of iterations')
ylabel('Function maximum')
title('No.of iterations vs Function maximum')
Step explanation of code:
1. At first , commands to clean the data on present interface.
2. defining the range of x and y values.
3. using meshgrid , to create a 2-D coordinate or grid of x and y values.
4. used for loop , to find function values for all values of x and y combination values.
5. ga used to find optimum values and returns optimum coordinated and optimum function value.
6. plotted the surf plot , and optimum values in the same plot using subplot command , iterations vs function optimum values in next subplot.
7. This code for without any constraints.
8. Shading interp used for to remove the gridlines on the surf plot.
Output :
8. In second study , considered bound constraints.
9 . Lower bound as [ 0 0 ] , Upper bound as [ 1 1 ] , means decrease the range for matlab to work.
10 . code same as with no constraints.
Output :
as can observe that , acuuracy increased to find optimum value.
11. Now , study by increasing the population size.
12. code same.
Output:
as you can onserve the red point over the maximum peak , indicating the maximum value.
Outputs of code:
Conclusion :
1. Accuracy/precesion increased on by increaing the populaiton size , and totally depends on the constraints.
2. Got a single global maximum value over the defined range.
Leave a comment
Thanks for choosing to leave a comment. Please keep in mind that all the comments are moderated as per our comment policy, and your email will not be published for privacy reasons. Please leave a personal & meaningful conversation.
Other comments...
Project 4
Objective 1. Detect lanes using Hough Transform Method. Steps in lane Detection 1. Detect Edges using Canny Edge Detection Method. 2. Capture the Region of Interest in Image. 3. Detect lines using Hough Transform. 4. Calculate the actual left and right lanes from all lines. 6. Find the coordinates of the lines. 7. Display…
21 Feb 2023 05:22 AM IST
Lane Detection using Hough Transform
Objective 1. Detect lanes using Hough Transform Method. Steps in lane Detection 1. Detect Edges using Canny Edge Detection Method. 2. Capture the Region of Interest in Image. 3. Detect lines using Hough Transform. 4. Calculate the actual left and right lanes from all lines. 6. Find the coordinates of the lines. 7. Display…
21 Feb 2023 05:20 AM IST
Edge Detection and Hough Transform
Objective: Detecting Edges using Canny Edge Detector. Understand and display the outputs of all steps in the canny Edge Detection process. Effect on the output on changing the parameters of the Non-Maximum Suppression. Understand Hough Transform and Lane Detection using Hough Transform. Steps Follow in the Discussion:…
28 Dec 2022 09:58 PM IST
week 2 : Image Filtering
Objective: Apply Prewitt and Laplacian filter on the image Libraries used: Opencv Open Source computer vision library. cross-platform supported. can perform through c, c++, and python. numpy Mathematical library to work in the domain of Linear algebra, Fourier transform, and matrices. Image Filtering…
09 Jul 2022 06:36 AM IST
Related Courses
0 Hours of Content
Skill-Lync offers industry relevant advanced engineering courses for engineering students by partnering with industry experts.
© 2025 Skill-Lync Inc. All Rights Reserved.