MetaheuristicsAlgorithms.jl – A Julia Package for Metaheuristic Optimization

As we close out 2024, I’m excited to announce the launch of MetaheuristicsAlgorithms.jl, a new Julia package designed to bring recent powerful metaheuristic optimization algorithms to the Julia ecosystem. These algorithms, originally developed in MATLAB or Python, have now been ported to Julia. By leveraging Julia’s strengths, this package offers significantly faster execution speeds compared to traditional languages, making it ideal for solving complex optimization problems in various fields such as engineering, artificial intelligence, and beyond. With a growing set of optimization algorithms and future enhancements, this package will help you tackle a wide range of optimization challenges efficiently.

MetaheuristicsAlgorithms.jl initially includes 50 different metaheuristic optimization algorithms. These algorithms have been carefully implemented and are ready to help solve your optimization problems. Looking ahead, the package will be expanded to include more algorithms and improvements, ensuring it stays up-to-date with the latest advancements in optimization methods. Additionally, I plan to integrate benchmark functions from renowned CEC (Congress on Evolutionary Computation) competitions, including those from CEC 2005, 2014, 2017, 2020, and 2022, giving users a broader toolkit for testing and comparing algorithms in standard scenarios.

MetaheuristicsAlgorithms.jl is just the beginning of a larger vision. In the future, I will continue to expand this package to include more metaheuristic algorithms, additional benchmark functions from the CEC competitions, and improved features to make it even more useful for optimization research and applications. The package is designed to be flexible, fast, and easy to use, allowing the Julia community to engage with cutting-edge optimization techniques and contribute to its growth.

As we celebrate the final day of 2024, I’m thrilled to share this package with the Julia community. I hope MetaheuristicsAlgorithms.jl helps accelerate your research and projects in the coming year. I’m excited to see what we can accomplish together in 2025. Happy New Year to all, and thank you for your support in making this possible!

I’d love to hear your opinions and feedback on it. Your insights will be invaluable for improving and expanding the package. Additionally, if you’re interested in collaborating or contributing to the project, whether through adding new algorithms, improving documentation, or implementing features, please feel free to reach out! Together, we can continue to develop this tool and make it even more powerful for the optimization community.

You can find MetaheuristicsAlgorithms.jl on GitHub, where I encourage you to star the project, report issues, or submit pull requests to improve the package. I look forward to hearing your feedback and seeing how you use the package in your work!

7 Likes

Congratulations! The package looks impressive and there are lots of algorithms implemented. I suppose you’re planning to add the missing documentation and tests as well. Have you reviewed the Metaheuristics.jl package? Perhaps contributing to this package could have been an option instead of creating a new one?

3 Likes

Thank you for your kind words and feedback! Yes, I’m indeed planning to add comprehensive documentation and robust tests in the coming updates to ensure the package is both user-friendly and reliable.

Regarding Metaheuristics.jl, I have reviewed it, and I agree that it includes some excellent state-of-the-art algorithms. My intention with MetaheuristicsAlgorithms.jl is to create a more comprehensive package that caters specifically to researchers and practitioners targeting competitions like the CEC or those comparing their algorithms with top-performing methods in these benchmarks. This idea has been on my mind for about two years, but I only recently had the time to bring it to life.

My ultimate goal is to develop a package similar to MEALPY, a Python library that provides a vast array of metaheuristic algorithms. I aim to extend the functionality beyond traditional optimization problems to include applications in areas like engineering optimization, feature selection, multilevel thresholding, and more. By doing so, I hope to create a versatile and widely applicable tool for the optimization community.

I appreciate the suggestion to contribute to existing packages like Metaheuristics.jl, and while I considered this option, I felt that creating a new package with a broader scope and specific focus on CEC benchmarks and expanded applications would better align with my vision.

Thank you again for your feedback, and I’m always open to collaboration and further discussions on how to make this package more impactful!

1 Like

I had contributed to the implementation of machine-coded compact genetic algorithms (MCCGA) in that package. I also refer to the algorithms in that package (Metaheuristics.jl) in my optimization courses. I hope you’ll keep us updated here as the package matures.

1 Like

Sure. I will try to add more 100 algorithms in a one or two weeks.
I will be very happy if U test my package and give me some feedback on it.
Thansk

1 Like

Sure. You can also consider adding to or expanding (or depending) the existing functionality of the Metaheuristics.jl package (We should stand on the shoulders of giants, right?). I would be happy to review and test your package. You might also consider preparing a paper and submitting it to JOSS.

1 Like

I am already writing a paper to publish it soon
Thanks

3 Likes

More 45 algorithms have been added.

3 Likes