Rather than store information using bits represented by 0s or 1s as conventional digital computers do, quantum computers use quantum bits, or qubits, to encode information as 0s, 1s, or both at the same time. This superposition of states—along with the other quantum mechanical phenomena of entanglement and tunneling—enables quantum computers to manipulate enormous combinations of states at once.
How D-Wave Systems Work
In nature, physical systems tend to evolve toward their lowest energy state: objects slide down hills, hot things cool down, and so on. This behavior also applies to quantum systems. To imagine this, think of a traveler looking for the best solution by finding the lowest valley in the energy landscape that represents the problem.
Classical algorithms seek the lowest valley by placing the traveler at some point in the landscape and allowing that traveler to move based on local variations. While it is generally most efficient to move downhill and avoid climbing hills that are too high, such classical algorithms are prone to leading the traveler into nearby valleys that may not be the global minimum. Numerous trials are typically required, with many travelers beginning their journeys from different points.
In contrast, quantum annealing begins with the traveler simultaneously occupying many coordinates thanks to the quantum phenomenon of superposition. The probability of being at any given coordinate smoothly evolves as annealing progresses, with the probability increasing around the coordinates of deep valleys. Quantum tunneling allows the traveller to pass through hills—rather than be forced to climb them—reducing the chance of becoming trapped in valleys that are not the global minimum. Quantum entanglement further improves the outcome by allowing the traveler to discover correlations between the coordinates that lead to deep valleys.
Programming a D-Wave system
The D-Wave system has a web API with client libraries available for C/C++, Python, and MATLAB. This allows users to access the computer easily as a cloud resource over a network.
To program the system, a user maps a problem into a search for the “lowest point in a vast landscape,” corresponding to the best possible outcome. The quantum processing unit considers all the possibilities simultaneously to determine the lowest energy required to form those relationships. The solutions are values that correspond to the optimal configurations of qubits found, or the lowest points in the energy landscape. These values are returned to the user program over the network.
Because a quantum computer is probabilistic rather than deterministic, the computer returns many very good answers in a short amount of time—thousands of samples in one second. This provides not only the best solution found but also other very good alternatives from which to choose.
D-Wave systems are intended to be used to complement classical computers. There are many examples of problems where a quantum computer can complement an HPC (high-performance computing) system. While the quantum computer is well suited to discrete optimization, for example, the HPC system is better at large-scale numerical simulations.
Download this whitepaper to learn more about programming a D-Wave quantum computer.
D-Wave’s flagship product, the 2000 qubit D-Wave 2000Q quantum computer, is the most advanced quantum computer in the world. It is based on a novel type of superconducting processor that uses quantum mechanics to massively accelerate computation. It is best suited to tackling complex optimization problems that exist across many domains such as:
- Machine learning
- Sampling / Monte Carlo
- Pattern recognition and anomaly detection
- Cyber security
- Image analysis
- Financial analysis
- Software / hardware verification and validation
- Bioinformatics / cancer research