Swap test

The swap test is a procedure in quantum computation that is used to check how much two quantum states differ, appearing first in a paper of Harry Buhrman, Richard Cleve, John Watrous, and Ronald de Wolf.[1] It appears commonly in quantum machine learning, and is a circuit used for proofs-of-concept in implementations of quantum computers.[2][3]
Formally, the swap test takes two input states and and outputs a Bernoulli random variable that is 1 with probability . This allows one to, for example, estimate the squared inner product between the two states, , to additive error using copies of the state simply by taking the average over many runs of the swap test. This squared inner product roughly measures "overlap" between the two states, and can be used in linear-algebraic applications, including clustering quantum states.[4]
Explanation of the circuit
Consider two states: and . The state of the system at the beginning of the protocol is . After the Hadamard gate, the state of the system is . The controlled SWAP gate transforms the state into . The second Hadamard gate results in
The measurement gate on the first qubit ensures that it's 0 with a probability of
when measured. If and are orthogonal , then the probability that 0 is measured is . If the states are equal , then the probability that 0 is measured is 1.[1]
Pseudocode
Below is the pseudocode for implementing the Swap test:
Algorithm Swap Test
- Inputs Two quantum states and , stored in two separate qubit registers, each containing qubits (We denote the -th qubit in the two registers, respectively, by and )
An ancilla qubit, initialized as (We denote the ancilla qubit by )
Some , representing the number of times the algorithm will be executed
- Output Compute
- For ranging from to :
- Apply a Hadamard gate to the ancilla qubit
- For ranging from to (iterating over each pair of qubits in the two registers):
- Apply ( is the control qubit, while and are the targets)
- Apply a Hadamard gate to the ancilla qubit
- Measure the ancilla qubit in the basis and record the result of the measurement (we assume that measurements yield either or , and we denote the outcome of the measurement by )
- Compute .
- Return (Note that , with equality occurring as , as in this limit, , so the result follows from above.)
- "←" denotes assignment. For instance, "largest ← item" means that the value of largest changes to the value of item.
- "return" terminates the algorithm and outputs the following value.
References
- ^ a b
Harry Buhrman, Richard Cleve, John Watrous, Ronald de Wolf (2001). "Quantum Fingerprinting". Physical Review Letters. 87 (16). arXiv:quant-ph/0102001. doi:10.1103/PhysRevLett.87.167902.
{{cite journal}}
: CS1 maint: multiple names: authors list (link) - ^ Schuld, Maria; Sinayskiy, Ilya; Petruccione, Francesco (2015-04-03). "An introduction to quantum machine learning". Contemporary Physics. 56 (2): 172–185. doi:10.1080/00107514.2014.964942. ISSN 0010-7514.
- ^ Kang Min-Sung, Heo Jino, Choi Seong-Gon, Moon Sung, Han Sang-Wook (2019). "Implementation of SWAP test for two unknown states in photons via cross-Kerr nonlinearities under decoherence effect". Scientific Reports. 9 (1). doi:10.1038/s41598-019-42662-4.
{{cite journal}}
: CS1 maint: multiple names: authors list (link) - ^ Wiebe, Nathan; Kapoor, Anish; Svore, Krysta M. (1 March 2015). "Quantum Algorithms for Nearest-Neighbor Methods for Supervised and Unsupervised Learning". Quantum Information and Computation. 15 (3–4). Rinton Press, Incorporated: 316–356.