Skip to main contentIBM Quantum Documentation
You are viewing the API reference for an old version of Qiskit SDK. Switch to latest version

Algorithms

qiskit.aqua.algorithms

Aqua contains a collection of quantum algorithms, for use with quantum computers, to carry out research and investigate how to solve problems in different domains on near-term quantum devices with short depth circuits.

Algorithms configuration includes the use of components which were designed to be swappable sub-parts of an algorithm. Any component and may be exchanged for a different implementation of the same component type in order to potentially alter the behavior and outcome of the algorithm.

Quantum algorithms are run via a QuantumInstance which must be set with the desired backend where the algorithm’s circuits will be executed and be configured with a number of compile and runtime parameters controlling circuit compilation and execution. Aqua ultimately uses Terra(opens in a new tab) for the actual compilation and execution of the quantum circuits created by the algorithm and its components.

Algorithms Base Class

QuantumAlgorithmBase class for Quantum Algorithms.
ClassicalAlgorithmBase class for Classical Algorithms.

Algorithms

Aqua contains a variety of quantum algorithms and these have been grouped by logical function such as minimum eigensolvers and amplitude amplifiers.

Additionally Aqua includes some classical algorithms. While these algorithms do not use a quantum device or simulator, and rely on purely classical approaches, they may be useful in the near term to generate reference values while experimenting with, developing and testing quantum algorithms.

The classical algorithms are designed to take the same input data as the quantum algorithms so that behavior, data validity and output can be evaluated and compared to a quantum result.


Amplitude Amplifiers

GroverThe Grover’s Search algorithm.

Amplitude Estimators

Algorithms that estimate a value.

AmplitudeEstimationThe Quantum Phase Estimation-based Amplitude Estimation algorithm.
IterativeAmplitudeEstimationThe Iterative Amplitude Estimation algorithm.
MaximumLikelihoodAmplitudeEstimationThe Maximum Likelihood Amplitude Estimation algorithm.

Classifiers

Algorithms for data classification.

QSVMQuantum SVM algorithm.
VQCThe Variational Quantum Classifier algorithm.
SklearnSVMThe Sklearn SVM algorithm (classical).

Distribution Learners

QGANThe Quantum Generative Adversarial Network algorithm.

Education

Algorithms whose main role is educational. These are provided as Aqua algorithms so they can be run in the same framework but their existence here is principally for educational reasons.

BernsteinVaziraniThe Bernstein-Vazirani algorithm.
DeutschJozsaThe Deutsch-Jozsa algorithm.
EOHThe Quantum EOH (Evolution of Hamiltonian) algorithm.
SimonThe Simon algorithm.

Eigensolvers

Algorithms to find eigenvalues of an operator. For chemistry these can be used to find excited states of a molecule and qiskit.chemistry has some algorithms that leverage chemistry specific knowledge to do this in that application domain.

NumPyEigensolverThe NumPy Eigensolver algorithm.

Factorizers

Algorithms to find factors of a number.

ShorShor’s factoring algorithm.

Linear Solvers

Algorithms to find solutions for linear equations of equations.

HHLThe HHL algorithm.
NumPyLSsolverThe Numpy LinearSystem algorithm (classical).

Minimum Eigensolvers

Algorithms that can find the minimum eigenvalue of an operator.

Note: The ClassicalCPLEX algorithm requires IBM ILOG CPLEX Optimization Studio(opens in a new tab) and its Python API to be installed. See the following for more information:

MinimumEigensolverThe Minimum Eigensolver Interface.
MinimumEigensolverResultMinimum Eigensolver Result.
ClassicalCPLEXThe Classical CPLEX algorithm (classical).
IQPEThe Iterative Quantum Phase Estimation algorithm.
NumPyMinimumEigensolverThe Numpy Minimum Eigensolver algorithm.
QAOAThe Quantum Approximate Optimization Algorithm.
QPEThe Quantum Phase Estimation algorithm.
VQEThe Variational Quantum Eigensolver algorithm.
Was this page helpful?
Report a bug or request content on GitHub.