Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Quantum logic gate
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
=== Unitary inversion of gates === [[File:The_unitary_inverse_of_hadamard-cnot.png|thumb|right|upright=0.6|'''Example:''' The unitary inverse of the Hadamard-CNOT product. The three gates {{nowrap|<math>H</math>,}} <math>I</math> and <math>\mathrm{CNOT}</math> are their own unitary inverses.]]Because all quantum logical gates are [[reversible computing|reversible]], any composition of multiple gates is also reversible. All products and tensor products (i.e. [[#Serially wired gates|series]] and [[#Parallel gates|parallel]] combinations) of [[unitary matrix|unitary matrices]] are also unitary matrices. This means that it is possible to construct an inverse of all algorithms and functions, as long as they contain only gates. Initialization, measurement, [[Input/Output|I/O]] and spontaneous [[quantum decoherence|decoherence]] are [[Side effect (computer science)|side effects]] in quantum computers. Gates however are [[pure function|purely functional]] and [[bijective]]. If <math>U</math> is a [[unitary matrix]], then <math>U^\dagger U = UU^\dagger = I</math> and {{nowrap|<math>U^\dagger = U^{-1}</math>.}} The dagger (<math>\dagger</math>) denotes the [[conjugate transpose]]. It is also called the [[Hermitian adjoint]]. If a function <math>F</math> is a product of <math>m</math> gates, {{nowrap|<math>F = A_1 \cdot A_2 \cdot \dots \cdot A_m</math>,}} the unitary inverse of the function <math>F^\dagger</math> can be constructed: Because <math>(UV)^\dagger = V^\dagger U^\dagger</math> we have, after repeated application on itself :<math>F^\dagger = \left(\prod_{i=1}^{m} A_i\right)^\dagger = \prod_{i=m}^{1} A^\dagger_{i} = A_m^\dagger \cdot \dots \cdot A_2^\dagger \cdot A_1^\dagger</math> Similarly if the function <math>G</math> consists of two gates <math>A</math> and <math>B</math> in parallel, then <math>G=A\otimes B</math> and {{nowrap|<math>G^\dagger = (A \otimes B)^\dagger = A^\dagger \otimes B^\dagger</math>.}} Gates that are their own unitary inverses are called [[Hermitian matrix|Hermitian]] or [[self-adjoint operator]]s. Some elementary gates such as the [[#Hadamard|Hadamard]] (''H'') and the [[Pauli matrices|Pauli gates]] (''I'', ''X'', ''Y'', ''Z'') are Hermitian operators, while others like the [[#Phase shift|phase shift]] (''S'', ''T'', ''P'', [[List of quantum logic gates#Relative phase gates|CPhase]]) gates generally are not. For example, an algorithm for addition can be used for subtraction, if it is being "run in reverse", as its unitary inverse. The [[Quantum Fourier transform#Unitarity|inverse quantum Fourier transform]] is the unitary inverse. Unitary inverses can also be used for [[uncomputation]]. Programming languages for quantum computers, such as [[Microsoft]]'s [[Q Sharp|Q#]],<ref name="adjoint-controlled-qsharp">[https://docs.microsoft.com/en-us/quantum/user-guide/using-qsharp/operations-functions?view=qsharp-preview#controlled-and-adjoint-operations Operations and Functions (Q# documentation)]</ref> Bernhard Γmer's [[Quantum Computation Language|QCL]],{{r|Oemer|page=61}} and [[IBM]]'s [[Qiskit]],<ref>{{cite web|url=https://docs.quantum.ibm.com/api/qiskit/qiskit.circuit.library.UnitaryGate#adjoint|title=UnitaryGate Β§ UnitaryGate adjoint()|website=docs.quantum.ibm.com}}</ref> contain function inversion as programming concepts.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)