matlab code
Never
% Main programs starts here function [best,fmin,N_iter]=bat_algorithm(para) % Display help help bat_algorithm.m % Default parameters if nargin<1, para=[20 1000 0.5 0.5]; end n=para(1); % Population size, typically 10 to 40 N_gen=para(2); % Number of generations A=para(3); % Loudness (constant or decreasing) r=para(4); % Pulse rate (constant or decreasing) % This frequency range determines the scalings % You should change these values if necessary Qmin=0; % Frequency minimum Qmax=2; % Frequency maximum % Iteration parameters N_iter=0; % Total number of function evaluations % Dimension of the search variables d=10; % Number of dimensions % Lower limit/bounds/ a vector Lb=-2*ones(1,d); % Upper limit/bounds/ a vector Ub=2*ones(1,d); % Initializing arrays Q=zeros(n,1); % Frequency v=zeros(n,d); % Velocities % Initialize the population/solutions for i=1:n, Sol(i,:)=Lb+(Ub-Lb).*rand(1,d); Fitness(i)=Fun(Sol(i,:)); end % Find the initial best solution [fmin,I]=min(Fitness); best=Sol(I,:); % ====================================================== % % Start the iterations -- Bat Algorithm (essential part) % for t=1:N_gen, % Loop over all bats/solutions for i=1:n, Q(i)=Qmin+(Qmin-Qmax)*rand; v(i,:)=v(i,:)+(Sol(i,:)-best)*Q(i); S(i,:)=Sol(i,:)+v(i,:); % Apply simple bounds/limits Sol(i,:)=simplebounds(Sol(i,:),Lb,Ub); % Pulse rate if rand>r % The factor 0.001 limits the step sizes of random walks S(i,:)=best+0.001*randn(1,d); end % Evaluate new solutions Fnew=Fun(S(i,:)); % Update if the solution improves, or not too loud if (Fnew<=Fitness(i)) & (rand<A) , Sol(i,:)=S(i,:); Fitness(i)=Fnew; end % Update the current best solution if Fnew<=fmin, best=S(i,:); fmin=Fnew; end end N_iter=N_iter+n; end % Output/display disp(['Number of evaluations: ',num2str(N_iter)]); disp(['Best =',num2str(best),' fmin=',num2str(fmin)]); % Application of simple limits/bounds function s=simplebounds(s,Lb,Ub) % Apply the lower bound vector ns_tmp=s; I=ns_tmp<Lb; ns_tmp(I)=Lb(I); % Apply the upper bound vector J=ns_tmp>Ub; ns_tmp(J)=Ub(J); % Update this new move s=ns_tmp; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Sphere function with fmin=0 at (0,0,...,0) z=sum(u.^2); %%%%% ============ end ====================================
Raw Text
-
No Deposit Bonus
6 min ago
-
https://www.facebook.com/SuperiorCBDGummiesInCa/
7 min ago
-
Adult Telegram Channels
9 min ago
-
FGS TYFDGF
11 min ago
-
"Makers CBD Gummies: A Maker's Path to Tranquility"
15 min ago
-
FilthyMassage - Busty Blonde Milf Gets Her Huge Tits Oiled And Gets Fucked
18 min ago
-
Untitled
41 min ago
-
~@~[[Official!]] Men's Basketball Championship Live Streams@ReddiT at Home?
42 min ago
-
Phoenix SEO
42 min ago
-
Plumber fucks someone else's wife while her husband is at work
44 min ago