Giter Club home page Giter Club logo

Comments (4)

thieu1995 avatar thieu1995 commented on June 9, 2024 1

Hi @SkyLin1020 ,

Sorry for the late reply. Yes, you are right.

Initially, I thought climbing meant moving from the bottom up, which is why I set the step_size value from (-1 to 0 to 1).
But in reality, it should be able to go both down and up randomly.
Setting the step_size as in swarmHC is commonly used in other algorithms. You should consider using swarmHC instead.

from mealpy.

thieu1995 avatar thieu1995 commented on June 9, 2024

Hi @SkyLin1020,

HC is a single-based solution (a local search algorithm). It was originally not intended to be included in this library, which primarily focuses on population-based solutions (global search algorithms). However, many people have asked me to implement it, so I had to adapt this algorithm to fit within this library.

The 'pop_size' parameter does not matter for this algorithm. That's why you can see this line of code:
https://github.com/thieu1995/mealpy/blob/master/mealpy/math_based/HC.py#L76
Here, I consider 'self.g_best' as the searching solution for this algorithm.

Additionally, there is no 'step_size' variable in the original algorithm. I introduced this variable to improve the algorithm's results. It's possible that this 'step_size' doesn't provide significant advantages, but if you look at the original HC algorithm in the paper, there is no stored information about the evolution process; it is essentially a random process.

Considering these modifications, I believe it would be more appropriate to rename the class as 'DevHC' to indicate that it's a modified or developed version of the original HC algorithm.

from mealpy.

SkyLin1020 avatar SkyLin1020 commented on June 9, 2024

Hi @SkyLin1020,

HC is a single-based solution (a local search algorithm). It was originally not intended to be included in this library, which primarily focuses on population-based solutions (global search algorithms). However, many people have asked me to implement it, so I had to adapt this algorithm to fit within this library.

The 'pop_size' parameter does not matter for this algorithm. That's why you can see this line of code: https://github.com/thieu1995/mealpy/blob/master/mealpy/math_based/HC.py#L76 Here, I consider 'self.g_best' as the searching solution for this algorithm.

Additionally, there is no 'step_size' variable in the original algorithm. I introduced this variable to improve the algorithm's results. It's possible that this 'step_size' doesn't provide significant advantages, but if you look at the original HC algorithm in the paper, there is no stored information about the evolution process; it is essentially a random process.

Considering these modifications, I believe it would be more appropriate to rename the class as 'DevHC' to indicate that it's a modified or developed version of the original HC algorithm.

Hi @thieu1995 ,
thank you for your reply. I will try swarmHC to solve my problem.
but considering the step_size in OriginalHC, I think it is not reasonable and improved. the step_size goes from -1 to 0 to 1. that means the step_size goes down and then up because the absolute value of step_size matters. with the step_size setting, maybe it can randomly search the space, but it is not a climbing process.,for a climbing process, the step_size may be monotone decreasing like the setting in swarmHC.
Hope this can help. and if I misunderstanding the algorithm, hope you can point it out.

from mealpy.

thieu1995 avatar thieu1995 commented on June 9, 2024

@SkyLin1020 ,
If there is nothing here I will close this issue now. Feel free to open if needed.

from mealpy.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.