Updated June 2016

This project is about using the mathematics of quantum mechanics, and the physical representation of information in the optical polarization and diffraction of light, to perform general 1 and 2-bit computation. Along the way, this work is expected to create a working device (or set of devices) that can perform general 1 and 2-bit quantum operations on its inputs, as well as to create other equipment and procedures useful to optical computing. It is anticipated (hoped?) that the ability to generate and manipulate 1 and 2-bit optical states will lead to the construction of 4-bit, 8-bit, 16-bit, and larger devices with only a modest increase in complexity.

This is the public page for this project. Initially, the work for this project consisted primarily of reading books and papers, and attempting to narrow the scope and focus of the topic down from the veritable universe of possibilities being explored in the literature. The information presented here represents the (still evolving) distillation and condensation of that process. The following is a very basic description of some of the work involved in this project, along with a short explanation of relevant quantum and optical computing concepts.

Conventional computers and telecommunications equipment are based on transistors, which are usually packaged as micro-processors and other integrated circuits. In a few years, many or most of these electronic devices will be replaced with optical devices which perform similar functions, although the way they work might be very different. This is inevitable in the same way that integrated circuits replaced discrete transistors, which replaced tubes and relays, which replaced mechanical devices, which replaced something else (the abacus?). Many other people have talked about the potential advantages of optical and quantum computing, so I won't go into that here. In any case, within the next 20 years optical computing is virtually certain to become a worldwide, state-of-the-art, stock-in-trade, industry worth trillions of $.

In this project, one bit is represented as a polarization state of light. There are an uncountably infinite number of these states, and they are distributed on the surface of a sphere. Polarization of light ranges from circular polarization of one sense (e.g. left-handed), through varying ellipses of increasing directionality, to linear polarization with a definite direction (but without an arrowhead), through ellipses of the opposite sense (e.g. right-handed) and back to circular polarization of the opposite sense. On the sphere, the longitude is the orientation of the ellipse or line, and the latitude is the degree of circularity, with linear polarization on the equator, and circular polarization at the poles. There is disagreement in the literature as to which variety of circular polarization is actually "left" or "right". To avoid this, I refer to circular (and elliptical) polarization as either "green" or "red". The important thing is that there are two senses which are opposite one another on the sphere (are antipodal), and are therefore orthogonal. In optics, this sphere is called the Poincare sphere, while in quantum computing it is called the Bloch sphere. There are differences between them, but in general I will use the Poincare sphere in both cases. The core representation of one bit is the quantum one: a 2-component vector of complex numbers (a number having both magnitude and phase), usually normalized to have an overall magnitude of 1. This vector is converted to a polarization ellipse using the magnitudes and phase difference between the two components, and a simple cosine function. The vector components refer to a pair of physical polarizations (usually horizontal and vertical, or green and red) that are orthogonal to one another. There are links below to software that lets you play with individual bits in this way, and with more complicated objects.

Two bits are represented as a 4-component vector (actually a 2d matrix) of complex values. 2-bit objects can be made from 2 1-bit objects --and the original individual bits can be separated out again-- or they can be made independently of any individual bits so that they cannot be separated into individual bits. The latter case is the general rule for 2-bit states, while the separable case is the exception. This is one of the important differences between conventional 2-bit strings and quantum 2-bit objects. There are also important differences between conventional individual bits and quantum 1-bit objects. You have probably heard about superposition of states: a quantum bit can be in a state which is a combination of logical 0 and 1. But these combinations include not only real proportions of different states (e.g. 50/50), but also imaginary proportions (based on the number i) which have identical magnitudes but different phases, and complex proportions which have different magnitudes and phases but whose sum of squares is equal to one. In quantum mechanics, both the relative magnitudes of numbers, and also the phase differences between them, are essential to the math.

One bit can be encoded in the polarization of an infinitesimal beam of light, although in practice all beams are finite (but might be less than a mm in diameter right from the laser). However, there is no obvious way to encode 2 bits of information in a single beam. There are many possible strategies, and the scientific literature explores several of them. One currently popular way to encode a multi-bit representation is to create a "vortex beam" which, in general, is a narrow beam with an intensity minimum (and phase singularity) at the center, and maxima at one or more radii, and polarization that varies around the center with respect to radius and azimuth, but which is radially symmetric. These beams are currently created with esoteric optical components or expensive computer-controlled diffraction gratings. Although this project recognizes the potential utility of vortex beams, it is not restricted to this kind of variation, and explores more general 2d variations in polarization across a finite beam (which might be several cm in diameter after passing through a beam expander).

