1st Edition

Swarm Intelligence Algorithms A Tutorial

Edited By Adam Slowik Copyright 2021
    362 Pages 32 B/W Illustrations
    by CRC Press

    362 Pages 32 B/W Illustrations
    by CRC Press

    Swarm intelligence algorithms are a form of nature-based optimization algorithms. Their main inspiration is the cooperative behavior of animals within specific communities. This can be described as simple behaviors of individuals along with the mechanisms for sharing knowledge between them, resulting in the complex behavior of the entire community. Examples of such behavior can be found in ant colonies, bee swarms, schools of fish or bird flocks.

    Swarm intelligence algorithms are used to solve difficult optimization problems for which there are no exact solving methods or the use of such methods is impossible, e.g. due to unacceptable computational time.

    This book thoroughly presents the basics of 24 algorithms selected from the entire family of swarm intelligence algorithms. Each chapter deals with a different algorithm describing it in detail and showing how it works in the form of a pseudo-code. In addition, the source code is provided for each algorithm in Matlab and in the C ++ programming language. In order to better understand how each swarm intelligence algorithm works, a simple numerical example is included in each chapter, which guides the reader step by step through the individual stages of the algorithm, showing all necessary calculations.

    This book can provide the basics for understanding how swarm intelligence algorithms work, and aid readers in programming these algorithms on their own to solve various computational problems.

    This book should also be useful for undergraduate and postgraduate students studying nature-based optimization algorithms, and can be a helpful tool for learning the basics of these algorithms efficiently and quickly. In addition, it can be a useful source of knowledge for scientists working in the field of artificial intelligence, as well as for engineers interested in using this type of algorithms in their work.

    If the reader already has basic knowledge of swarm intelligence algorithms, we recommend the book: "Swarm Intelligence Algorithms: Modifications and Applications" (Edited by A. Slowik, CRC Press, 2020), which describes selected modifications of these algorithms and presents their practical applications.

    1 Ant Colony Optimization
    Pushpendra Singh, Nand K. Meena, Jin Yang, and Adam Slowik
    1.1 Introduction
    1.2 Ants's Behavior
    1.3 Ant Colony Algorithm
    1.4 Source-code of ACO Algorithm in Matlab
    1.5 Source-code of ACO Algorithm in C++
    1.6 Step-by-step numerical example of ACO algorithm
    1.7 Conclusion
    2 Arti□cial Bee Colony Algorithm
    Bahriye Akay and Dervis Karaboga
    2.1 Introduction
    2.2 The Original ABC algorithm
    2.3 Source-code of ABC algorithm in Matlab
    2.4 Source-code of ABC algorithm in C++
    2.5 Step-by-step numerical example of the ABC algorithm
    2.6 Conclusions
    References
    3 Bacterial Foraging Optimization
    Sonam Parashar, Nand K. Meena, Jin Yang, and Neeraj Kanwar
    3.1 Introduction
    3.2 Bacterial Foraging Optimization Algorithm
    3.2.1 Chemotaxis
    3.2.2 Swarming
    3.2.3 Reproduction
    3.2.4 Elimination and dispersal
    3.3 Pseudo-code of Bacterial Foraging Optimization
    3.4 Matlab Source-code of Bacterial Foraging Optimization
    3.5 Numerical Examples
    3.6 Conclusions
    3.7 Acknowledgement
    References
    4 Bat Algorithm
    Xin-She Yang and Adam Slowik
    4.1 Introduction
    4.2 Original bat algorithm
    4.2.1 Description of the bat algorithm
    4.2.2 Pseudo-code of BA
    4.2.3 Parameters in the bat algorithm
    4.3 Source code of bat algorithm in Matlab
    4.4 Source code in C++
    4.5 An worked example
    4.6 Conclusion
    References
    5 Cat Swarm Optimization
    Dorin Moldovan, Viorica Chifu, Ioan Salomie, and Adam Slowik
    5.1 Introduction
    5.2 Original CSO algorithm
    5.2.1 Pseudo-code of global version of CSO algorithm
    5.2.2 Description of global version of CSO algorithm
    5.2.2.1 Seeking Mode (Resting)
    5.2.2.2 Tracing Mode (Movement)
    5.2.3 Description of local version of CSO algorithm
    5.3 Source-code of global version of CSO algorithm in Matlab
    5.4 Source-code of global version of CSO algorithm in C++
    5.5 Step-by-step numerical example of global version of CSO algorithm
    5.6 Conclusions
    References
    6 Chicken Swarm Optimization
    Dorin Moldovan and Adam Slowik
    6.1 Introduction
    6.2 Original CSO algorithm
    6.2.1 Pseudo-code of global version of CSO algorithm
    6.2.2 Description of global version of CSO algorithm
    6.3 Source-code of global version of CSO algorithm in Matlab
    6.4 Source-code of global version of CSO algorithm in C++
    6.5 Step-by-step numerical example of global version of CSO algorithm
    6.6 Conclusions
    References

    7 Cockroach Swarm Optimization
    Joanna Kwiecien
    7.1 Introduction
    7.2 Original Cockroach Swarm Optimization Algorithm
    7.2.1 Pseudo-code of CSO algorithm
    7.2.2 Description of the CSO algorithm
    7.3 Source-code of CSO algorithm in Matlab
    7.4 Source-code of CSO algorithm in C++
    7.5 Step-by-step numerical example of CSO algorithm
    7.6 Conclusions
    References
    8 Crow Search Algorithm
    Adam Slowik and Dorin Moldovan
    8.1 Introduction
    8.2 Original CSA
    8.3 Source-code of CSA in Matlab
    8.4 Source-code of CSA in C++
    8.5 Step-by-step numerical example of CSA
    8.6 Conclusions
    References
    9 Cuckoo Search Algorithm
    Xin-She Yang and Adam Slowik
    9.1 Introduction
    9.2 Original Cuckoo Search
    9.2.1 Description of the cuckoo search
    9.2.2 Pseudo-code of CS
    9.2.3 Parameters in the cuckoo search
    9.3 Source code of the cuckoo search in Matlab
    9.4 Source code in C++
    9.5 An worked example
    9.6 Conclusion
    References
    10 Dynamic Virtual Bats Algorithm
    Ali Osman Topal
    10.1 Introduction
    10.2 Dynamic Virtual Bats Algorithm
    10.2.1 Pseudo-code of DVBA
    10.2.2 Description of DVBA
    10.3 Source-code of DVBA in Matlab
    10.4 Source-code of DVBA in C++
    10.5 Step-by-step numerical example of DVBA
    10.6 Conclusions

    11 Dispersive Flies Optimisation: A Tutorial
    Mohammad Majid al-Rifaie
    11.1 Introduction
    11.2 Dispersive Flies Optimisation
    11.3 Source code
    11.3.1 Matlab
    11.3.2 C++
    11.3.3 Python
    11.4 Numerical example: optimisation with DFO
    11.5 Conclusion
    References
    12 Elephant Herding Optimization
    Nand K. Meena, Jin Yang, and Adam Slowik
    12.1 Introduction
    12.2 Elephant Herding Optimization
    12.2.1 Position update of elephants in a clan
    12.2.2 Separation of male elephants from the clan
    12.2.3 Pseudo-code of EHO algorithm
    12.3 Source-code of EHO Algorithm in Matlab
    12.4 Source-code of EHO Algorithm in C++
    12.5 Step-by-step Numerical Example of EHO Algorithm
    12.6 Conclusions
    References
    13 Fire□y Algorithm
    Xin-She Yang and Adam Slowik
    13.1 Introduction
    13.2 Original □re□y algorithm
    13.2.1 Description of the standard □re□y algorithm
    13.2.2 Pseudo-code of FA
    13.2.3 Parameters in the □re□y algorithm
    13.3 Source code of □re□y algorithm in Matlab
    13.4 Source code in C++
    13.5 An worked example
    13.6 Handling constraints
    13.7 Conclusion
    References
    14 Glowworm Swarm Optimization - A Tutorial
    Krishnanand Kaipa and Debasish Ghose
    14.1 Introduction
    14.1.1 Basic principle of GSO
    14.1.2 The Glowworm Swarm Optimization (GSO) Algorithm
    14.1.3 Algorithm description
    14.2 Source-code of GSO algorithm in Matlab
    14.3 Source-code of GSO algorithm in C++
    14.4 Step-by-step numerical example of GSO algorithm
    14.5 Conclusions
    References
    15 Grasshopper Optimization Algorithm
    Szymon Šukasik
    15.1 Introduction
    15.2 Description of the Grasshopper Optimization Algorithm
    15.3 Source-code of GOA in Matlab
    15.4 Source-code of GOA in C++
    15.5 Step-by-step numerical example of GOA
    15.6 Conclusion
    References
    16 Grey Wolf Optimizer
    Ahmed F. Ali and Mohamed A. Tawhid
    16.1 Introduction
    16.2 Original GWO algorithm
    16.2.1 Main concepts and inspiration
    16.2.2 Social hierarchy
    16.2.3 Encircling prey
    16.2.4 Hunting process
    16.2.5 Attacking prey (exploitation)
    16.2.6 Search for prey (exploration)
    16.2.7 Pseudo-code of GWO algorithm
    16.2.8 Description of the GWO algorithm
    16.3 Source-code of GWO algorithm in Matlab
    16.4 Source-code of GWO algorithm in C++
    16.5 Step-by-step numerical example of GWO algorithm
    16.6 Conclusion
    17 Hunting Search Algorithm
    Ferhat Erdal and Osman Tunca
    17.1 Introduction
    17.2 Original HuS algorithm
    17.2.1 Pseudo-code of HuS algorithm
    17.2.1.1 Description of the global version of the HuS algorithm
    17.3 Source code of HuS algorithm in Matlab
    17.4 Source code of HuS algorithm in C++
    17.5 Elaborate on HuS Algorithm with Constrained Minimization Problem
    17.6 Conclusion
    References
    18 Krill Herd Algorithm
    Ali R. Kashani, Charles V. Camp, Hamed Tohidi, and Adam Slowik
    18.1 Introduction
    18.2 Original KH algorithm
    18.2.1 Pseudo-code of the original version of KH algorithm
    18.2.2 Description of the original version of KH algorithm
    18.3 Source-code of the KH algorithm in Matlab
    18.4 Source-code of the KH algorithm in C++
    18.5 Step-by-step numerical example of KH algorithm
    18.6 Conclusion
    References
    19 Monarch Butter□y Optimization
    Pushpendra Singh, Nand K. Meena, Jin Yang, and Adam Slowik
    19.1 Introduction
    19.2 Monarch Butter□y Optimization
    19.2.1 Migration operator
    19.2.2 Butter□y adjusting operator
    19.3 Algorithm of Monarch Butter□y Optimization
    19.4 Source-code of MBO Algorithm in Matlab
    19.5 Source-code of MBO Algorithm in C++
    19.6 Step-by-step Numerical Example of MBO Algorithm
    19.7 Conclusion
    References
    20 Particle Swarm Optimization
    Adam Slowik
    20.1 Introduction
    20.2 Original PSO algorithm
    20.2.1 Pseudo-code of global version of PSO algorithm
    20.2.2 Description of the global version of the PSO algorithm
    20.2.3 Description of the local version of the PSO algorithm
    20.3 Source-code of global version of PSO algorithm in Matlab
    20.4 Source-code of global version of PSO algorithm in C++
    20.5 Step-by-step numerical example of global version of PSO algorithm
    20.6 Conclusions
    References
    21 Salp Swarm Optimization: Tutorial
    Essam H. Houssein, Ibrahim E. Mohamed , and Aboul Ella Hassanien
    21.1 Introduction
    21.2 Salp Swarm Algorithm (SSA)
    21.2.1 Pseudo-code of SSA algorithm
    21.2.2 Description of the SSA algorithm
    21.3 Source code of SSA algorithm in Matlab
    21.4 Source-code of SSA algorithm in C++
    21.5 Step-by-step numerical example of SSA algorithm
    21.6 Conclusion
    References
    22 Social Spider Optimization
    Ahmed F. Ali and Mohamed A. Tawhid
    22.1 Introduction
    22.2 Original SSO algorithm
    22.2.1 Social behavior and inspiration
    22.2.2 Population initialization
    22.2.3 Evaluation of the solution quality
    22.2.4 Modeling of the vibrations through the communal web
    22.2.5 Female cooperative operator
    22.2.6 Male cooperative operator
    22.2.7 Mating operator
    22.2.8 Pseudo-code of SSO algorithm
    22.2.9 Description of the SSO algorithm
    22.3 Source-code of SSO algorithm in Matlab
    22.4 Source-code of SSO algorithm in C++
    22.5 Step-by-step numerical example of SSO algorithm
    22.6 Conclusion
    References
    23 Stochastic Di□usion Search: A Tutorial
    Mohammad Majid al-Rifaie and J. Mark Bishop
    23.1 Introduction
    23.2 Stochastic Di□usion Search
    23.2.1 The Mining Game
    23.2.2 Re□nements in the Metaphor
    23.3 SDS Architecture
    23.4 Step by step example: text search
    23.5 Source code
    23.5.1 Matlab
    23.5.2 C++
    23.5.3 Python
    23.6 Conclusion
    References
    24 Whale Optimization Algorithm
    Ali R. Kashani, Charles V. Camp, Moein Armanfar, and Adam Slowik
    24.1 Introduction
    24.2 Original WOA
    24.2.1 Pseudo-code of the WOA
    24.2.2 Description of the WOA
    24.3 Source-code of the WOA in Matlab
    24.4 Source-code of the WOA in C++
    24.5 A step-by-step numerical example of WOA
    24.6 Conclusions
    References
    Index

    Biography

    Adam Slowik (IEEE Member 2007; IEEE Senior Member 2012) is an Associate Professor in the Department of Electronics and Computer Science, Koszalin University of Technology. His research interests include soft computing, computational intelligence, and, particularly, bio-inspired optimization algorithms and their engineering applications. He was a recipient of one Best Paper Award (IEEE Conference on Human System Interaction - HSI 2008).