# BAT Optimization Algorithm

(96 customer reviews)

\$0.00

This code implements the BAT optimization algorithm which is useful in various linear, non-linear optimization problems. This repository shares the free MATLAB code with full implementation of this paper.

Categories: ,

## Description

The paper published byÂ Yang, X. S. (2010). “A New Metaheuristic Bat-Inspired Algorithm, in: Nature Inspired Cooperative Strategies for Optimization (NISCO 2010)”.Â Studies in Computational Intelligence.Â 284: 65â€“74 is implemented at https://free-thesis.com. A demo version of this is available hereÂ but we found it hard to use in any application. So developed in house full BAT code and happy to share here.

The Bats have some echolocation characteristics by using them we can develop an Algorithm for the optimization. Some rules for the Bat algorithm explained below.

1. The distance can be sense by the bats using the echolocation and they have also difference between food/prey and the background barriers.
2. The velocity of the Bats represented by (vi) and position of the Bat is (xi)having frequency Fmin varying wavelength Â and loudness A0 search for food.
3. The loudness A0 also take as Amin constant value.

The Matlab coding for the Bat function done by consider various parameters. Various steps are involved for the Bat coding.

Step1.Â  Firstly make the statement for Bat function

```[bestfit,BestPositions,fmin,Convergence_curve]=BAT(N,Max_iter,lb,ub,dim,fobj)Â
```

In above statement the input parameter is mainly a benchmark function which is represented by a â€˜fobjâ€™ and others are lb=lower bound limit and ub=upper bound limit , fmax is the maximum frequency and fmin is the minimum frequency , A= loudness of each Bat, r=pulse emission rate of each Bat, alpha and gamma are the constants for the loudness and pulse emission rate. The r0 is the initial pulse rate.

Step2. After the statement call the initialization function. The script for the initialization function written separately.

```x=initialization(N, Max_iter, dim, ub, lb)Â  Â  Â
```

In initialization upper bound and lower bound limits are available and bats position is randomly search. Each bat has different upper and lower bound limits. There is N number of searching variable. Calculate the initial position of the search variable. We initialize the parameters of algorithm, generate and also evaluate the initial population, and then determine the best solution Â in the population. Here, virtual bats are moved in the search space according to updating rules of the bat algorithm.

Step3. Call the benchmark function here which is represented by the â€˜fobjâ€™and find the initial best fitness value for benchmark objective function.

The fobj function contains all the information about the benchmark function. It has 23 different benchmark function cases which have different dimension, upper bound and lower bound limits. We can randomly take any benchmark (F1 â€¦..F23) objective function.

The initial best value is obtained

```[fmin, index]=min(fitness)Â
```

Also find the best solution for the best fitness value of the objective function.

Step4. Then start the main loop for the maximum iterations. Randomly choose the frequency as equation

Â F(ii)=Fmin+(Fmax-Fmin)*rand

Then update the velocity of the bats and position of the bats. After the update of both the terms than applied the upper and lower bound limits and update the position of bats again.

```x(ii,:)=(x(ii,:).*(~(Flag4up+Flag4low)))+ub.*Flag4up+lb.*Flag4low
```

Step5. Check the condition of pulse rate emission of each bat (r). The factor 0.001 is limits the step size of the random walk.

```rand>r(ii)Â
```

Find the new value of the objective after check the condition. It is the new fitness value in which the loudness is too much. The loudness and emission rate updated if the new solution is improved which means the bats moving towards the optimal solution. The condition for improve the loudness and pulse emission rate is

```(fitnessnew<=fitness(ii)) && (rand<A(ii))Â
A(ii)=alpha*A(ii) Â Â Â Â Â Â Â Â Â Â Â Â Â
r(ii)=ro*(1-exp(-gamma*iter))Â Â Â Â Â Â Â Â
```

Step6. Calculate the best fitness value after optimization. Draw the convergence curve according to the best fitness value and iteration. The best position is also obtained through the optimization.

Fmin=fitnessnew

Step7. Write another script for the observation of benchmark function. Initialize the parameters like N=number of searching Bats, any benchmark function (F1â€¦â€¦â€¦â€¦F10).

1. Call the benchmark function- in this step all the bench mark function is called.
2. Call the BAT function â€“ BAT function is calling in this step. The benchmark function initialize through the bat algorithm.
3. Call the function plot for graphs and convergence curve for the benchmark function. The best position and best fitness value obtained by using the bat algorithm is shown by the curve.

In the general context of exploration and exploitation as well as genetic operators, we can analyze the roles of the main components of the standard BA. In essence, frequency tuning essentially acts as mutation because it varies the solutions mainly locally. However, if mutation is large enough, it can also leads to global search. Certain selection is carried out by applying a selection pressure that is relatively constant due to the use of the current best solution found so far. Compared with genetic algorithms, there is no explicit crossover; however, mutation varies due to the variations of loudness and pulse emission. On the other hand, the variations of loudness and pulse emission rates can also provide an auto zooming ability in the sense that exploitation becomes intensive as the search is approaching the global optimal. This essentially switches an exploitative phase to an exploitative phase automatically

The graph and curve which are obtained by using the BAT algorithm for the optimization of benchmark function.

The left hand side figure shows the parameter space for the benchmark function and right hand side figure shows the objective space of same benchmark function. The objective space curve is between the best fitness obtained value and iterations. The curve shows the minimum value of the objective function during the optimization. As shown in the curve the best fitness value near to 3.

We recommend our users to use the hybrid PSO-GWO optimization algorithm whose code is published here. https://free-thesis.com/product/hybrid-particle-swarm-and-grey-wolf-optimization/

free-thesis.com is an innovative and first of its kind platform created by Vidhilekha Soft Solutions Pvt Ltd, a Startup recognized by the Department For Promotion Of Industry And Internal Trade, Ministry of Commerce and Industry, Government of India recognised innovative research startup.

## 96 reviews for BAT Optimization Algorithm

1. anujstaple (verified owner)

Good Product

Good Product

3. Anonymous

Excellent

4. frank (verified owner)

good

5. frank (verified owner)

good

6. frank (verified owner)

perfect platform

7. enireddy.vamsidhar (verified owner)

good site for researchers

8. bayu permana.sejati (verified owner)

Good Job

9. taha.ansar (verified owner)

Should also give an example

Excellent

11. venkat.reddy (verified owner)

great

12. venkat.reddy (verified owner)

great

13. raju.kumar (verified owner)

gandu

14. kaju.kumar (verified owner)

gaandu

15. praveen.hipparge (verified owner)

good

16. shiffali.goyal (verified owner)

Gr8

17. ramahk92 (verified owner)

Thanks for Providing Code.

18. alok.kumar (verified owner)

19. k.l (verified owner)

good

20. sameer.kumthekar (verified owner)

best

21. sameer.kumthekar (verified owner)

best one

22. preethi.g (verified owner)

good

23. treesa.jose (verified owner)

good

24. xuexi (verified owner)

good

25. javier.carletto (verified owner)

b

26. cynthia.joseph (verified owner)

excellent

27. richa.singh (verified owner)

nice

28. ratheesh.p m (verified owner)

Very Useful

29. ratheesh.p m (verified owner)

Very USeful

30. ratheesh.p m (verified owner)

Useful

31. ratheesh.p m (verified owner)

Useful

32. ratheesh.p m (verified owner)

33. ratheesh.p m (verified owner)

useful

34. nishant.tripathi (verified owner)

too good

35. umit.cetinkaya (verified owner)

It is so good

36. priya.lollmun (verified owner)

thanks

37. m.m (verified owner)

dsdg

38. 1316893612 (verified owner)

1

39. otuo.acheampong (verified owner)

very useful website

40. otuo.acheampong (verified owner)

very useful website

41. daniela.irimia (verified owner)

Usefull, I hope!

42. chou_aib (verified owner)

great

43. brandon.calder (verified owner)

good

44. thiyagarajan.n (verified owner)

good

45. thiyagarajan.n (verified owner)

good

46. thiyagarajan.n (verified owner)

good

47. thiyagarajan.n (verified owner)

good

48. kshitiz.varma (verified owner)

Good Initiative

49. chou_aib (verified owner)

Great

50. harshithraj.k m (verified owner)

its good

51. karthik.m (verified owner)

Excellent

52. vishnupriya.vijayan (verified owner)

nice job!!!

53. maria.gonzales huamani (verified owner)

gracias, de gran ayuda

54. saranya.gunasekar (verified owner)

55. virakwan.kelian (verified owner)

good

good

57. saranya.gunasekar (verified owner)

58. anuj.goel (verified owner)

Thank you !

59. john.seed (verified owner)

good

60. john.seed (verified owner)

good

61. omid.mokhlessi (verified owner)

thank you

62. omid.mokhlessi (verified owner)

thank you

63. omid.mokhlessi (verified owner)

thank you very much

64. hamdi.karim (verified owner)

thnx

65. thiyagarajan.n-1218 (verified owner)

nice

66. thiyagarajan.n-1218 (verified owner)

goood

67. sumeet (verified owner)

hu

68. sumeet (verified owner)

bjbjnk

69. sumeet (verified owner)

bjbj

70. nenisi.j (verified owner)

heh

71. zeamari.ilias (verified owner)

Best Articles are found here.

72. mohamed.elkhayat (verified owner)

good

73. subhashis.kar (verified owner)

Outstanding

good

75. sagar.verma (verified owner)

good

76. prashant.kulkarni-0716 (verified owner)

EXCELLENT WORK

77. mana009 (verified owner)

thanks

78. soumalya_m (verified owner)

good

79. lokeshwaran.r (verified owner)

nil

80. dhivya.k

good

81. manishshukla8840 (verified owner)

na

82. manishshukla8840 (verified owner)

na n

83. manishshukla8840 (verified owner)

na n

84. manishshukla8840 (verified owner)

ZGoog theme but all topics was not covered in this portal

85. narles.lino (verified owner)

Great code sharing

86. jayati.vaish (verified owner)

good

87. jayati.vaish (verified owner)

good

88. jayati.vaish (verified owner)

good

thankyou for the help

90. ibrahim.alnaib (verified owner)

good

91. ssfd.dsfdsf (verified owner)

it is ok

92. Ahussein (verified owner)

93. Ahussein (verified owner)

94. anusuya.p (verified owner)

good

95. aaa.aaaa (verified owner)

good

96. aaa.aaaa (verified owner)

good

97. aaa.aaaa (verified owner)

good

98. tammisetty.koteswararao (verified owner)