Learning Classifier Systems (LCS) are one of the major families of techniques that apply evolutionary computation to construct programs that automatically learn from experience. Introduction to Learning Classifier Systems, published in the “SpringerBriefs in Intelligent Systems” book series, is a very good textbook on LCS, and will be of interest to readers of Genetic Programming and Evolvable Machines.

The exposition of the topic flows naturally, allowing readers to understand each step. The exercises that the authors propose serve as an interesting closing of the initial process of understanding this topic. To this the authors add access to code to be able to experience the concepts introduced.

Urbanowicz and Browne use the multiplexer problem as their example to teach LCS. The multiplexer problem may at first seem very simple, but it turns out to have enough complexity to present LCS clearly and deeply, also the theme can be naturally mapped on to other domains.

Introduction to Learning Classifier Systems as a textbook, is organized into five chapters. Chapter one introduces us to the topic, starting with the key questions we ask ourselves when we want to understand the topic. What are the basic components of an LCS? What is a rule and how does it differ from a model? What does an LCS model look like and how is it used to make predictions?

Chapter 2 presents and analyzes the core concepts that distinguish LCS from other techniques. Here Urbanowicz and Browne also raise questions that are answered in the chapter. What are rules/classifiers? How can they be represented and evaluated? Why do we evolve a population of rules rather than a single rule as a solution? What is the importance of cooperation and competition among classifiers? How does an LCS interact with problems to find and generalize useful patterns? What problem properties should be considered when deciding whether to apply an LCS? What are the general advantages and disadvantages of LCS? How to begin implementing an LCS?

In these first two chapters they give an introductory vision to the topic of LCS. This is ideal for students. Chapter 3 closes the basic explanation of LCS introduced in the first two chapters. By Chapter 3 we can really understand the whole LCS cycle, with pictures that really clarify the differences between the different search spaces.

Chapter four changes the introductory style a little. Here Urbanowicz and Browne introduce different LCS approaches and analyze them. For readers who are new to LCS, Chapter 4 gives important information so that they get closer to these different approaches. While readers are informed about these approaches, I think that they need to provide details themselves for their complete understanding. Chapter 4 is then a guide to issues to investigate on your own.

The final chapter is certainly very interesting. Chapter 5 adds tips to the theoretical and practical concepts of this textbook. So, someone who is starting with LCS can have information that allows them to implement the concepts introduced in the book with much more confidence. But this is not all, in the same chapter Urbanowicz and Browne focus on “Where to Now?”. They consider that there is much more to do and discover in this area, they inform us about workshops, conferences, books, journals, select reviews, websites and software. This gives a good closing to a complete introduction to LCS.

The authors are specialists in the subject of this book, a specialty that is evidenced by articles published on the subject in both well-known journals and conferences. Ryan Urbanowicz of the University of Pennsylvania, USA, shows his specialty in Learning Classifier Systems, Bioinformatics, Data Mining, Machine Learning, Evolutionary Algorithms and Data Visualization. Whilst Will Browne of the Victoria University of Wellington, New Zealand, shows his expertise in Learning Classifier Systems, Cognitive Robotics and Modern Heuristics for industrial application.

In summary, even considering that it is a short text, Introduction to Learning Classifier Systems is an excellent textbook and introduction to Learning Classifier Systems. LCS are introduced didactically by means of an easily understandable example. The theoretical topics are introduced with absolute clarity, and it only remains for the reader to delve into specific approaches introduced in chapter four. The book is completed with Python code available through a link included in the book. Also, information to continue with the subject is included. Urbanowicz and Browne recommend their book for undergraduate and postgraduate students, data analysts, and machine learning practitioners alike. I consider the recommendation appropriate, although I would extend it to software developers and bioinformatics practitioners, as it is appropriate for anyone who wants to know and begin to use Learning Classifier Systems.