jmejia8 / Metaheuristics.jl

High-performance metaheuristics for optimization coded purely in Julia.
https://jmejia8.github.io/Metaheuristics.jl/stable/
Other
255 stars 27 forks source link

Implementation of new algorithms into Metaheuristics.jl #48

Open jbytecode opened 1 year ago

jbytecode commented 1 year ago

This journal paper can be followed for implementing new algorithms:

https://ieeexplore.ieee.org/abstract/document/9344597

After implementing some crucial methods, Metaheuristics.jl can also be used in a novel survey article that measures the performances of the algorithms using a set of well-known test functions.

jmejia8 commented 1 year ago

That's a great idea. Let's work on it. I may start by suggesting:

jbytecode commented 1 year ago

There is a huge set of works included in the literature and I think it is not that straightforward to end up with super-comprehensive comparisons with tons of algorithms.

What is possible?

These are my first thoughts after taking a look at the references you provided.

jmejia8 commented 1 year ago

Regarding your last comments:

I may suggest the following Julia packages to perform this study:

Some questions:

jbytecode commented 1 year ago

Do we really need a project assistant for this? I suggest using separate files for each test function. In those files we can iterate a function, say that it is Ackley, for different p (number of variables). The results can be simultaneously written in a csv file or an sqlite file. Ackley.sqlite would hold all of the information such like

p f algorithm etc...
5 0.002 Whale ...
5 0.004 Whale ...
5 0.029 Whale ...
... ........ ........... .......

for different p (number of parameters), algorithms, and algorithm configurations so we can later perform reports using SQL statements.

jmejia8 commented 1 year ago

I agree with you. IMO, we can answer the remaining questions once we are ready to begin the benchmarking.

Let's implement new metaheuristics.

My suggestions (listed in the EC-Bestiary with available source code):

Related software: mealpy a python library implementing some metaheuristics.

jbytecode commented 1 year ago

I've just taken a look the code provided for the "Battle royale optimization algorithm". What is the best option? Directly converting the Matlab code into the corresponding Julia code? Or reading the papers and preparing our own implementations?

PS: I am not a good Matlab programmer nor ever used it. It seems the code uses an object of a soldier data type which is not implemented elsewhere.