Challenge

Week 4.1 - Genetic Algorithm

AIM:

  • TO WRITE A CODE IN MATLAB TO OPTIMISE THE STALAGMITE FUNCTION AND FIND THE GLOBAL MAXIMA OF THE FUNCTION.
  • CLEARLY EXPLAIN THE CONCEPT OF GENETIC ALGORITHM IN YOUR WORDS AND ALSO EXPLAIN SYNTAX FOR GA IN MATLAB.
  • PLOT GRAPHS FOR ALL 3 STUDIES AND FOR ‘F’ MAXIMUM Vs NO.OF ITERATION.

STALAGMITE:

  • A STALAGMITE IS A TYPE OF ROCK FORMATION THAT RISES FROM THE FLOOR OF A CAVE DUE TO THE ACCUMULATION OF THE MATERIAL DEPOSITED ON THE FLOOR FROM CEILING DRIPPINGS. STALAGMITES ARE TYPICALLY COMPOSED OF CALCIUM CARBONATE, BUT MAY CONSIST OF LAVA, MUD, PEAT, PITCH, SAND, SINTER AND AMBERAT (CRYSTALLIZED URINE OF PACK RATS.)
  • SINCE OUR FUNCTION GIVES A SHAPE OF STALAGMITE IT IS NAMED AS STALAGMITE FUNCTION . STALAGMITE FUNCTION IS THE MATHEMATICAL MODEL THAT HELPS US TO GENERATE MINIMAS AND MAXIMAS. IT IS 3-DIMENSIONAL FUNCTION AND IS DESIGNATE TO GENERATE LOCAL MAXIMAS.

GENETIC ALGORITHM:

GENETIC ALGORITHM SOLVES SMOOTH OR NON-SMOOTH OPTIMIZATION PROBLEMS WITH ANY TYPES OF CONSTRAINTS, INCLUDING INTEGER CONSTRAINTS. IT IS A STOCHASTIC, POPULATION-BASED ALGORITHM THAT SEARCHES RANDOMLY BY MUTATION AND CROSSOVER AMONG POPULATION MEMBERS.

A GENETIC ALGORITHM (GA) IS A METHOD FOR SOLVING BOTH CONSTRAINED AND UNCONSTRAINED OPTIMIZATION PROBLEMS BASED ON A NATURAL SELECTION PROCESS THAT MIMICS BIOLOGICAL EVOLUTION. THE ALGORITHM REPEATEDLY MODIFIES A POPULATION OF INDIVIDUAL SOLUTIONS. AT EACH STEP, THE GENETIC ALGORITHM RANDOMLY SELECTS INDIVIDUALS FROM THE CURRENT POPULATION AND USES THEM AS PARENTS TO PRODUCE THE CHILDREN FOR THE NEXT GENERATION. OVER SUCCESSIVE GENERATIONS, THE POPULATION "EVOLVES" TOWARD AN OPTIMAL SOLUTION.

YOU CAN APPLY THE GENETIC ALGORITHM TO SOLVE PROBLEMS THAT ARE NOT WELL SUITED FOR STANDARD OPTIMIZATION ALGORITHMS, INCLUDING PROBLEMS IN WHICH THE OBJECTIVE FUNCTION IS DISCONTINUOUS, NONDIFFERENTIABLE, STOCHASTIC, OR HIGHLY NONLINEAR.

IN MATLAB THE GENETIC ALGORITHM SOLVER IS ABBREVIATED AS “GA”. WHICH IS ONLY USED TO FIND MINIMUM OF A FUNCTION.

EXPLANATION OF ‘’GA’’ SYNTAX.

STALAGMITE FUNCTION TO BE OPTIMIZED:

                             

THIS STALAGAMITE FUNCTION CAN CODED AS USER FUNCTION IN SUB SCRIPT.

function [F]=stalagmaite_function(inputs)
x=inputs(1);
y=inputs(2);

f1x=(sin(5.1*pi*x+0.5)).^6;
f1y=(sin(5.1*pi*y+0.5)).^6;

f2x=exp(-4*log(2)*(((x-0.0667).^2)/0.64));
f2y=exp(-4*log(2)*(((y-0.0667).^2)/0.64));