For purposes of quantum computation, an essential requirement is to find a useful and practical way to encode a 2-bit object in the 2d non-uniform polarization of a beam. More specifically, a goal is to find one or more sets of 4 distinctly characteristic patterns that represent "basis vectors" for 2-bit objects. There may be (infinitely) many such sets of patterns. Basis patterns must fulfill 3 requirements: (1) each pattern must be "normalized" so that it has an "inner product" equal to 1, (2) pairs of patterns must have an inner product of 0, which means that they are orthogonal, and (3) every other pattern of interest (i.e. one that is used to encode a specific 2-bit state) must be representable as a superposition of the 4 basis patterns which makes use of both magnitude and phase. In this case, "phase" is the physical phase difference between the light used to encode the base components of the polarization of the basis vectors (which are usually linear horizontal and vertical, or circular green and red).

So, a primary goal of this project is to develop methodology and technology that enable the creation, manipulation, and detection of (arbitrary) non-uniform 2d distributions of polarization. Based on current literature, no such technology exists today, and, with the exception of the vortex beams mentioned above, there is little work being done toward developing it for use in quantum computing (although some papers are starting to appear). Although there might be several different ways to pursue this goal, this project adopts the strategy of using the diffraction of an incident beam of light to create specific down-beam distributions of polarization. For a simple example of how this can be done, see the "diffraction of polarized light" tutorial in the "polar" sub-topic below. In general, however, the relationship between the geometry of incident sources and the resulting distribution of down-beam polarization is a complicated one which must be calculated numerically by computer. Thus, a significant part of this project is devoted to the elucidation of this relationship by virtue of generating a large number of systematic calculations (simulations of diffraction) in order to search for distinct patterns that can be used as states and bases for 2-bit representations.

All of the above is entirely mathematical, and without implementation as a real optical system it remains purely theoretical. Unfortunately, much of the quantum computing literature is this way. So there is an obvious need for physical trials that verify or refute the math by experimentation. This project is directed toward building physical devices, so the use of various optical equipment is required. Optical components currently in use include HeNe and diode lasers, various simple lenses, linear polarizing filters (fixed and rotating), film holders for transmission and reflection, and a glass polarized beam splitter. In addition, custom diffraction filters (transmission and reflection, intensity and phase) are made from 35 mm film negatives exposed to (inverted) images on a computer screen. For generation and detection of elliptical and circular polarized light, wave retardation plates are made from transparent birefringent film (e.g. for overhead projectors). In the near future, additional equipment will include: mirrors, non-polarized beam splitters, image rotation prisms, optical fibers, and other relatively standard and less expensive optical components.

Motivation for this project comes, in part, from a desire to create simple and inexpensive alternatives to commercial laboratory optical equipment, which is usually priced out of the range of the individual researcher (like me). In many cases this means, literally, constructing optical components from wood, cardboard, and plastic, although many less expensive (e.g. educational grade) optical and other parts are also used. Most of these (including the computer components, camera, electronic and test equipment, books, and other general supplies) were purchased online from Amazon for a small fraction of the budget of a typical university or industrial research project. There is nothing (tangible) in this project that is beyond the capability of the average hobbyist, and it is hoped that this work will inspire other people to pursue their own projects as well.

Inspiration for this project came not only from a general interest in math and physics, and from 40 years work in scientific programming and research, but also from reading books by people like Anton Zeilinger ("Dance of the Photons") and Leonard Susskind ("The Theoretical Minimum: Quantum Mechanics"). I would recommend books by both authors, and Susskind also has an excellent internet video series on quantum mechanics and other physics at theoreticalminimum.com. For more background, a short internet search will supply a list of standard books (e.g. Nielsen & Chuang) and papers (many of which are available at arxiv.org), and there are many Wikipedia articles on quantum mechanics and quantum computing. Almost any recent book on quantum mechanics contains a few introductory chapters on quantum computing and quantum data (e.g. spins).

All software for this project is developed using Linux (Ubuntu 14.04 64-bit). C programs are compiled using GCC and standard C libraries (e.g. math and png). Javascript programs are run in Chromium, and tested in Firefox. Chromium or Chrome give best performance (numerical calculations and graphics). Programs have also been tested using Firefox and Chrome on Macintosh systems 10.6.8 and latest. No other systems or browsers are supported or have been tested. These programs are not really meant to be used by anyone outside of the project, and will probably be difficult to understand without a detailed demonstration and some knowledge of the field.

This project is funded, in part, by a grant from Kenneth and Barbara Steiner.

©Copyright Sky Coyote, 2015-2017. * Quantum Optical Computation top