# Algorithms (qiskit.algorithms)¶

It 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 optimizers 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. It ultimately uses Terra for the actual compilation and execution of the quantum circuits created by the algorithm and its components.

# Algorithms¶

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

## Amplitude Amplifiers¶

 AmplificationProblem The amplification problem is the input to amplitude amplification algorithms, like Grover. Grover Grover’s Search algorithm. GroverResult Grover Result.

## Amplitude Estimators¶

 AmplitudeEstimator The Amplitude Estimation interface. AmplitudeEstimatorResult The results object for amplitude estimation algorithms. AmplitudeEstimation The Quantum Phase Estimation-based Amplitude Estimation algorithm. AmplitudeEstimationResult The AmplitudeEstimation result object. EstimationProblem The estimation problem is the input to amplitude estimation algorithm. FasterAmplitudeEstimation The Faster Amplitude Estimation algorithm. FasterAmplitudeEstimationResult The result object for the Faster Amplitude Estimation algorithm. IterativeAmplitudeEstimation The Iterative Amplitude Estimation algorithm. IterativeAmplitudeEstimationResult The IterativeAmplitudeEstimation result object. MaximumLikelihoodAmplitudeEstimation The Maximum Likelihood Amplitude Estimation algorithm. MaximumLikelihoodAmplitudeEstimationResult The MaximumLikelihoodAmplitudeEstimation result object.

## 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.

 Eigensolver The Eigensolver Interface. EigensolverResult Eigensolver Result.
 NumPyEigensolver The NumPy Eigensolver algorithm.

## Factorizers¶

Algorithms to find factors of a number.

 Shor Shor’s factoring algorithm. ShorResult Shor Result.

## Linear Solvers¶

Algorithms to solve linear systems of equations.

 HHL Systems of linear equations arise naturally in many real-life applications in a wide range of areas, such as in the solution of Partial Differential Equations, the calibration of financial models, fluid simulation or numerical field calculation. NumPyLinearSolver The Numpy Linear Solver algorithm (classical). LinearSolver An abstract class for linear system solvers in Qiskit. LinearSolverResult A base class for linear systems results.

## Minimum Eigensolvers¶

Algorithms that can find the minimum eigenvalue of an operator.

 MinimumEigensolver The Minimum Eigensolver Interface. MinimumEigensolverResult Minimum Eigensolver Result.
 NumPyMinimumEigensolver The Numpy Minimum Eigensolver algorithm. QAOA The Quantum Approximate Optimization Algorithm. VQE The Variational Quantum Eigensolver algorithm.

## Optimizers¶

Classical optimizers for use by quantum variational algorithms.

## Phase Estimators¶

Algorithms that estimate the phases of eigenstates of a unitary.

 HamiltonianPhaseEstimation Run the Quantum Phase Estimation algorithm to find the eigenvalues of a Hermitian operator. HamiltonianPhaseEstimationResult Store and manipulate results from running HamiltonianPhaseEstimation. PhaseEstimationScale Set and use a bound on eigenvalues of a Hermitian operator in order to ensure phases are in the desired range and to convert measured phases into eigenvectors. PhaseEstimation Run the Quantum Phase Estimation (QPE) algorithm. PhaseEstimationResult Store and manipulate results from running PhaseEstimation.

# Exceptions¶

 AlgorithmError(*message) For Algorithm specific errors.