This is a book about the frontiers of computer science that have recently
been opened by work in quantum mechanics, but it is also a book
about the use of recently developed automatic programming technologies
to explore those frontiers. The automatic programming technologies
themselves issue from another interdisciplinary frontier of computer science
— one born of the intersection of computer science with evolutionary
biology. So this is a book about two frontiers of computer science,
one being used primarily for the sake of exploring the other.
The selection of topics in this book was made with the intention of
showing how genetic programming can be usefully applied to certain
problems in quantum computing. To this end, it provides a basic introduction
to quantum computing for non-physicists and it also provides a
basic introduction to genetic programming for non-computer-scientists.
These treatments should be comprehensible to scientifically literate readers
who have, at minimum, a passing familiarity with undergraduatelevel
computer science (e.g. programming concepts) and mathematics
(e.g. simple linear algebra). No background in physics is assumed.
Neither the introduction to quantum computing nor the introduction
to genetic programming is intended to be comprehensive or even "balanced."
Coverage of each field is limited to relatively narrow slices that
support the demonstrations found later in the book — those demonstrations
show how certain genetic programming techniques can be applied
to certain problems in quantum computing. Citations are provided
where appropriate to sources that provide more comprehensive and detailed