ebook img

Automatic Quantum Computer Programming: A Genetic Programming Approach PDF

158 Pages·2007·2.297 MB·English
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Automatic Quantum Computer Programming: A Genetic Programming Approach

AUTOMATIC QUANTUM COMPUTER PROGRAMMING A Genetic Programming Approach GENETIC PROGRAMMING SERIES Series Editor John Koza Stanford University Also in the series: GENETIC PROGRAMMING AND DATA STRUCTURES: Genetic Programming + Data Structures = Automatic Programming! William B. Langdon; ISBN: 0-7923-8135-1 AUTOMATIC RE-ENGINEERING OF SOFTWARE USING GENETIC PROGRAMMING, Conor Ryan; ISBN: 0-7923-8653-1 DATA MINING USING GRAMMAR BASED GENETIC PROGRAMMING AND APPLICATIONS, Man Leung Wong andKwong Sak Leung; ISBN: 0-7923-7746-X GRAMMATICAL EVOLUTION: Evolutionary Automatic Programming in an Arbitrary Language, Michael O 'Neill and Conor Ryan; ISBN: 1-4020- 7444-1 GENETIC PROGRAMMING IV: Routine Human-Computer Machine Intelligence, John R. Koza, Martin A. Keane, Matthew J. Streeter, William Mydlowec, Jessen Yu, Guido Lanza; ISBN: 1-4020-7446-8 GENETIC PROGRAMMING THEORY AND PRACTICE, edited by RickRiolo, Bill Worzel; ISBN: 1-4020-7581-2 AUTOMATIC QUANTUM COMPUTER PROGRAMMING A Genetic Programming Approach Lee Spector Hampshire College ^ Springer Lee Spector Hampshire College Library of Congress Control Number: 2006931640 ISBN-10: 0-387-36496-X e-ISBN-10: 0-387-36791-8 ISBN-13: 978-0387-36496-4 e-ISBN-13: 978-0387-36791-0 © 2004 by Springer Science-nBusiness Media, LLC Paperback Edition 2007 All rights reserved. This work may not be translated or copied in whole or in part without the written permission of the publisher (Springer Science + Business Media, LLC, 233 Spring Street, New York, NY 10013, USA), except for brief excerpts in connection with reviews or scholarly analysis. Use in connection with any form of information storage and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now known or hereafter developed is forbidden. The use in this pubhcation of trade names, trademarks, service marks and similar terms, even if they are not identified as such, is not to be taken as an expression of opinion as to whether or not they are subject to proprietary rights. 987654321 springer.com Contents Preface vii 1. THE POWER OF QUANTUM COMPUTING 1 1 What is Quantum Computing? 1 2 Possibilities Count 4 3 The Role of Automatic Programming 10 2. QUANTUM COMPUTER SIMULATION 13 1 Bits, Qubits, and Gates 13 2 Gate-Level Simulation 18 3. QUANTUM COMPUTER PROGRAMMING 23 1 QGAME: Quantum Gate and Measurement Emulator 23 2 Visualization 28 3 Example: Grover's Database Search Algorithm 31 4. GENETIC AND EVOLUTIONARY COMPUTATION 37 1 What is Genetic and Evolutionary Computation? 37 2 Genetic Algorithms 39 3 Scalability via Parallelism 41 4 Applicability of Genetic and Evolutionary Computation 41 5. GENETIC PROGRAMMING 43 1 Programming by Genetic Algorithm 43 2 Traditional Program Representations 45 3 Traditional Genetic Operators 48 4 Example: Symbolic Regression 49 5 Obtaining Genetic Programming Results 52 vi AUTOMATIC QUANTUM COMPUTER PROGRAMMING 6. EVOLUTION OF COMPLEX PROGRAMS 55 1 Types, Modules, and Development 56 2 The Push Programming Language 59 3 Push Examples 63 4 PushGP: Genetic Programming with Push 68 5 Autoconstructive Evolution 71 7. EVOLUTION OF QUANTUM PROGRAMS 75 1 Program Representations 75 2 Fitness 80 3 Operators and Refinements 82 8. EVOLVED QUANTUM PROGRAMS 87 1 The 1-bit Deutsch-Jozsa (XOR) Problem 88 2 Grover's Database Search Problem 95 3 Scaling Majority-ON 104 4 The OR and AND/OR Problems 108 5 Gate Communication Problems 114 6 Significance of These Results 118 9. CONCLUSIONS AND PROSPECTS 123 Appendix A QGAME source code 127 References 141 About the Author 149 Index 151 Preface This is a book about the frontiers of computer science that have re cently been opened by work in quantum mechanics, but it is also a book about the use of recently developed automatic programming technolo gies to explore those frontiers. The automatic programming technologies themselves issue from another interdisciplinary frontier of computer sci ence — one born of the intersection of computer science with evolution ary 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 intro duction 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 read ers who have, at minimum, a passing familiarity with undergraduate- level 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 "bal anced." Coverage of each field is limited to relatively narrow slices that support the demonstrations found later in the book — those demon strations show how certain genetic programming techniques can be ap plied to certain problems in quantum computing. Citations are provided where appropriate to sources that provide more comprehensive and de tailed coverage. The first chapter contains an introduction to quantum computing for non-physicists. The intention is to provide readers with a sense of how quantum computers could possibly deliver the surprising benefits that many researchers envision. viii AUTOMATIC QUANTUM COMPUTER PROGRAMMING The second chapter details a mathematical (matrix-based) model of quantum computation and describes how this model can be used to sim ulate quantum computations on classical computers. Such simulation is necessarily inefficient — if we could simulate quantum computers ef ficiently on classical computers then there'd be little reason to study quantum computing in the first place! But for small computations sim ulation is indeed possible; this model allows us to use simulation in the "fitness assessment" step of a genetic programming algorithm, described later in the book. The third chapter describes one particular quantum computer simula tion system, the author's QGAME ("Quantum Gate and Measurement Emulator") system, and presents a few of the ways in which quantum programs and quantum computer states can be visually displayed. It concludes with a detailed example of the simulation of a quantum pro gram for Grover's database search problem. The fourth chapter introduces genetic and evolutionary computation, with a focus on the traditional genetic algorithm. It also discusses, in general terms, the use of parallelism to scale genetic and evolutionary computation technologies up for complex applications, and the applica bility of these technologies for various types of problems including those related to quantum computing. The fifth chapter specializes the treatment of genetic algorithms to ge netic programming, which is the use of genetic algorithms for automatic programming. It includes a detailed example and a discussion of the steps one must generally take to obtain and understand useful results from a genetic programming system. The sixth chapter moves beyond traditional genetic programming, and describes the ways in which one can evolve programs that include, for example, multiple data types, modules, and developmental compo nents. Some of these capabilities are particularly useful for the evolu tion of quantum programs. Emphasis is placed on the author's Push programming language for genetic and evolutionary computation, which provides some of the desired advanced capabilities in unusually simple ways. This chapter concludes with a description of the PushGP genetic programming system, which evolves Push programs, and a brief descrip tion of some more radically self-adaptive "autoconstructive evolution" techniques that are enabled by Push. The seventh and eighth chapters bring the materials from all of the preceding chapters together, first with a discussion of specific strate- PREFACE ix gies for quantum program evolution/ and then with concrete examples in which interesting quantum programs were evolved using QGAME, PushGP and related technologies. These examples document a few spe cific ways in which genetic programming has already helped to explore the power of quantum computing. The ninth chapter provides a brief summary of the main points of the book and discusses prospects for new discoveries made with the aid of automatic quantum computer programming technologies. Source code, in Common Lisp, for a minimal version of QGAME is included in the Appendix. Additional related source code is available online from addresses that are cited within the text. Most of these files are also hnked to the author's pubhc "code" page.^ This book would not have been possible without the close working re lationships enjoyed by the author with colleagues and students at Hamp shire College in Amherst, Massachusetts. Several of the results that are used as examples in the book emerged from joint work of the author with Herbert J. Bernstein, Howard Barnum, and Nikhil Swamy. Al though specific joint results are acknowledged where they occur in the text, these citations do not by themselves fully convey the extent of the influence of these colleagues. Similarly, the novel technologies that are described in the text owe much to the contributions of Chris Perry, Jon Klein, Mark Feinstein, Raymond Coppinger, Alan Robinson, Raphael Crawford-Marks, and Manuel Nickschas. Many of these colleagues also commented on the manuscript of this book, leading to substantial im provements. Additional substantial comments were provided by John Koza, Sameer H. Al-Sakran, and Rennie Nelson. Rebecca S. Neimark provided essential assistance in many phases of the project, including the creation of several of the figures and the design of the cover, which uses an image created by Chris Perry. James Hendler provided critical encouragement and advice, and Leni Bowen and Paula Harmon provided invaluable administrative support. Some of the materials used in this book derive from those prepared by the author for a series of tutorials on quantum computing presented over several years at the Genetic and Evolutionary Computation Confer- •'Note that the term "evolution" is used here and throughout this book in a sense derived from its biological usage: it refers to a process in which a population undergoes variation and natural selection. Some physicists use "evolution" in a more general sense, to describe any change in a system over time. The phrase "quantum program evolution" in this book refers to the generation of quantum programs using techniques derived from biological evolutionary processes. ^http://hampshire.edu/lspector/code.html

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.