F=-(f1x*f1y*f2x*f2y);
end

 %since Genetic algotitm only minimises the function, in order to maximise it we put a negative sign.

PROCESS FLOW

  • THE FLOWCHART EXPLAINS THE WORKING OF GENETIC ALGORITHM.
  • THE THREE MAIN PROCESSES GOING BEHIND THE GA SOLVERS SUCH AS;
  • SELECTION
  • CROSSOVER
  • MUTATION

                  

  1. INITIAL POPULATION
  • THE PROCESS BEGINS WITH THE SET OF INDIVIDUAL WHICH IS CALLED AS POPULATION. EACH INDIVIDUAL IS SOLUTION TO THE PROBLEM YOU WANT TO SOLVE.
  • AN INDIVIDUAL IS CHARACTERIZED BY A SET OF PARAMETERS (VARIABLES) KNOWN AS GENES .GENES ARE JOINED INTO STRINGS TO FORM A CHROMOSOME (SOLUTION).
  • IN GENETIC ALGORITHM, THE SET OF GENES OF INDIVIDUAL IS REPRESENTED USING STRING, IN TERM OF AN ALPHABET; USUALLY BINARY VALUES ARE USED (STRINGS OF 1S AND 0S). WE SAY THAT WE ENCODE THE GENES IN CHROMOSOME.
  1. SELECTION:
    IT DEFINED THE SELECTION OF PARENTS FOR THE NEXT GENERATION USING SELECTION FUNCTION/FITNESS FUNCTION WHICH WILL BE BASED ON THE FITNESS VALUE
  1. CROSS OVER:
    CROSSOVER ENABLES THE ALGORITHM TO EXTRACT THE BEST CHARACTERS FROM DIFFERENT INDIVIDUALS AND RECOMBINE THEM INTO POTENTIALLY SUPERIOR CHILDREN.
  1. MUTATION:
    MUTATION ADDS TO THE DIVERSITY OF A POPULATION AND THEREBY INCREASES THE LIKELIHOOD THAT THE ALGORITHM WILL GENERATE INDIVIDUALS WITH BETTER FITNESS VALUES.

STUDY OF CASE 1 UNBOUNDED GA PERFORMING 

clear
close
clc

%CODE FOR FINDING THE GLOBAL MAXIMA
%INPUT VALUES
x=linspace(0,0.6,150);
y=linspace(0,0.6,150);

%CONVERTING INTO 2-D ARRAY
[xx,yy]=meshgrid(x,y);

%CALULATING THE FITTING FUNCTION 
for i=1:length(xx)
    for j=1:length(yy)
        input(1)=xx(i,j);
        input(2)=yy(i,j);
        F(i,j)=stalagmaite_function(input);
    end
end
%STUDY OF UNBOUNDED GA PERFORMING (CASE 1)
for i = 1:50
    [inputs, Fopt(i)]=ga(@stalagmaite_function,2);
    xopt(i)=inputs(1);
    yopt(i)=inputs(2);
end

%PLOTTING GLOBAL MAXIMA AND FUNCTION VALUES
figure(1)
surf(x,y,-F)
xlabel('X VALUES')
ylabel('Y VALUES')
zlabel('F VALUES')
shading interp

figure(2)

subplot(2,1,1)
surf(x,y,-F)
xlabel('X VALUES')
ylabel('Y VALUES')
zlabel('F VALUES')
shading interp
hold on
plot3(xopt,yopt,-Fopt,'color','b','Marker','o',MarkerSize=5,MarkerFaceColor='r');
title('CASE-1:UNBOUNDED INPUTS VALUES')
legend('STALAGMITE','GLOBAL MAXIMA')
subplot(2,1,2)
plot(-Fopt)
xlabel('ITERATION')
ylabel('FUNCTION MAXIMUM VALUE')
grid ON

STUDY OF CASE 2 BOUNDED GA PERFORMING WITH LOWER BOUNDARY AND UPPER BOUNDARY.

clear
close
clc

%CODE FOR FINDING THE GLOBAL MAXIMA
%INPUT VALUES
x=linspace(0,0.6,150);
y=linspace(0,0.6,150);

