Applied Evolutionary Algorithms for Engineers with Python is written for students, scientists and engineers who need to apply evolutionary algorithms to practical optimization problems. The presentation of the theoretical background is complemented with didactical Python implementations of evolutionary algorithms that researchers have recently applied to complex optimization problems. Cases of successful application of evolutionary algorithms to real-world like optimization problems are presented, together with source code that allows the reader to gain insight into the idiosyncrasies of the practical application of evolutionary algorithms.
Key Features
Includes detailed descriptions of evolutionary algorithm paradigms
Provides didactic implementations of the algorithms in Python, a programming language that has been widely adopted by the AI community
Discusses the application of evolutionary algorithms to real-world optimization problems
Presents successful cases of the application of evolutionary algorithms to complex optimization problems, with auxiliary source code.
Author(s): Leonardo Azevedo Scardua
Edition: 1
Publisher: CRC Press
Year: 2021
Language: English
Tags: Optimization;Python;Metaheuristics;Evolutionary algorithms
Cover
Title Page
Copyright Page
Preface
Contents
Glossary
Section I: Introduction
1. Evolutionary Algorithms and Difficult Optimization Problems
1.1 What Makes an Optimization Problem Harder to Solve
1.2 Why Evolutionary Algorithms
2. Introduction to Optimization
2.1 What is Optimization
2.2 Solutions of an Optimization Problem
2.3 Maximization or Minimization
2.4 Basic Mathematical Formulation
2.5 Constraints and Feasible Regions
2.6 Local Solutions and Global Solutions
2.7 Multimodality
2.8 Multi-Objective Optimization
2.9 Combinatorial Optimization
3. Introduction to Evolutionary Algorithms
3.1 Representing Candidate Solutions
3.1.1 Discrete Representations
3.1.2 Integer Representation
3.1.3 Real-valued Representation
3.2 Comparing Representations on a Benchmark Problem
3.3 The Fitness Function
3.4 Population
3.5 Selecting Parents
3.5.1 Selection Probabilities
3.5.2 Sampling
3.5.3 Selection of Individuals
3.6 Crossover (Recombination)
3.6.1 Recombination for Discrete Representations
3.6.2 Recombination for Real-valued Representations
3.7 Mutation
3.7.1 Mutation for Binary Representations
3.7.2 Mutation for Real-valued Representations
3.7.3 Mutation for Integer Representations
3.8 Elitism
Section II: Single-Objective Evolutionary Algorithms
4. Swarm Optimization
4.1 Ant Colony Optimization
4.2 Particle Swarm Optimization
5. Evolution Strategies
5.1 Recombination Operators
5.2 Mutation Operators
5.3 The (1 + 1) ES
5.4 The (μ + λ) ES
5.5 Natural Evolution Strategies
5.6 Covariance Matrix Adaptation Evolution Strategies
6. Genetic Algorithms
6.1 Real-Valued Genetic Algorithm
6.2 Binary Genetic Algorithm
7. Differential Evolution
Section III: Multi-Objective Evolutionary Algorithms
8. Non-Dominated Sorted Genetic Algorithm II
9. Multiobjective Evolutionary Algorithm Based on Decomposition
Section IV: Applying Evolutionary Algorithms
10. Solving Optimization Problems with Evolutionary Algorithms
10.1 Benchmark Problems
10.1.1 Single-Objective
10.1.2 Multi-Objective
10.1.3 Noisy
10.2 Dealing with Constraints
10.3 Dealing with Costly Objective Functions
10.4 Dealing with Noise
10.5 Evolutionary Multi-Objective Optimization
10.6 Some Auxiliary Functions
11. Assessing the Performance of Evolutionary Algorithms
11.1 A Cautionary Note
11.2 Performance Metric
11.3 Confidence Intervals
11.4 Assessing the Performance of Single-Objective Evolutionary Algorithms
11.5 Assessing the Performance of Multi-Objective Evolutionary Algorithms
11.6 Benchmark Functions
12. Case Study: Optimal Design of a Gear Train System
13. Case Study: Teaching a Legged Robot How to Walk
References
Index