This book provides a handbook of algorithmic recipes from the fields of Metaheuristics, Biologically Inspired Computation and Computational Intelligence that have been described in a complete, consistent, and centralized manner. These standardized descriptions were carefully designed to be accessible, usable, and understandable. Most of the algorithms described in this book were originally inspired by biological and natural systems, such as the adaptive capabilities of genetic evolution and the acquired immune system, and the foraging behaviors of birds, bees, ants and bacteria. An encyclopedic algorithm reference, this book is intended for research scientists, engineers, students, and interested amateurs. Each algorithm description provides a working code example in the Ruby Programming Language.
Jason Brownlee, Ph.D. trained and worked as a research scientist and software engineer for many years (e.g. enterprise, R&D, and scientific computing), and is known online for his work on Computational Intelligence (e.g. Clever Algorithms), Machine Learning and Deep Learning (e.g. Machine Learning Mastery, sold in 2021) and Python Concurrency (e.g. Super Fast Python).
This book is really excellent if you're into metaheuristics and natural algorithms. A great deal of my graduate computer science research was in this field and I have dozens and dozens of books on the subject, but this is by far my favorite.
Jason Brownlee neatly categorizes most of the well-known metaheustics and nature-inspired algorithms and, for each one, explains how it works, why it works, when to use it, and even provides working examples written in Ruby. This might simply be bias talking but Ruby is one of my favorite programming languages so I found all of the code supplementing the usual pseudocode extremely helpful.
This book made sense of a ton of different metaheuristic algorithms for me, I used it constantly in my research. If you're interested in the subject, I recommend reading it as follows: read all of Part 1 (Background), then read the Overview sections on each chapter in Part II (Algorithms). I don't recommend trying to read straight through, the book is really more of a reference book. Each algorithm is generally self-contained, so you can just read what you need. If you want a broader understanding, read each algorithm's Inspiration, Metaphor, and Strategy sections as well, and the Heuristics sections when applicable (they cover when you would and wouldn't use it). My first attempt at this book was a front-to-back reading because I knew I was doing so much research in this area, but ultimately I think this wasn't the right approach for the book. It's a desk reference above all else.
This book isn't as math-y or proof-y as a lot of similar books (looking at you Handbook of Approximation Algorithms and Metaheuristics), it's far more practical with it's code samples in pesudocode and Ruby. This is really intended for practitioners who want to solve problems using nature-inspired algorithms, I don't think it's really intended for people who want to make contributions to the field of metaheuristics in general (though there is a section in Part III about designing your own algorithms).
All in all, great book, exactly what I was looking for and very helpful in my studies.
After reading foreword and preface to this book my expectations were really high and I couldn't wait to start reading it. It was mostly due to a promise given be Jason Brownlee, author of this book, to provide consistent and well structured introduction to many algorithms from areas of stochastic optimisation, neural networks, probabilistic algorithms and others. Regretfully, I was a bit disappointed with a number of details given on presented algorithms, which was fine when I was reading on some algorithms familiar to me, but when I wanted to learn on Bayesian Networks, I couldn't find any more than I already found on a wikipage. A big plus for giving very good list of references for all presented algorithms, which should direct readers into a right direction. To summarise, this book is a very good reference to many optimisation and approximation algorithms, but do not expect plenty of details on any of algorithm presented in this book.
Buku ini dibaca bareng satu kelas :). Buku ini lebih cocok jika dijadikan referensi oleh orang-orang yang sudah mempelajari dan memahami berbagai macam metode AI yang ada di buku ini kemudian ingin mempraktekkannya. Kalau belum paham masing-masing metode yang dijelaskan, melongo aja membaca deskripsinya. Memang ringkas dan praktis tapi untuk memahaminya perlu referensi lain yang lebih detail dalam menerangkannya dan ada contoh kasus. Ini bukan pendapat sendiri saja, tapi mayoritas satu kelas menyatakan demikian :D. Gara-gara buku ini aku juga jadi membaca the pickaxe book. Semoga bermanfaat lebih lanjut lah belajar Ruby-nya; tidak sekedar untuk mempraktekkan algoritma di buku ini.
This is a very clear and consistent treatment of algorithms useful (but not limited to) in the field of Computational Intelligence. It includes complete descriptions, inspiration, heuristics, pseudo-code and runnable Ruby language examples, plus overviews and introductions to different Artificial Intelligence subjects. The author's intent is to provide a consistent reference of these algorithms for scientists, engineers and programmers. It belongs on any shelf dedicated to the study of AI.
Useful as a reference, but not as a textbook for learning the algorithms. The algorithms are not explained in detail, hence it is difficult to determine if a certain idea is appropriate for a specific problem. Still, it was worth reading.