%CONVERTING INTO 2-D ARRAY
[xx,yy]=meshgrid(x,y);

%CALULATING THE FITTING FUNCTION 
for i=1:length(xx)
    for j=1:length(yy)
        input(1)=xx(i,j);
        input(2)=yy(i,j);
        F(i,j)=stalagmaite_function(input);
    end
end

%STUDY OF BOUNDED GA PERFORMING (CASE 2)
for i = 1:50
    [inputs, Fopt(i)]=ga(@stalagmaite_function,2,[],[],[],[],[0;0],[0.4;0.4]);
    xopt(i)=inputs(1);
    yopt(i)=inputs(2);
end

%PLOTTING GLOBAL MAXIMA AND FUNCTION VALUES
figure(1)
surf(x,y,-F)
xlabel('X VALUES')
ylabel('Y VALUES')
zlabel('F VALUES')
shading interp

figure(2)
subplot(2,1,1)
surf(x,y,-F)
xlabel('X VALUES')
ylabel('Y VALUES')
zlabel('F VALUES')
shading interp
hold on
plot3(xopt,yopt,-Fopt,'color','b','Marker','o',MarkerSize=5,MarkerFaceColor='r');
title('CASE-2:BOUNDED INPUTS VALUES')
legend('STALAGMITE','GLOBAL MAXIMA')
subplot(2,1,2)
plot(-Fopt)
xlabel('ITERATION')
ylabel('FUNCTION MAXIMUM VALUE')
grid ON

STUDY OF CASE 3 BOUNDED GA PERFORMING WITH LOWER BOUNDARY AND UPPER BOUNDARY AND WITH ADDING OPTIONS INCREASING ITERATION VALUES.

clear
close
clc

%CODE FOR FINDING THE GLOBAL MAXIMA
%INPUT VALUES
x=linspace(0,0.6,150);
y=linspace(0,0.6,150);

%CONVERTING INTO 2-D ARRAY
[xx,yy]=meshgrid(x,y);

%CALULATING THE FITTING FUNCTION 
for i=1:length(xx)
    for j=1:length(yy)
        input(1)=xx(i,j);
        input(2)=yy(i,j);
        F(i,j)=stalagmaite_function(input);
    end
end

%STUDY OF BOUNDED GA PERFORMING USING OPTIONS (CASE 3)
options = optimoptions('ga');
options = optimoptions(options, 'PopulationSize',270);
for i = 1:50
    [inputs, Fopt(i)]=ga(@stalagmaite_function,2,[],[],[],[],[0;0],[0.4;0.4],[],[],options);
    xopt(i)=inputs(1);
    yopt(i)=inputs(2);
end

%PLOTTING GLOBAL MAXIMA AND FUNCTION VALUES
figure(1)
surf(x,y,-F)
xlabel('X VALUES')
ylabel('Y VALUES')
zlabel('F VALUES')
shading interp

figure(2)
subplot(2,1,1)
surf(x,y,-F)
xlabel('X VALUES')
ylabel('Y VALUES')
zlabel('F VALUES')
shading interp
hold on
plot3(xopt,yopt,-Fopt,'color','b','Marker','o',MarkerSize=5,MarkerFaceColor='r');
title('CASE-3:BOUNDED INPUTS VALUES WITH OPTIONS VALUES')
legend('STALAGMITE','GLOBAL MAXIMA')
subplot(2,1,2)
plot(-Fopt)
xlabel('ITERATION')
ylabel('FUNCTION MAXIMUM VALUE')
grid ON

