Learning to program the D-Wave One

D-Wave has introduced a computing system built around a new kind of processor. This system is called the D-Wave One. It is unlike any other you may have programmed in the past.

The processor in the D-Wave One – codenamed Rainier – is designed to perform a single mathematical operation called discrete optimization. It is a special purpose processor. When writing applications the D-Wave One is used only for the steps in your task that involve solving optimization problems. All the other parts of your code still run on your conventional systems of choice.

Rainier solves optimization problems using quantum annealing (QA), which is a class of problem solving approaches that use quantum effects to help get better solutions, faster. Because D-Wave One is a type of quantum computer, it‘s natural to think that developing applications on the system might be really hard. While it does require some work, it is not as difficult as you might think. Most of the hard work arises from having to bring together basic knowledge from fields that normally don‘t cross-pollinate much, such as quantum physics and machine learning.

This is the first in a series of blog posts describing the algorithms we have run on D-Wave quantum computers, and how to use these to build interesting applications. It is meant to be practical and hands-on, and is not meant to be an advanced or comprehensive review of any of the underlying concepts used. We can point you to reference material on any subject where you might want a deeper dive.

We start by introducing and describing an algorithm, called quantum binary classification (QBC), which is a supervised machine learning technique which can be used to train any binary classifier. A binary classifier is software that inputs an object, such as an image, document, or sound file, and labels it with one of two possible labels – for example, “yes” or “no”. The “yes” or “no” response can be to any question you can think of pertaining to the type of object in question. The QBC algorithm was co-developed with researchers at Google and Purdue University, and was first used for building a classifier for labeling the presence or absence of cars in images.

To make everything concrete, we will run through a fully worked example, where we use the QBC algorithm to train a binary classifier that inputs a person‘s first name, and classifies it as either more likely to be male or female. This example was chosen because it‘s fun, simple, and exhibits the basic features of more complex binary classification problems.

Audience and Required Background

This material was developed to help software developers interested in learning how to program D-Wave quantum computing systems get started. Experience in machine learning (in particular classification) and discrete optimization is helpful but not necessary. The programming language used in the included examples and source code is Python 2.7, and use is made of the Natural Language Tool Kit (NLTK) and the Natural Language Processing with Python book. While the example we will go through involves basic concepts in natural language processing (NLP), no background in NLP is required. No previous exposure to programming D-Wave quantum computing systems is necessary. A very helpful companion document, which first introduced the algorithm described here, is Training a Large Scale Classifier with the Quantum Adiabatic Algorithm.

36 thoughts on “Learning to program the D-Wave One

  1. Pingback: D-Wave Announces Commerically Available Quantum Computer - Alex Knapp - Robot Overlords - Forbes

  2. Pingback: myPost.gr | Μπορείτε Πλέον Να Αγοράσετε Έναν Κβαντικό Υπολογιστή

  3. Pingback: Et un ordinateur quantique, un ! | Pourquoi Comment Combien

  4. Pingback: Μπορείτε πλέον να αγοράσετε έναν κβαντικό υπολογιστή | ΕΚΡΗΚΤΙΚΟ

  5. Pingback: Mejores diseños y conceptos Mayo - Parte 2

  6. I’m confused. This post seems to get right up to the point of describing the software and stops. Is there another post coming?

  7. When are we going to be able to run Grover’s algorithm on the D-Wave? There are some numbers I’d like to factor.

    • Grover’s algorithm isn’t for factoring (I’m actually not sure what it’s supposed to be for). We do have a factoring algorithm that I’m going to do a series of blog posts on (the working title is “Better than Shor” :-) ). It’s scheduled to be the fourth in the series (binary classification, structured classification, unsupervised feature extraction, and then the factoring algorithm).

      • Grover’s is for database and collision search. I’m looking forward to quantum algorithms in Python!

      • Does it mean that you have your own factoring algorithm that works better than Shor’s one and that you already executed it on real hardware?

      • Hi Vikram, no that algorithm isn’t a good factoring algorithm (for several reasons, including it requires exponential precision on your ability to represent numbers in hardware). Our factoring algorithm is quite different.

  8. Pingback: Resum del Gadget del Divendres #117 @ IP Reader’s Diggest

  9. Pingback: 商用量子计算机是真的么? | Yin Zhangqi’s Blog

  10. Pingback: Waar blijft de quantumcomputer? - KIJK.nl

  11. iF=adapt(+,-,/,*)Code- – - – Code ; Programs that are capable of adapting, reading and writing. In other words the top 100 websites, top 10 MUI’S, TOP 10 GUI’S, and break them DOWN INTO THE SIMPLEST xDecimal. THEN PLACE THEM THROUGH AN INFINATE LOOP, THAT WILL ADAPT AND COMPUTE. WHICH WILL CREATE DATA WHICH WILLL B FILTERED BACK INTO THE SYSTEM AGAIN. I HAVE PAPERS TO EXPLAIN THE CONCEPT OF A PROGRAM CREATING A PROGRAM USING HUMAN CHARACTERISTICS.

  12. The present blog post is all meta content, it seems to be an advertisement for an informative document. Where is the informative document? Pardon my ignorance, I suspect this is just a web design fail.

  13. Pingback: Commercial Quantum Computer? « Tomi Engdahl’s ePanorama blog

  14. Pingback: Quantum computer Hoopla and I | elcidharth

  15. Good day! This is my first comment here so I just wanted to give a quick shout out and tell you I genuinely enjoy reading your articles.
    Can you suggest any other blogs/websites/forums that go over the same
    subjects? Thanks!

  16. Pingback: Of Hindutva, Conventional v Quantum | elcidharth

  17. My partner and I stumbled over here by a different web page and thought I might
    as well check things out. I like what I see so now i’m following you. Look forward to checking out your web page again. Very much appreciated information!

  18. Pingback: 走近量子纠缠(17)——量子计算机 | 占星日报-每日星座运

  19. Pingback: 科学 – 六号教父 » 走近量子纠缠(17)——量子计算机

  20. Pingback: वसुधैव कुटुंबकम

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s