D-Wave’s Ocean software development kit (SDK) is a suite of open-source Python tools for solving hard problems with quantum computers.
For quantum computing, as for classical, solving a problem requires that it be formulated in a way the computer and its software understand. Ocean tools help you take a problem for a particular application (social network analysis, for instance, which is an example of an optimization problem) and transform it to a form that is solvable on a quantum computer. This form, called the binary quadratic model (BQM), allows the quantum computer to minimize a quadratic polynomial over a set of binary variables.
The layers shown in the figure above are as follows:
- Application: Original problem in its context (the “problem space”) including application data and a clearly defined goal. For example, a circuit-fault diagnosis application in chip manufacturing requires the identification of the minimum set of failed logic gates in a circuit.
- Mapping methods: Tools that translate the application goal and data into a problem form suitable for quantum computing. They also receive solution samples and translate them back into solutions for the application layer. For example, dwave_networkx helps map structural imbalance analysis into a BQM.
- Uniform Sampler API: Abstraction layer that represents the problem in a form that can access the selected sampler.
- Samplers: Tools that receive a problem in the form of a BQM and return solution samples. Ocean implements several samplers that use the D-Wave QPU as well as classical compute resources. You can use Ocean tools to customize a D-Wave sampler, create your own, or use existing classical ones.
- Compute resources: The processing hardware on which the problem is solved. This might be a D-Wave QPU but it may also be the CPU of your laptop computer.
The Ocean SDK is hosted on the D-Wave GitHub repository:
Documentation for the D-Wave Ocean software can be found here: Ocean Tools Documentation