It also uses the problem to illustrate important concepts in structural complexity, providing a look into the more general theory. 'The book is basically self-contained; the only prerequisite for reading it is some elementary knowledge from Complexity Theory and Probability Theory. Its level of presentation makes it eminently suitable for a seminar or graduate course devoted to the problem, or as a rich source of examples for a standard graduate course in Complexity Theory.