EXPLANATION OF CODE:

  • HERE THE COMMAND “CLOSE ALL”, “CLEAR ALL”, “ CLC” ARE USE TO CLOSE ANY PREVIOUS PLOT AND TO CLEAR THE WORK SPACE AND COMMAND WINDOW RESPECTIVELY.
  • THEN THE VALUE OF ‘X’ AND ‘Y’ ARE ENTERED USING ‘LINSPACE ()’ COMMAND. THIS IS OUR SEARCH SPACE, THAT MEANS FOR WHICH VALUE OF ‘X’ AND ‘Y’ THAT HAVE DEFINED IN ‘LINSPACE ()’ ARE WE GETTING AN OPTIMIZED VALUE FOR STALAGMITE FUNCTION.
  • NOW USING “MESHGRID” COMMAND THIS 1-D ARRAY IS CONVERTED INTO 2-D ARRAY. THESE 2-DIMENSIONAL ARRAYS ARE NAMED AS ‘XX’ &’YY’ IN THE CODE.
  • NOW TO CALCULATE THE STALAGMITE FUNCTION WE HAVE TO USE “FOR LOOP”, AND IN THIS LOOP WE HAVE DEFINE ‘I’ & ’J’ AS EACH VALUE OF ‘X’ AND ‘Y’ OF 2-DIMENSIONAL ARRAY.
  • NOW FOR EACH VALUE OF ‘X’ & ‘Y’ WE ARE CREATING AN ARRAY NAMED AS “INPUTS” AND THUS THIS INPUT WILL BE ROW VECTOR I.E. 2 COLUMN MATRIX.
  • NOW FIRST COLUMN OF INPUT VECTOR IS DEFINED AS VALUE OF ‘XX’ MATRIX AND SECOND COLUMN OF INPUT VECTOR ARE DEFINED AS ‘YY’ MATRIX VALUES.
  • NOW USING THESE VALUES THE STALAGMITE FUNCTION IS CALCULATED. FUNCTION FOR STALAGMITE IS ENTERED SEPARATELY AS A FUNCTION CODE USING THE EQUATIONS AS MENTIONED ABOVE.

IN THE STUDY CASE 1 WITHOUT THE BOUNDED VALUES.

  • THE CODE IS SIMILAR TO THAT OF ABOVE CODE, THE ONLY CHANGE HERE WE ARE PERFORMING “GA ()” FOR SOME NUMBER OF ITERATION AND SEE HOW THE VALUE ARE CHANGING FOR EACH ITERATION.
  • IN THE ABOVE CODE, WE HAVE DEFINED ‘X’ & ‘Y’ VALUES AND THEN WE HAVE DECIDE THE NUMBER OF TIMES THE ‘GA ()’ HAS TO BE PERFORMED AS A VARIABLE “NUM_CASE” AND WE HAVE GIVEN IT A VALUE.
  • THEN USING ‘X’ AND ‘Y’ WE CREATE 2-D ARRAY USING “MESH GRID()” COMMAND.
  • NOW USING THE FOR LOOP VALUE OF “F” ARE DETERMINED, IT IS SAME AS THE ABOVE CODE USED IN THIS “FOR LOOP”.
  • NOW SINCE THE VALUE OF ‘F’ IS NEGATIVE AND WE GET THE DOWNWARD GRAPH ,SO IN ORDER TO GET UPWARD GRAPH ,WE HAVE MULTIPLIED ‘F’ WITH “-“(MINUS) SYMBOL AND ASSIGNED IT TO VARIABLE “F”.
  • NOW HERE ANOTHER FOR LOOP IS USED TO EVALUATE “GA ()” FOR 50 ITERATIONS WE HAVE DEFINED “L” AS THE NUMBER OF ITERATION AND THEN WE HAVE ENTERED THE “GA ()" FUNCTION WITH THE NORMAL SYNTAX THAT WE HAVE MENTION IN PREVIOUS CODE. ONLY THE FITTING FUNCTION AND NUMBER OF VARIABLE ARE ENTERED AS INPUTS FOR THE “GA ()” FUNCTION.
  • THE 1ST VALUE OF INPUT IS ASSIGNED TO A VARIABLE “XOPT” AND THE 2ND VARIABLE “YOPT” . EVERY TIME FOR LOOP IS EXECUTED IT GIVE THE NEW VALUE OPF [“FOPT”,”XOPT”,”YOPT”]
  • THEN THE “FOPT” VALUE ARE MULTIPLIED WITH “-“ (MINUS) SYMBOL AND ASSIGNED TO THE VARIABLE “FOPT”.THIS IS DONE IN ORDER TO POINT THE GLOBAL MAXIMA SINCE OUR GRAPH WILL BE UPWARD . THIS IS ONLY DONE FOR PLOTTING PURPOSE.
  • THEN THE FIGURE () COMMAND IS ENTERED TO OPEN A NEW FIGURE WINDOW, THEN THE SUBPLOT () COMMAND IS USED TO OPEN THE FIRST GRAPH IN THE FIGURE WINDOW. SUBPLOT (M , N , P) DIVIDES THE CURRENT FIGURE INTO AN M-BY-N GRID AND CREATES AXES IN THE POSITION SPECIFIED BY P. ACCORDINGLY THE VALUE ARE ENTERED IN THE CODE FOR “SUBPLOT()”
  • THEN THE PLOTTING IS DONE USING THE “SUBPLOT() “ COMMAND AND THEN “SHADING INTERP “ IS ENTERED IN THE CODE TO REMOVE GRID ON THE GRAPH IN THE 1ST “SUBPLOT”
  • THEN “PLOT3 ()” IS USED TO GENERATE THE POINT IN A 3-D GRAPH, THIS COMMAND IS USED TO PLOT THE GLOBAL MAXIMA POINT. THIS HELP US HOW WE ARE GETTING THE GLOBAL MAXIMA EACH AND EVERY TIMES “A ()” FUNCTION IS RUN.
  • THEN “TITLE ()” COMMAND IS USE TO GIVE A TITLE TO THE 1ST PLOT, “XLABEL” &”YLABEL” COMMAND ARE ENTERED TO NAME X-AXIS AND Y-AXIS RESPECTIVELY.
  • NEXT 2ND SUBPLOT COMMAND IS ENTERED TO GET 2ND GRAPH BETWEEN THE OPTIMIZE “F” VALUE OBTAINED FROM”GA ()” FUNCTION AND THE NUMBER OF ITERATION THAT “GA ()” IS RUN.
  • THEN “PLOT()” COMMAND IS USED TO PLOT A GRAPH BETWEEN “FOPT” VALUES AND NUMBER OF ITERATIONS.
  • THUS IN THE SAME FIGURE WINDOWS WE WILL GET TWO GRAPH USING “SUBPLOT ()” COMMAND.
 
 
 
 
