Evolutionary computation is the study of computational systems which use ideas and get inspiration from natural evolution and adaptation. This book is devoted to the theory and application of evolutionary computation. It is a self-contained volume which covers both introductory material and selected advanced topics. The book can roughly be divided into two major parts: the introductory one and the one on selected advanced topics. Each part consists of several chapters which present an in-depth discussion of selected topics. A strong connection is established between evolutionary algorithms and traditional search algorithms. This connection enables us to incorporate ideas in more established fields into evolutionary algorithms. The book is aimed at a wide range of readers. It does not require previous exposure to the field since introductory material is included. It will be of interest to anyone who is interested in adaptive optimization and learning. People in computer science, artificial intelligence, operations research, and various engineering fields will find it particularly interesting.