This book meant for those who seek to apply evolutionary algorithms to problems in engineering and science. To this end, it provides the theoretical background necessary to the understanding of the presented evolutionary algorithms and their shortcomings, while also discussing themes that are pivotal to the successful application of evolutionary algorithms to real-world problems. The theoretical descriptions are illustrated with didactical Python implementations of the algorithms, which not only allow readers to consolidate their understanding, but also provide a sound starting point for those intending to apply evolutionary algorithms to optimization problems in their working fields. Python has been chosen due to its widespread adoption in the Artificial Intelligence community. Those familiar with high level languages such as MATLAB™ will not have any difficulty in reading the Python implementations of the evolutionary algorithms provided in the book.
Instead of attempting to encompass most of the existing evolutionary algorithms, past and present, the book focuses on those algorithms that researchers have recently applied to difficult optimization problems, such as control problems with continuous action spaces and the training of high-dimensional convolutional neural-networks. The basic characteristics of real-world optimization problems are presented, together with recommendations on its proper application to evolutionary algorithms. The applied nature of the book is reinforced by the presentation of successful cases of the application of evolutionary algorithms to optimization problems. This is complemented by Python source codes, giving users an insight into the idiosyncrasies of the practical application of evolutionary algorithms.
Table of Contents
Preface. SECTION I: INTRODUCTION. Evolutionary Algorithms and Difficult Optimization Problems. Introduction to Optimization. Introduction to Evolutionary Algorithms. SECTION II: SINGLE-OBJECTIVE EVOLUTIONARY ALGORITHMS. Swarm Optimization. Evolution Strategies. Genetic Algorithms. Differential Evolution. SECTION III: MULTI-OBJECTIVE EVOLUTIONARY ALGORITHMS. Non-Dominated Sorted Genetic Algorithm II. Multiobjective Evolutionary Algorithm Based on Decomposition. SECTION IV: APPLYING EVOLUTIONARY ALGORITHMS. Solving Optimization Problems with Evolutionary Algorithms. Assessing the Performance of Evolutionary Algorithms. Case Study - Optimal Design of a Gear Train System. Case Study - Teaching a Legged Robot How to Walk. References.
Leonardo Azevedo Scardua received the D.Sc. degree in electrical engineering from the University of São Paulo, Brazil, in 2015. He has extensive engineering experience with mission-critical applications in the railway industry, having applied artificial intelligence and optimization algorithms in the development of software systems that control train traffic in many railways. He is now with the Control Engineering Department at the Federal Institute of Technology of Espírito Santo, Brazil.