Workflow for Developing Quantum Applications

This chapter provides some insight into the process used by D-Wave and other companies to develop successful quantum applications.

Application development typically advances through the following steps.

  1. Problem Discovery identifies problems in your company’s processes that can benefit from quantum technology.

  2. Problem Description describes a problem in a way that enables developers to model it.

  3. Problem Formulation develops mathematical models of a problem.

  4. Software Implementation implements a mathematical model in code.

  5. Test and Iterate iteratively evaluates and improves the application.

Problem Discovery

The application-development process may start with your company looking to benefit from quantum technology to improve existing business applications, develop new applications, or add new features. How do you identify good candidate problems for quantum-classical hybrid solutions? The following steps can help.

Examples of Problem Discovery

Resources for Problem Discovery

  • The Stating the Problem chapter provides examples of good problems in many industries and verticals, as well as links to further examples.

Problem Description

For any selected problem, the first step in attempting to develop a new solution or improve an existing solution is a clear and comprehensive description.

A good description specifies the following elements3 of the problem:

3

The following subsections provide simple examples that should make the abstract definitions given here concrete even to users with no prior optimization experience.

  • Inputs: the data needed to represent an instance of the problem.

  • Outputs: the preferred presentation of solutions to the problem.

  • Parameters: dependencies that configure problem instances and set preferences on solutions.

  • Decision Variables: the constituents of the problem to which the process attempts to assign good values.4

  • Objectives to be Optimized: the goals the process attempts to accomplish by minimizing or maximizing certain aspects of the problem to the extent possible.

  • Constraints: aspects of the problem and/or process with limited or no flexibility, which must be satisfied for solutions to be considered feasible.5

4

This initial set of variables and their definitions often develops and changes during the Problem Formulation step.

5

Constraints are often categorized as either “hard” or “soft”. Any hard constraint must be satisfied for a solution of the model to qualify as feasible. Soft constraints may be violated to achieve an overall good solution.

The following steps can help guide you.

  1. Attempt to acquire at least one complete instance of the problem, including input data, runtime, solutions, tuning parameters, etc.

Examples of Problem Description

Resources for Problem Description

  • Domain-driven design

Problem Formulation

A comprehensive problem description is a prerequisite for developing your initial model.9

The standard approach to problem formulation is to translate the problem description generated in the previous section into mathematical equations, specifically an objective subject to constraints.

Doing the Math

Although users with high-school mathematics can understand these models, depending on your previous experience this step may be challenging. D-Wave’s training course can reduce learning time but if developing mathematical models is outside your company’s expertise, it can make solid business sense to have D-Wave’s Professional Services organization handle this step for you.

Some developers find it best to directly represent the equations in code rather than in writing. You can try and see what works best for you.

The model you develop in this stage typically has the following elements:

  • Variables: can be binary10, integer, and real

  • Objective: the quantity being optimized (formulated as a quadratic/linear model to be minimized)

  • Constraints: linear and quadratic relationships between variables that must or should11 be satisfied

Such a model is called a constrained quadratic model or sometimes a binary quadratic model.

Performance is sensitive to the model. As you develop your model consider various formulations: developing a few different models can be beneficial in that some might significantly outperform others.

9

Typically there are additional prerequisites such as managerial approvals, budgets, possibly reviews in your company’s legal and human-resources departments, input from your IT department, etc. For some applications, where change is disruptive, it can be helpful to discuss the process with someone in your company that has experience in project and change management. Updating established processes can have wide-ranging implications; understanding these early on enables you to initiate any needed administrative work in parallel to your application development.

10

Including “one hot” discrete variables.

11

Constraints are often categorized as either “hard” or “soft”. Any hard constraint must be satisfied for a solution of the model to qualify as feasible. Soft constraints may be violated to achieve an overall good solution.

Examples of Problem Formulation

Resources for Problem Formulation

  • The Getting Started with D-Wave Solvers guide walks you through some basic examples of mathematical formulation, using very simple objectives and constraints, which can be a gentle introduction to the concepts. Likewise, the Ocean documentation documentation provides a series of code examples, for different levels of experience, which include such formulations.

  • The Stating the Problem chapter of this guide provides references to examples categorized by field and the Reformulating a Problem chapter describes various techniques to mathematically formulate parts of your problem.

  • D-Wave’s corporate website provides links to user applications.

  • Building a Quantum Hybrid Application is a video recording of an August 2023 D-Wave webinar.

  • There is a vast literature on operational optimization.

  • D-Wave’s Learn: D-Wave’s online, instructor-supported training.

  • D-Wave Launch: D-Wave’s Professional Services organization, which works with customers to accelerate their progress from getting started through production implementation.

Software Implementation

Your application will likely have multiple parts, including the following:

  • Core optimization code

    This is the part that implements your formulation of the problem and submits it to a D-Wave solver for solution. It is recommended that you implement the model representing your problem, formulated as described in the previous section, and manage the submission using the Ocean SDK.

  • Handling inputs and presenting results

    Your application may have rigidly defined inputs and expected outputs or, as part of your work, you may have freedom to define input formats and how to present solutions. Close collaboration with the problem owner and intended users of the application on these parts can prevent mistaken presumptions that might risk the project’s ultimate success.

  • Integration with other applications

    Try to identify any needed integrations early: some might have long procurement or development schedules.

It is recommended that you manage and schedule your application development over multiple iterations of learning and improvement, as described in the next section.

Test and Iterate

Getting it Right

Many users, even those experienced in operations research, find it challenging to finesse a working model into a performant one. If your results fall short, especially on your first attempt to develop a quantum application, professional help might be key to your project’s success.

A useful approach to implementing your formulated problem as a software application includes the following steps of iterative development:

Resources for Test Iterations

  • Model Validation and Scaling tutorial video from D-Wave’s Qubits 2023 conference.

  • The Ocean SDK documentation’s Scaling guide.

  • D-Wave provides Launch programs to accelerate enterprises’ path from problem discovery through production implementation.

  • Leap hosts a community where developers help each other.