|
11 | 11 | # that they have been altered from the originals.
|
12 | 12 |
|
13 | 13 | """
|
14 |
| -===================================== |
15 |
| -Algorithms (:mod:`qiskit_algorithms`) |
16 |
| -===================================== |
17 |
| -It contains a collection of quantum algorithms, for use with quantum computers, to |
18 |
| -carry out research and investigate how to solve problems in different domains on |
19 |
| -near-term quantum devices with short depth circuits. |
20 |
| -
|
21 |
| -Algorithms configuration includes the use of :mod:`~qiskit_algorithms.optimizers` which |
22 |
| -were designed to be swappable sub-parts of an algorithm. Any component and may be exchanged for |
23 |
| -a different implementation of the same component type in order to potentially alter the behavior |
24 |
| -and outcome of the algorithm. |
| 14 | +============================================ |
| 15 | +Qiskit Algorithms (:mod:`qiskit_algorithms`) |
| 16 | +============================================ |
| 17 | +Qiskit Algorithms is a library of quantum algorithms for quantum computing with |
| 18 | +`Qiskit <https://qiskit.org>`_. |
| 19 | +These algorithms can be used to carry out research and investigate how to solve |
| 20 | +problems in different domains on simulators and near-term real quantum devices |
| 21 | +using shallow circuits. |
| 22 | +
|
| 23 | +The library includes some algorithms, for example the :class:`.NumPyMinimumEigensolver`, which take |
| 24 | +the same input as their quantum counterpart but solve the problem classically. This has utility in |
| 25 | +the near-term, where problems are still tractable classically, to validate and/or act as a reference. |
| 26 | +There are also classical :mod:`.optimizers` for use with variational algorithms such as :class:`.VQE`. |
| 27 | +
|
| 28 | +This package also provides common building blocks for algorithms, such quantum circuit |
| 29 | +gradients (:mod:`.gradients`) and fidelities of quantum states (:mod:`.state_fidelities`). |
| 30 | +These elements are frequently used in a variety of applications, such as variational optimization, |
| 31 | +time evolution and quantum machine learning. |
| 32 | +
|
| 33 | +The quantum algorithms here all use |
| 34 | +`Primitives <https://qiskit.org/documentation/apidoc/primitives.html>`__ |
| 35 | +to execute quantum circuits. This can be an |
| 36 | +``Estimator``, which computes expectation values, or a ``Sampler`` which computes |
| 37 | +probability distributions. Refer to the specific algorithm for more information in this regard. |
25 | 38 |
|
26 | 39 | .. currentmodule:: qiskit_algorithms
|
27 | 40 |
|
28 | 41 | Algorithms
|
29 | 42 | ==========
|
30 | 43 |
|
31 |
| -It contains a variety of quantum algorithms and these have been grouped by logical function such |
32 |
| -as minimum eigensolvers and amplitude amplifiers. These algorithms are based on the Qiskit Primitives. |
33 |
| -
|
| 44 | +The algorithms now presented are grouped by logical function, such |
| 45 | +as minimum eigensolvers, amplitude amplifiers, time evolvers etc. Within each group, the |
| 46 | +algorithms conform to an interface that allows them to be used interchangeably |
| 47 | +by different applications. E.g. a Qiskit Nature application may take a minimum |
| 48 | +eigensolver to solve a ground state problem, and require it to |
| 49 | +conform to the :class:`.MinimumEigensolver` interface. Any algorithm that conforms to |
| 50 | +the interface, for example :class:`.VQE`, can be used by this application. |
34 | 51 |
|
35 | 52 | Amplitude Amplifiers
|
36 | 53 | --------------------
|
| 54 | +Algorithms based on amplitude amplification. |
37 | 55 |
|
38 | 56 | .. autosummary::
|
39 | 57 | :toctree: ../stubs/
|
|
47 | 65 |
|
48 | 66 | Amplitude Estimators
|
49 | 67 | --------------------
|
| 68 | +Algorithms based on amplitude estimation. |
50 | 69 |
|
51 | 70 | .. autosummary::
|
52 | 71 | :toctree: ../stubs/
|
|
67 | 86 |
|
68 | 87 | Eigensolvers
|
69 | 88 | ------------
|
70 |
| -
|
71 | 89 | Algorithms to find eigenvalues of an operator. For chemistry these can be used to find excited
|
72 | 90 | states of a molecule, and ``qiskit-nature`` has some algorithms that leverage chemistry specific
|
73 | 91 | knowledge to do this in that application domain.
|
74 |
| -These algorithms are based on the Qiskit Primitives. |
75 |
| -
|
76 |
| -.. autosummary:: |
77 |
| - :toctree: ../stubs/ |
78 |
| -
|
79 |
| - eigensolvers |
80 |
| -
|
81 |
| -Time Evolvers |
82 |
| -------------- |
83 |
| -
|
84 |
| -Algorithms to evolve quantum states in time. Both real and imaginary time evolution is possible |
85 |
| -with algorithms that support them. For machine learning, Quantum Imaginary Time Evolution might be |
86 |
| -used to train Quantum Boltzmann Machine Neural Networks for example. |
87 |
| -These algorithms are based on the Qiskit Primitives. |
88 | 92 |
|
89 | 93 | .. autosummary::
|
90 | 94 | :toctree: ../stubs/
|
91 | 95 | :nosignatures:
|
92 | 96 |
|
93 |
| - RealTimeEvolver |
94 |
| - ImaginaryTimeEvolver |
95 |
| - TimeEvolutionResult |
96 |
| - TimeEvolutionProblem |
97 |
| - PVQD |
98 |
| - PVQDResult |
99 |
| - SciPyImaginaryEvolver |
100 |
| - SciPyRealEvolver |
101 |
| - VarQITE |
102 |
| - VarQRTE |
103 |
| -
|
104 |
| -Variational Quantum Time Evolution |
105 |
| -++++++++++++++++++++++++++++++++++ |
106 |
| -
|
107 |
| -Classes used by variational quantum time evolution algorithms - :class:`.VarQITE` and |
108 |
| -:class:`.VarQRTE`. |
109 |
| -
|
110 |
| -.. autosummary:: |
111 |
| - :toctree: ../stubs/ |
112 |
| -
|
113 |
| - time_evolvers.variational |
| 97 | + Eigensolver |
| 98 | + EigensolverResult |
| 99 | + NumPyEigensolver |
| 100 | + NumPyEigensolverResult |
| 101 | + VQD |
| 102 | + VQDResult |
114 | 103 |
|
115 | 104 |
|
116 |
| -Trotterization-based Quantum Real Time Evolution |
117 |
| -++++++++++++++++++++++++++++++++++++++++++++++++ |
118 |
| -
|
119 |
| -Package for primitives-enabled Trotterization-based quantum time evolution |
120 |
| -algorithm - :class:`~.time_evolvers.TrotterQRTE`. |
| 105 | +Gradients |
| 106 | +--------- |
| 107 | +Algorithms to calculate the gradient of a quantum circuit. |
121 | 108 |
|
122 | 109 | .. autosummary::
|
123 |
| - :toctree: ../stubs/ |
| 110 | + :toctree: |
124 | 111 |
|
125 |
| - time_evolvers.trotterization |
| 112 | + gradients |
126 | 113 |
|
127 | 114 |
|
128 |
| -Gradients |
129 |
| ----------- |
| 115 | +Minimum Eigensolvers |
| 116 | +-------------------- |
| 117 | +Algorithms to find the minimum eigenvalue of an operator. |
130 | 118 |
|
131 |
| -Algorithms to calculate the gradient of a quantum circuit. These algorithms are based |
132 |
| -on the Qiskit Primitives. |
| 119 | +This set of these algorithms take an ``Estimator`` primitive and can |
| 120 | +solve for a general Hamiltonian. |
133 | 121 |
|
134 | 122 | .. autosummary::
|
135 | 123 | :toctree: ../stubs/
|
| 124 | + :nosignatures: |
136 | 125 |
|
137 |
| - gradients |
138 |
| -
|
139 |
| -
|
140 |
| -Minimum Eigensolvers |
141 |
| ---------------------- |
| 126 | + MinimumEigensolver |
| 127 | + MinimumEigensolverResult |
| 128 | + NumPyMinimumEigensolver |
| 129 | + NumPyMinimumEigensolverResult |
| 130 | + VQE |
| 131 | + VQEResult |
| 132 | + AdaptVQE |
| 133 | + AdaptVQEResult |
142 | 134 |
|
143 |
| -Algorithms that can find the minimum eigenvalue of an operator. These algorithms are |
144 |
| -based on the Qiskit Primitives. |
| 135 | +This set of algorithms take a ``Sampler`` primitive and can only |
| 136 | +solve for a diagonal Hamiltonian, such as an Ising Hamiltonian of an optimization problem. |
145 | 137 |
|
146 | 138 | .. autosummary::
|
147 | 139 | :toctree: ../stubs/
|
| 140 | + :nosignatures: |
148 | 141 |
|
149 |
| - minimum_eigensolvers |
| 142 | + SamplingMinimumEigensolver |
| 143 | + SamplingMinimumEigensolverResult |
| 144 | + SamplingVQE |
| 145 | + SamplingVQEResult |
| 146 | + QAOA |
150 | 147 |
|
151 | 148 |
|
152 | 149 | Optimizers
|
153 | 150 | ----------
|
154 |
| -
|
155 |
| -Classical optimizers for use by quantum variational algorithms. These algorithms |
156 |
| -are based on the Qiskit Primitives. |
| 151 | +Classical optimizers designed for use by quantum variational algorithms. |
157 | 152 |
|
158 | 153 | .. autosummary::
|
159 |
| - :toctree: ../stubs/ |
| 154 | + :toctree: |
160 | 155 |
|
161 | 156 | optimizers
|
162 | 157 |
|
163 | 158 |
|
164 | 159 | Phase Estimators
|
165 | 160 | ----------------
|
166 |
| -
|
167 |
| -Algorithms that estimate the phases of eigenstates of a unitary. These algorithms |
168 |
| -are based on the Qiskit Primitives. |
| 161 | +Algorithms that estimate the phases of eigenstates of a unitary. |
169 | 162 |
|
170 | 163 | .. autosummary::
|
171 | 164 | :toctree: ../stubs/
|
|
181 | 174 |
|
182 | 175 | State Fidelities
|
183 | 176 | ----------------
|
| 177 | +Algorithms that compute the fidelity of pairs of quantum states. |
184 | 178 |
|
185 |
| -Algorithms that compute the fidelity of pairs of quantum states. These algorithms |
186 |
| -are based on the Qiskit Primitives. |
| 179 | +.. autosummary:: |
| 180 | + :toctree: |
| 181 | +
|
| 182 | + state_fidelities |
| 183 | +
|
| 184 | +
|
| 185 | +Time Evolvers |
| 186 | +------------- |
| 187 | +Algorithms to evolve quantum states in time. Both real and imaginary time evolution is possible |
| 188 | +with algorithms that support them. For machine learning, Quantum Imaginary Time Evolution might be |
| 189 | +used to train Quantum Boltzmann Machine Neural Networks for example. |
187 | 190 |
|
188 | 191 | .. autosummary::
|
189 | 192 | :toctree: ../stubs/
|
| 193 | + :nosignatures: |
190 | 194 |
|
191 |
| - state_fidelities |
| 195 | + RealTimeEvolver |
| 196 | + ImaginaryTimeEvolver |
| 197 | + TimeEvolutionResult |
| 198 | + TimeEvolutionProblem |
| 199 | + PVQD |
| 200 | + PVQDResult |
| 201 | + SciPyImaginaryEvolver |
| 202 | + SciPyRealEvolver |
| 203 | + VarQITE |
| 204 | + VarQRTE |
| 205 | +
|
| 206 | +Variational Quantum Time Evolution |
| 207 | +++++++++++++++++++++++++++++++++++ |
| 208 | +Classes used by variational quantum time evolution algorithms - |
| 209 | +:class:`.VarQITE` and :class:`.VarQRTE`. |
| 210 | +
|
| 211 | +.. autosummary:: |
| 212 | + :toctree: |
| 213 | +
|
| 214 | + time_evolvers.variational |
| 215 | +
|
| 216 | +
|
| 217 | +Trotterization-based Quantum Real Time Evolution |
| 218 | +++++++++++++++++++++++++++++++++++++++++++++++++ |
| 219 | +Trotterization-based quantum time evolution algorithms - |
| 220 | +:class:`~.time_evolvers.trotterization.TrotterQRTE`. |
| 221 | +
|
| 222 | +.. autosummary:: |
| 223 | + :toctree: |
| 224 | +
|
| 225 | + time_evolvers.trotterization |
| 226 | +
|
| 227 | +
|
| 228 | +Miscellaneous |
| 229 | +============= |
| 230 | +Various classes used by qiskit-algorithms that are part of and exposed |
| 231 | +by the public API. |
192 | 232 |
|
193 | 233 |
|
194 | 234 | Exceptions
|
195 | 235 | ----------
|
196 | 236 |
|
197 | 237 | .. autosummary::
|
198 |
| - :toctree: ../stubs/ |
| 238 | + :toctree: |
| 239 | + :nosignatures: |
199 | 240 |
|
200 | 241 | AlgorithmError
|
201 | 242 |
|
|
207 | 248 |
|
208 | 249 | .. autosummary::
|
209 | 250 | :toctree: ../stubs/
|
| 251 | + :nosignatures: |
210 | 252 |
|
211 | 253 | AlgorithmJob
|
212 | 254 |
|
|
0 commit comments