IN THE STUDY CASE 2 WITH THE BOUNDED VALUES.
  1. THE ABOVE CODE IS SAME THAT’S OF PREVIOUS CODE, ONLY THE CHANGE IS IN THE SYNTAX OF “GA ()” COMMAND.
  2. NOW IN THIS CODE THE SYNTAX USED FOR “GA ()” COMMAND IS X=GA(FUN,NVARS,A,B,AEQ,BEQ,LB,UB)DEFINE A SET OF LOWER AND UPPER BOUNDS ON THE DESIGN VARIABLE,X,SO SOLUTION IS FOUND BETWEEN THE RANGE (SET A = [] AND B = [] IF NO LINEAR INEQUALITIES EXIST.) (SET AEQ = [] AND BEQ = [] IF NO LINEAR EQUALITIES EXIST)
  3. THE ABOVE SYNTAX HELP US TO ENTER UPPER AND LOWER BOUND VALUE AS INPUT TO GET THE BETTER SOLUTION THAN PREVIOUS CODE. THIS MEANS THAT WHEN “GA()” CALCULATES THE VALUE OF ”F” ,IT WILL DISPLAY ON THE VALUE OF “F” THAT LIES BETWEEN THE BOUNDED VALUES OF “X” AND “Y”.
  4. NOW IT IS NOT COMPULSORY TO TAKE THE VALUES OF “X” AND ”Y” VALUES ONLY AS YOUR BOUNDED VALUES , THESE VALUES ARE TAKEN ACCORDING TO THE PROBLEM WE ARE WORKING ON , SOMETIMES FOR THE BOUNDED VALUES TO BE SPECIFIED NEED SOME PRACTICAL EXPERIENCE FOR SOME SITUATIONS .SO BOUNDED VALUES ARE TAKEN ACCORDING TO OUR PROBLEM.
  5. WHEN WE RUN THE CODE WE GET THE FOLLOWING FIGURE,
  6. IN THE ABOVE FIGURE WE CAN OBSERVE THAT NOW THE GRAPH IS MUCH BETTER CLEAR THEN PREVIOUS ONE AND NOW –GA() PREDICT THAT THE GLOBAL MAXIMA IS SOMEWHERE BETWEEN THREE POINTS THAT ARE IN FIRST PLOT.
  7. WHEN WE LOOK AT THE SECOND PLOT, WE CAN OBSERVE THAT OUR SECOND VALUE IS BETWEEN 0.6 TO 1
  8. BUT HERE WE STILL DIDN’T GET THE OPTIMIZED VALUE ,I.E RESULTS ARE YET NOT CLEAR. TO OVERCOME THIS PROBLEM , FURTHER WE ARE USING MODIFIED “GA ()” COMMAND.
 

