Optical solutions to NP-Complete problems


The purpose of this research is to use light and other signals to perform computations. Several devices for solving NP-complete problems have been proposed. This kind of solving problems is also called computation with time-delays.

Here are some properties of light useful for our system:

  • light has a limited speed, and thus we can delay it
  • due to the massive parallelism, light rays can be divided into 2 (sub)rays of smaller intensity.

Basic ideas:

  • Optical computing devices are very simple having a graph-like structure. Each device usually has a start node (where the light/signal enters) and a destination node (where the light/signal is expected to come out).

  • The light is marked in each node or in each arc so that it can be easily identified at the destination node.

  • The marking operation can be implemented by delaying the light by a certain amount of time. A delay can be obtained by forcing the ray to pass through a cable of a given length. Sometime this way to solve problems is also called computations with time-delays.

  • Later, each ray of light is divided into several small rays which are sent to the outgoing links. This operation can be implemented by using several beam-splitters (half silvered mirrors).

  • At the destination node we will search for a particular ray which have a particular property required by the problem. This operation can be done easily due to the special properties of the system which delays the rays passing through a node.

Problems that have been solved by using this idea:


On some problems it can be faster than digital computers.


The required amount of energy is exponential.

Note that this difficulty is not specific to this system only. Other major unconventional computation paradigms, trying to solve NP-complete problems share the same fate. For instance, a quantity of DNA equal to the mass of Earth is required to solve Hamiltonian Path problem with 200 cities using DNA computers

Video: Optical computing for the subset sum problem