The cellular automata approach and the related modeling techniques are powerful methods to describe, understand and simulate the behavior of complex systems. The aim of this book is to provide a pedagogical and self-contained introduction to this field and also to introduce recent developments. Our main goal is to present the fundamental theoretical concepts necessary for a researcher to address advanced applications in physics and other scientific areas.

In particular, this book discusses the use of cellular automata in the framework of equilibrium and nonequilibrium statistical physics and in application-oriented problems. The basic ideas and concepts are illustrated on simple examples so as to highlight the method. A selected bibliography is provided in order to guide the reader through this expanding field.

Several relevant domains of application have been mentioned only through references to the bibliography, or are treated superficially. This is not because we feel these topics are less important but, rather, because a somewhat subjective selection was necessary according to the scope of the book. Nevertheless, we think that the topics we have covered are significant enough to give a fair idea of how the cellular automata technique may be applied to other systems.

This book is written for researchers and students working in statistical physics, solid state physics, chemical physics and computer science, and anyone interested in modeling complex systems. A glossary is included to give a definition of several technical terms that are frequently used throughout the text. At the end of the first six chapters, a selection of problems is given. These problems will help the reader to become familiar with the concepts introduced in the corresponding chapter, or will introduce him to new topics that have not been covered in the text. Some problems are rather easy, although they usually require some programming effort, but other problems are more involved and will demand significant time to complete.

Most of the cellular automata simulations and results presented in this book have been produced on the 8k Connection Machine CM-200 of the University of Geneva. Others have been computed on an IBM SP2 parallel computer, also installed at the University of Geneva. Although a parallel supercomputer is quite useful when considering large scale simulations, common workstations and even modern personal computers are well adapted to perform cellular automata computations, except for on-line display which is alway very desirable. Dedicated hardware is also available but, usually, less flexible than a general purpose machine.

Despite our effort, several errors and misprints are still likely to be present. Please report them to us or (as well as any comment or suggestion).

We would like to thank all the people who have made this book possible and, in particular Claude Godr\`eche who gave us the opportunity to write it. Special thanks go to Pascal Luthi and Alexandre Masselot who made several original and important simulations which are presented in this book. Other people have played a direct or indirect role in the preparation of the manuscript. Among them, we thank Rodolphe Chatagny, Stephen Cornell, Laurent Frachebourg, Alan McKane, Zoltan Racz and Pierre-Antoine Rey.

Finally we acknowledge the Swiss National Science Foundation who funded some of the research reported here and the Computer Science Department and the Theoretical Physics Department of the University of Geneva for making available the necessary environment and infrastructure for this enterprise.