STUDY_3 WITH BOUNDED INPUTS AND INCREASED POPULATION CODE :-

  1. THE CODE IS SAME THAT OF THE PREVIOUS TWO CODE , THE ONLY CHANGE IS IN THE “GA ()” COMMAND AND ONE EXTRA COMMAND IS ADDED TO CODE.
  2. IN THIS CODE AFTER THE FITTING FUNCTION IS CALCULATED , WE HAVE A COMMAND CALLED “OPTIMOPTIONS()”, THE SYNTAX FOR THIS COMMAND IS

OPTIONS = OPTIMOPTIONS(SOLVERNAME)RETURNS A SET OF DEFAULT OPTIONS FOR THE SOLVERNAME SOLVER.

OPTIONS = OPTIMOPTIONS(SOLVERNAME,NAME,VALUE) RETURN OPTIONS WITH NAME PARAMETERS ALTERED WITH THE SPECIFIED VALUES.

  1. THIS PARTICULAR CODE HELPS US TO WRITE THE DEFAULT VALUES OF ANY INBUILT MATLAB FUNCTION . FOR THE 1STSYNTAX WHEN WE RUN IT WE WILL GET ALL THE DEFAULT VALUE OF THE SOLVER FUNCTION WHICH IS MENTIONED IN THE BRACKET. HERE IN OUR CODE WE HAVE GIVEN “GA” IN THE BRACKET SO THIS COMMAND WILL RETURN DEFAULT VALUE OF “GA” FUNCTION IN MATLAB.
  2. IN THE ABOVE FIGURE WE CAN SEE WHAT THE 1STSYNTAX DOES ,HERE WE CAN SEE THAT THE DEFAULT VALUE FOR “POPULATION SIZE “ IS 50 . THAT MEANS, WHEN “GA” TAKES RANDOM SAMPLES AS INPUTS ,IT TAKES THOSE VALUE FROM A POPULATION OF 50 , SO THE NUMBER OF OPTION TO CHOOSE FOR “GA” IS LESS .
  3. IF WE INCREASE THE VALUE OF “POPULATIONSIZE” THEN “GA” WILL HAVE MORE SAMPLES TP CHOOSE AND PERFORM MUTATION AND CROSS-OVER THEN IT CAN GIVE US MORE ACCURATE OPTIMIZED VALUE.
  4. TO CHANGE THIS VALUE WE USED 2NDSYNTAX OF “OPTIMOPTIONS()” I.E. WE HAVE DEFINE WHICH SOLVER THE VALUE HAVE TO CHANGED, THEN THE PARAMETER IN THAT SOLVER WHICH HAS TO BE CHANGED AND THEN WHAT VALUE IT HAS TO BE REPLACED.
  5. THUS BY DOING THIS WE HAVE CHANGED THE “POPULATIONSIZE” TO 300
  6. THEN, IN THE “GA()” FUNCTION WE HAVE USED THE FOLLOWING SYNTAX TO GIVE THIS CHANGE AS ONE OF THE INPUT.
  7. X=GA(FUN,NVARS,A,B,AEQ,BEQ,LB,UB,NONLCON,OPTIONS)MINIMIZES WITH THE DEFAULT OPTIMIZATION PARAMETER REPLACED BY VALUES IN OPTION .
  8. HERE IN THE ABOVE SYNTAX WE HAVE ENTER ALL THE INPUTS AS THAT OF PREVIOUS CODE,ADDITIONALLY WE CAN ALSO GIVE NONLINEAR CONSTRAINTS AND “OPTIONS” I.E. (CHANGE OF DEFAULT VALUES AS INPUTS IN “GA ()” FUNCTION.
  9. SINCE HERE WE DON’T HAVE ANY NONLINEAR CONSTRAINTS, WE HAVE ENTERED [] IN ITS PLACE AND WE HAVE ENTERED THE “OPTIONS” AS INPUTS TO TELL THE “GA ()” THAT THERE IS CHANGE IN DEFAULT VALUES.
  10. THEN REST OF THE CODE IS SAME AS THE PREVIOUS CODE AND WHEN WE RUN THIS CODE WE GET FOLLOWING RESULTS.


  11. FROM THE ABOVE FIG WE CAN OBSERVE THAT BY INCREASING THE POPULATION SIZE WE HAVE GOT A SINGLE OPTIMIZED VALUE IN THE 1STGRAPH . IF WE INCREASE THE POPULATION SIZE MORE FURTHER, THE VALUE WILL BE MORE ACCURATE .
  12. IN THE 2NDPLOT WE CAN OBSERVE THAT MAXIMUM VALUE OF FOR MANY ITERATION IS NEAR TO 0.9999985 AND ONLY IN 3 ITERATION “GA ()” PREDICTS THAT VALUE OF “F” ARE LESS THAT OF OTHER ITERATION VALUES, SO THE MAXIMUM VALUE IS SOMEWHERE NEAR TO THIS VALUE.

STOPPING CRITERIA OF GA 

MAXGENERATIONS - THE ALGORITHM STOPS WHEN THE NUMBER OF GENERATIONS REACHES MAX GENERATIONS.

MAXTIME - THE ALGORITHM STOPS AFTER RUNNING FOR AN AMOUNT OF TIME IN SECONDS EQUAL TO MAXTIME. 

FITNESSLIMIT - THE ALGORITHM STOPS WHEN THE VALUE OF THE FITNESS FUNCTION FOR THE BEST POINT IN THE CURRENT POPULATION IS LESS THAN OR EQUAL TO FITNESSLIMIT.

MAXSTALLGENERATIONS- THE ALGORITHM STOPS WHEN THE AVERAGE RELATIVE CHANGE IN THE FITNESS FUNCTION VALUE OVER MAXSTALLGENERATIONS IS LESS THAN FUNCTION TOLERANCE

MAXSTALLTIME - THE ALGORITHM STOPS IF THERE IS NO IMPROVEMENT IN THE OBJECTIVE FUNCTION DURING AN INTERVAL OF TIME IN SECONDS EQUAL TO MAXSTALLTIME.

FUNCTION TOLERANCE - THE ALGORITHM RUNS UNTIL THE AVERAGE RELATIVE CHANGE INTHE FITNESS FUNCTION VALUE OVER MAXSTALLGENERATIONS IS LESS THAN FUNCTION TOLERANCE.

CONCLUSION:

  • THE IDEA BEHIND THE ABOVE STUDIES IS TO OBSERVE HOW THE “GA ()” COMMANDS WORKS WITH DIFFERENT INPUTS AND HOW TO OBTAIN A SAME VALUE FOR A FUNCTION EVEN IF “GA” IS RUN SEVERAL TIMES.
  • THUS GLOBAL MAXIMA IS FOUND FOR THE STALAGMITE FUNCTION.
  • GENETIC ALGORITHM IS ONE OF THE MOST USED METHOD FOR OBTAINED OPTIMIZED VALUE.
  • GENETIC ALGORITHM IS MOSTLY USED TO FIND THE MINIMUM VALUE OF A FUNCTION , FOR EXAMPLE TO FIND MINIMUM DRAG FORCE THAT WILL BE CREATED BY THE AEROFOIL
  • SIMILAR APPROACH AS ABOVE CODE CAN BE USED TO FIND MAXIMUM VALUE USING “GA” COMMAND
 
Your portfolio, next

Ship work like this
in your own course.

Talk to a career counsellor

Free 20-minute call. We'll map the right course to where you want to work.

By submitting you agree to our Terms and Privacy Policy.