📄 gademo1.m
字号:
%GADEMO1 Introduction to the Genetic Optimization Toolboxclf;figure(gcf);more onecho onclc% ==========================================================% GADEMO 1% ==========================================================% INITIALIZE - Initialize a poplutaton of solutions% GA - Simulates evolutionpause % Strike any key for the introduction to Genetic Algorithmsclc% Genetic algorithms% A genetic algorithm is a simulation of evolution where the% rule of survival of the fittest is applied to a population% of individuals.% The basic genetic algorithm is as follows:% 1. Create an initial population (usually a randomly% generated string)% 2. Evaluate all of the individuals (apply some function% or formula to the individuals)% 3. Select a new population from the old population based% on the fittness of the individuals as given by the% evaluation function.% 4. Apply some genetic operators (mutation & crossover)% to members of the population to create new solutions.% 5. Evaluate these newly created individuals.% 6. Repeat steps 3-6 (one generation) until the% termination criteria has been satisfied (usually% perform for a certain fixed number of generations)%% Let's look at an examplepause % Strike any key to define the problem...clc% Let's consider the maximization of the following function:% f(x) = x + 10*sin(5*x)+7*cos(4*x) over the interval (0,9)fplot('x + 10*sin(5*x)+7*cos(4*x)',[0 9])% Now, let's set up a genetic algorithm to find the maximum% of this problem. First, we need to create the evaluation% function .m file, here is gademo1eval1.mpause % Strike any key to look at gademo1eval1.mtype gademo1eval1.mpause % Strike any key to continueclc% Note that the evaluation function must take two parameters,% sol and options. Sol is a row vector of n+1 elements where% the first n elements are the parameters of interest. The% n+1'th element is the value of this solution. The options% matrix is a row matrix of % [current generation, eval options]% The eval function must return both the value of the sting,% val and the string itself, sol. This is done so that% your evaluation can repair and/or improve the string.pause % Strike any key to continueclc% Now that we have defined the evaluation function, we now% have to create an initial population. The most common way% to generate an initial population is to randomly generate% solutions within the range of interest, in this case 0-9.% The initializega routine will do this for you.pause % Strike any key for help on initializegaclchelp initializegapause % Strke any key to continue.clc% Let's create a random starting popluation of size 10.initPop=initializega(10,[0 9],'gademo1eval1');pause % Strke any key to continue.% We can now take a look at this population.hold onplot (initPop(:,1),initPop(:,2),'g+')pause % Strike any key to continue clc% We can now run the evolutionary procedure on this% population.help gapause % Strike any key to continue% Now let's run the ga for one generation.[x endPop] = ga([0 9],'gademo1eval1',[],initPop,[1e-6 1 1],'maxGenTerm',1,... 'normGeomSelect',[0.08],['arithXover'],[2 0],'nonUnifMutation',[2 1 3]);x %The best found%And plot the resulting the resulting populationplot (endPop(:,1),endPop(:,2),'ro')pause % Strike any key to continue% Now let's run the ga for 25 generations[x endPop] = ga([0 9],'gademo1eval1',[],initPop,[1e-6 1 1],'maxGenTerm',25,... 'normGeomSelect',[0.08],['arithXover'],[2],'nonUnifMutation',[2 25 3]);x %The best found% And plot the resulting the resulting populationplot (endPop(:,1),endPop(:,2),'y*')% End of gademo1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -