thieu1995 / metaheuristics

Implement the-state-of-the-art meta-heuristic algorithms using python (numpy)
Apache License 2.0
282 stars 83 forks source link

can you implement the bear smell search algorithm #1

Closed thegodone closed 4 years ago

thegodone commented 4 years ago

There is a new algo based on bear smell:

maybe a fake ?

https://link.springer.com/article/10.1007/s00500-020-04721-1

the author affirms he lost the matlab code.

thieu1995 commented 4 years ago

@thegodone Dear thegodone,

I take a deep look at the paper and try to implement it a few times but finally I can't. This one I must say it is 80% to 90% a fake algorithm. Let me explain:

  1. The author affirms he lost the code. Then 2 cases here: He doesn't want to share to code or there is no code at all. ==> From this point: 50% fake

  2. Look at the equations (1), (3), (4), (5), (6), (7), (8). All of these equations he took from the original paper Li 1990 (Yes, he cited the paper and also said that). (https://thesis.library.caltech.edu/8083/8/Li_z_1990.pdf) But this is not how a meta-heuristic algorithm is built.

Usually, researchers took the idea from the previous paper (described nature of the original inspiration source). Then from the equations in those paper, they design new equations which can actually implement under the programming language.

Such as this paper: Grasshopper Optimisation Algorithm: Theory and application

Or they don't take any equation from the previous paper at all. They just design their own equations based on hunting behavior or social interacting among members.

Such as this paper: Lion Optimization Algorithm (LOA): A nature-inspired metaheuristic algorithm

==> This is a good point, but maybe not truth for every meta-heuristics. So I give 40% fake

  1. Now let's look closely and see how he explain the equations. But it will be hard for you if you just read the equations without knowing what is going on. So let's start reading equations based on the flow of Fig. 5: Pseudocode

    • First calculate glomerular activity by Eq. 2. Yes, this equation we can calculate it.

    • Obtain DS based on breathing function in Eq. 1. How?

      • Ok, the value of t_exhale, t_inhale and n_exhale are exhalation time, inhalation time and constant ==> So what is the value of t? (epoch/iteration ?) ==> And what is the point of figure 3 (top, left). n_exhale=33 but 220 and 400 meaning?
      • I assumpt t_inhalation = 0, t_exhalation=220, how about t and what about 400 meaning?
    • Next calculate Eq. 4, 5. How?

      • phi is a threshold value, but equal? (Not specific in the paper)
    • Next calculate Eq. 6,7,8. How?

      • Ho, Wo, Lo are matrices based on Th, Tw, Tl (are connection constants), but what are their specific constant values?
    • In equation 13. What is the value of 2 thresholds value C1, C2?

==> This point is absolutely strong, I give 80% fake

  1. Comment in the pseudocode

    • He doesn't update the previous solution, just create a new one and replace it?
    • The algorithm doesn't return anything, just draw and print the desired outputs?
    • So what is desired outputs? --> It should return the global best solution, and the global best solution also needs an update in iteration loop.
  2. Other comments:

    • what are parameters for all of the tested algorithms? (Not mention at all?)
    • What is the point of testing with 53 multi-modal functions? Instead of testing with few functions but more group of benchmark functions such as unimodal, multi-modal, hybrid-model, composition,...?
  3. Look at Fig 6,7. You can see the curve going down by iterations.

    • But I'm sure 100% that he needs to save the global best solution in each iteration. If not the figure is fake as well.

4,5,6 ==> 70% fake