Content deleted Content added
m +{{Algorithm-stub}} using StubSorter |
No edit summary |
||
(26 intermediate revisions by 12 users not shown) | |||
Line 1:
{{Short description|Quantum algorithm framework}}
'''Quantum singular value transformation''' is a framework for designing [[
==High-level description==
The basic primitive of quantum singular value transformation is the block-encoding. A [[quantum circuit]] is a block-encoding of a matrix ''A'' if it implements a [[unitary matrix]] ''U'' such that ''U'' contains ''A'' in a specified sub-matrix. For example, if <math>(\langle 0 | \otimes I) U (|0\rangle |\phi\rangle) = A|\phi\rangle</math>, then ''U'' is a block-encoding of ''A''.
The fundamental algorithm of QSVT is one that converts a block-encoding of ''A'' to a block-encoding of <math>p(A, A^\dagger)</math>, where ''p'' is a polynomial of degree ''d'' and <math>A^\dagger</math> denotes the [[conjugate transpose]], with only ''d'' applications of the circuit and one ancilla qubit. This can be done for a large class of polynomials ''p'' which correspond to applying a polynomial to the [[singular value]]s of ''A'', giving a "singular value transformation".
A variant of this algorithm can also be performed when ''A'' is [[Hermitian matrix|Hermitian]], corresponding to an "eigenvalue transformation". That is, given a block-encoding of ''A'' with [[eigendecomposition|eigendecomposition of a matrix]] <math>A = \sum \lambda_i u_iu_i^\dagger</math>, one can get a block-encoding for <math>\sum p(\lambda_i) u_iu_i^\dagger</math>, provided ''p'' is bounded.<ref name=LC2016 />
==Algorithm==
: ''Input'': A matrix <math>A</math> whose [[
: ''Input'': A polynomial <math>P</math>
: ''Output'': A unitary where <math>P</math> has been applied to the singular values of <math>A</math>: <math>\begin{bmatrix}WP(\Sigma) V^{\dagger} & . \\. & . \end{bmatrix}</math>
# Prepare a unitary <math>U</math> that encodes <math>A</math> on the top left side of <math>U</math>, that is <math>U = \begin{bmatrix}A & . \\. & . \end{bmatrix}</math>
# Initialize an <math>n</math> qubit state <math>|0\rangle^{\otimes n}</math>
# If the polynomial is odd,
# If the polynomial is even apply <math> \prod_{k=1}^{\frac{d}{2}} \Pi_{\phi_{2k}-1}U^{\dagger}\tilde{\Pi}_{\phi_{2k}} U </math> to <math>|0\rangle^{\otimes n}</math>
<ref name=grand_unification2021 />
== See also ==▼
* [[Quantum signal processing]]▼
== References==
{{reflist}}
▲== See also ==
* [[Quantum algorithm]]
* [[HHL algorithm]]
* [[Quantum machine learning]]
== External links ==
* [https://short.classiq.io/qsvt_inversion Implementation of the QSVT algorithm for matrix inversion with Classiq]
[[Category:Quantum computing]]
[[Category:Quantum algorithms]]
[[Category:Signal processing]]
{{Algorithm-stub}}
|