File Exchange

image thumbnail

Bat algorithm (demo)

version 1.0 (2.9 KB) by

This is a demo for Bat Algorithm, developed by Xin-She Yang (2010).

104 Downloads

Updated

View License

This is a short demo for the popular, nature-inspired/metaheuristic,
bat algorithm (BA), which can deal with nonlinear, global optimization problems.
Bat algorithm has the advantages of simplicity, flexility and stability.
It can also automatically switch from global exploration to
local exploitation by fine-tuning its parameters: A and r.

The paper can be downloaded at
http://arxiv.org/abs/1004.4170

Comments and Ratings (30)

Yang Li

if (rand < Ai & f(xi) < f(x))
Accept the new solutions
Increase ri and reduce Ai
end if
 in the article of Dr. Yang, but the code is different. I need a great code of Matlab . Thank you! 263211434@qq.com

Luis Lopez

jkthink

I noticed that problem as well. Your solution seems to work, though it would have been great if Dr. Yang could provide with a formal solution. 835441346@qq.com

Mahima j

I want a solution matlab code modified bat algorithm

Hello..can u plz help to write a code for minimize the total cost.actually my Ain is allocation of battery in microgrid.and I am extremely new in MATLAB.

ronit agarwal

i want bat algorithm and code for clustering in java.........

Dear Prof

Im a maths student an I have found Bat algorithm to interesting would like so much to know if the Bat Inspired algorithm can be of any use in the fields of Electrical distribution and Transmission.

Email:2016sors@gmail.com
       akradore@gmail.com

zhen li

dear prof
I am very interested in bat algorithm.
can you send the bat algorithm code to me?
e-mail
zhenli_ysu@126.com

thank you

dear prof

can you help me with chaotic bat algorithm code ??
e-mail
eng.daliaarafa@gmail.com

thanks in advance

yi'xing wang

payam baban

Shramana GS

I Have a Question. Everytime I run this algorithm, I get different sets of solutions every time. Why is it so? Shouldn't there be a unique solution for a given problem? Plz Help.

Sindhuja J

karim

karim (view profile)

Hello
@ Eric : In the article published by Dr. Yang, he did not specify that “epsilon” must be a uniform random number.

Comparing the proposed demo and the pseudo-code presented in the article of Dr. Yang, I noticed this:
In the article: if (rand < Ai & f(xi) < f(x*)) and x* is the current global best location (solution) which is located after comparing all the solutions among all the n bats. But, in the demo,
       if (Fnew<=Fitness(i)) & (rand<A),
              Sol(i,:)=S(i,:);
              Fitness(i)=Fnew;
       end
I understand from this that for each bat, we do a comparaison between the new calculated fitness values against the previous one, not against the global best. Then, each bat memorises his "individual" best location and update it according to the condition mentionned above. I hope that i will have clarification about this.

Eric

Eric (view profile)

There are three discrepancies in this code (compared to the published algorithm)

1. Line 79
Q(i)=Qmin+(Qmin-Qmax)*rand;

should be replaced with
Q(i)=Qmin+(Qmax-Qmin)*rand;

2. Similar to what @Frank said
Line 83
Sol(i,:)=simplebounds(Sol(i,:),Lb,Ub);

should be replaced with
S(i,:)=simplebounds(S(i,:),Lb,Ub);
and moved to Line 89 (*before* %Evaluate Evaluate new solutions)

3. Line 87
S(i,:)=best+0.001*randn(1,d);

The 2010 paper "A New Metaheuristic Bat-Inspired Algorithm" seems to suggest that 0.001 should be the variable "A" and that randn(1,d) should actually be 1-2*rand(1,d)... that is a uniformly distributed random number bounded by [-1,1].

leoc

leoc (view profile)

@Frank,

I noticed that problem as well. Your solution seems to work, though it would have been great if Dr. Yang could provide with a formal solution.

Amon

Amon (view profile)

Hello
I have my Objective function and constraint, anyone can help me to guide me on how implement it.
Actually mu purpose is reduce electric distribution loss.

acharab

It is good.

Frank

Frank (view profile)

Would this line of code in bat_algorithm.m:
          
% Apply simple bounds/limits
Sol(i,:)=simplebounds(Sol(i,:),Lb,Ub);

be moved to just above the line of
% Evaluate new solutions

and be modified to:
S(i,:)=simplebounds(S(i,:),Lb,Ub);

so that we may not have solutions outside the lower and upper bound?

hui

hui (view profile)

Easy to understand...

Al Algo

Very easy to understand but works magic.

peng

peng (view profile)

It is easy to understand, and it works magic. Excellent!

godwin tgn

simple and easy of use.... thanks

sehrish

I am interest in your optimization algorithm. May i know is there a 'train' function coded because I would want to use it to train neural network.
Thank you.

sehrish

Hi plz anyone can guide how to train Neural Network using Bat algorithm????

d g

d g (view profile)

also how to get graphs for bat algorithm..?

d g

d g (view profile)

hey i want to compare cuckoo search and bat algorithm.. can you tell me on what parameters should i compare them..

teroy tman

It is very good.

Q Q

Q Q (view profile)

It is easy to understand, and it works magic. Excellent!

MATLAB Release
MATLAB 7 (R14)

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video