Qiskit Optimization API Reference

Qiskit’s optimization module (qiskit_optimization)

Qiskit’s optimization module covers the whole range from high-level modeling of optimization problems, with automatic conversion of problems to different required representations, to a suite of easy-to-use quantum optimization algorithms that are ready to run on classical simulators, as well as on real quantum devices via Qiskit.

This module enables easy, efficient modeling of optimization problems using docplex. A uniform interface as well as automatic conversion between different problem representations allows users to solve problems using a large set of algorithms, from variational quantum algorithms, such as the Quantum Approximate Optimization Algorithm (QAOA), to Grover Adaptive Search (GroverOptimizer), leveraging fundamental minimum_eigensolver provided by Qiskit Terra. Furthermore, the modular design of the optimization module allows it to be easily extended and facilitates rapid development and testing of new algorithms. Compatible classical optimizers are also provided for testing, validation, and benchmarking.

Qiskit’s optimization module supports Quadratically Constrained Quadratic Programs – for simplicity we refer to them just as Quadratic Programs – with binary, integer, and continuous variables, as well as equality and inequality constraints. This class of optimization problems has a vast amount of relevant applications, while still being efficiently representable by matrices and vectors. This class covers some very interesting sub-classes, from Convex Continuous Quadratic Programs, which can be solved efficiently by classical optimization algorithms, to Quadratic Unconstrained Binary Optimization (QUBO) problems, which cover many NP-complete, i.e., classically intractable, problems.


Quadratically Constrained Quadratic Program representation.

Representation of a Quadratically Constrained Quadratic Program supporting inequality and equality constraints as well as continuous, binary, and integer variables.


Class for errors returned by Qiskit's optimization module.

In addition to standard Python errors the optimization module will raise this error if circumstances are that it cannot proceed to completion.


Convert a string or number to a floating point number, if possible.

A constant for infinity.



Optimization algorithms (qiskit_optimization.algorithms)


Optimization applications (qiskit_optimization.applications)


Optimization converters (qiskit_optimization.converters)


Optimization problems (qiskit_optimization.problems)


Qiskit Optimization Runtime (qiskit_optimization.runtime)


Quadratic program translators (qiskit_optimization.translators)