%% Script File: Optimization and GA % Initialize the population: Pop=10*rand(12,2); % Stopping criteria maxit=200; %Max number of iterations mincost=-99999999; %Minimum cost % Parameters: popsize=12; mutrate=0.05; %Mutation rate popKept=0.5; %Fraction of the population to keep keep=floor(popKept*popsize); %How many individuals are kept M=ceil((popsize-keep)/2); % number of matings; 2 mates create 2 offspring crossprob=round(rand(maxit,1)); %0= x-coord, 1= y-coord nmut=ceil((popsize-1)*2*mutrate); %Number of mutations % Fitness function: ff='testfunction'; %The fitness function is in the file testfunction.m % Probability distribution (won't change in this example) probs=(keep:-1:1)/sum(1:keep); %Probability is rank ordering %% Initialize the population: cost=feval(ff,Pop); %Initial costs [cost,idx]=sort(cost); % Default sort is from small to large Pop=Pop(idx,:); minc(1)=min(cost); %Minimum cost, for plotting later meanc(1)=mean(cost); %Mean cost for this population (for plotting later) %% Main loop iga=0; while igamaxit || cost(1)