Preface
1: Introduction to Algorithms
1.1 What is an Algorithm?
1.2 Newton’s Method
1.3 Optimization
1.4 Search for Optimality
1.5 No-Free-Lunch Theorems
1.6 Nature-Inspired Metaheuristics
1.7 A Brief History of Metaheuristics
2: Analysis of Algorithms
2.1 Introduction
2.2 Analysis of Optimization Algorithms
2.3 Nature-Inspired Algorithms
2.4 Parameter Tuning and Parameter Control
2.5 Discussions
2.6 Summary
3: Random Walks and Optimization
3.1 Random Variables
3.2 Isotropic Random Walks
3.3 Lévy Distribution and Lévy Flights
3.4 Optimization as Markov Chains
3.5 Step Sizes and Search Efficiency
3.6 Modality and Intermittent Search Strategy
3.7 Importance of Randomization
3.8 Eagle Strategy
4: Simulated Annealing
4.1 Annealing and Boltzmann Distribution
4.2 Parameters
4.3 SA Algorithm
4.4 Unconstrained Optimization
4.5 Basic Convergence Properties
4.6 SA Behavior in Practice
4.7 Stochastic Tunneling
5: Genetic Algorithms
5.1 Introduction
5.2 Genetic Algorithms
5.3 Role of Genetic Operators
5.4 Choice of Parameters
5.5 GA Variants
5.6 Schema Theorem
5.7 Convergence Analysis
6: Differential Evolution
6.1 Introduction
6.2 Differential Evolution
6.3 Variants
6.4 Choice of Parameters
6.5 Convergence Analysis
6.6 Implementation
7: Particle Swarm Optimization
7.1 Swarm Intelligence
7.2 PSO Algorithm
7.3 Accelerated PSO
7.4 Implementation
7.5 Convergence Analysis
7.6 Binary PSO
8: Firefly Algorithms
8.1 The Firefly Algorithm
8.2 Algorithm Analysis
8.3 Implementation
8.4 Variants of the Firefly Algorithm
8.5 Firefly Algorithms in Applications
8.6 Why the Firefly Algorithm is Efficient
9: Cuckoo Search
9.1 Cuckoo Breeding Behavior
9.2 Lévy Flights
9.3 Cuckoo Search
9.4 Why Cuckoo Search is so Efficient
9.5 Global Convergence: Brief Mathematical Analysis
9.6 Applications
10: Bat Algorithms
10.1 Echolocation of Bats
10.2 Bat Algorithms
10.3 Implementation
10.4 Binary Bat Algorithms
10.5 Variants of the Bat Algorithm
10.6 Convergence Analysis
10.7 Why the Bat Algorithm is Efficient
10.8 Applications
11: Flower Pollination Algorithms
11.1 Introduction
11.2 Flower Pollination Algorithm
11.3 Multi-Objective Flower Pollination Algorithms
11.4 Validation and Numerical Experiments
11.5 Applications
11.6 Further Research Topics
12: A Framework for Self-Tuning Algorithms
12.1 Introduction
12.2 Algorithm Analysis and Parameter Tuning
12.3 Framework for Self-Tuning Algorithms
12.4 A Self-Tuning Firefly Algorithm
12.5 Some Remarks
13: How to Deal with Constraints
13.1 Introduction and Overview
13.2 Method of Lagrange Multipliers
13.3 KKT Conditions
13.4 Penalty Method
13.5 Equality with Tolerance
13.6 Feasibility Rules and Stochastic Ranking
13.7 Multi-objective Approach to Constraints
13.8 Spring Design
13.9 Cuckoo Search Implementation
14: Multi-Objective Optimization
14.1 Multi-Objective Optimization
14.2 Pareto Optimality
14.3 Weighted Sum Method
14.4 Utility Method
14.5 The -Constraint Method
14.6 Metaheuristic Approaches
14.7 NSGA-II
15: Other Algorithms and Hybrid Algorithms
15.1 Ant Algorithms
15.2 Bee-Inspired Algorithms
15.3 Harmony Search
15.4 Hybrid Algorithms
15.5 Final Remarks
Appendix A: Test Function Benchmarks for Global Optimization
Appendix B: Matlab Programs
B.1 Simulated Annealing
B.2 Particle Swarm Optimization
B.3 Differential Evolution
B.4 Firefly Algorithm
B.5 Cuckoo Search
B.6 Bat Algorithm
B.7 Flower Pollination Algorithm