주 콘텐츠로 건너뛰기

위상 추정 절차

다음으로, 위상 추정 문제를 푸는 양자 알고리즘인 위상 추정 절차에 대해 살펴보겠습니다.

먼저 낮은 정밀도의 워밍업으로 시작하여 이 방법의 기본 직관을 설명합니다. 그런 다음 위상 추정 절차에 사용되는 중요한 양자 연산인 양자 푸리에 변환과 그 양자 Circuit 구현에 대해 다룰 것입니다. 양자 푸리에 변환을 이해한 뒤에는 위상 추정 절차를 완전한 일반성으로 기술하고 그 성능을 분석합니다.

워밍업: 낮은 정밀도로 위상 근사하기​

낮은 정밀도의 위상 추정 절차 예시를 몇 가지 살펴보는 것으로 시작하겠습니다. 이를 통해 나중에 다룰 일반적인 절차의 직관을 이해할 수 있습니다.

위상 킥백 활용하기​

위상 추정 문제에 대한 간단한 접근법 중 하나는 위상 킥백 현상을 기반으로 하며, 이를 통해 우리가 구하고자 하는 값 θ\theta에 관한 정보를 얻을 수 있습니다. 이 방법은 본질적으로 나중에 다룰 일반 위상 추정 절차의 단일 qubit 버전에 해당합니다.

위상 추정 문제의 입력 중 일부로, 연산 UU에 대한 유니터리 양자 Circuit이 주어집니다. 이 Circuit의 설명을 이용하면 제어(Controlled)-UU 연산에 대한 Circuit을 만들 수 있습니다. 아래 그림에서 왼쪽은 양자 Gate로 본 연산 UU이고, 오른쪽은 Controlled-UU 연산입니다.

유니터리 연산의 비제어 버전과 제어 버전

Controlled-UU 연산에 대한 양자 Circuit을 만들려면 UU의 Circuit에 제어 Qubit을 하나 추가한 뒤,U,U의 Circuit에 있는 모든 Gate를 해당 Gate의 제어 버전으로 교체하면 됩니다. 즉, 새로 추가한 하나의 제어 Qubit이 UU Circuit의 모든 Gate를 실질적으로 제어하게 됩니다. 이를 위해서는 Circuit에 있는 모든 Gate의 제어 버전이 필요하지만, 게이트 집합에 포함되어 있지 않은 경우에도 이러한 제어 연산에 대한 Circuit은 항상 구성할 수 있습니다.

이제 다음 Circuit을 생각해 보겠습니다. 여기서 맨 위 Qubit을 제외한 모든 Qubit의 입력 상태 ∣ψ⟩\vert\psi\rangle는 UU의 고유 벡터인 양자 상태입니다.

위상 추정을 위한 단일 qubit Circuit

이 Circuit의 측정 결과 확률은 고유 벡터 ∣ψ⟩\vert\psi\rangle에 대응하는 UU의 고유값에 따라 달라집니다. 정확히 어떻게 달라지는지 Circuit을 자세히 분석해 봅시다.

위상 추정을 위한 단일 qubit Circuit의 상태 분석

Circuit의 초기 상태는 다음과 같습니다.

∣π0⟩=∣ψ⟩∣0⟩\vert\pi_0\rangle = \vert\psi\rangle \vert 0\rangle

첫 번째 Hadamard Gate가 이 상태를 다음과 같이 변환합니다.

∣π1⟩=∣ψ⟩∣+⟩=12∣ψ⟩∣0⟩+12∣ψ⟩∣1⟩.\vert\pi_1\rangle = \vert\psi\rangle \vert +\rangle = \frac{1}{\sqrt{2}} \vert\psi\rangle \vert 0\rangle + \frac{1}{\sqrt{2}} \vert\psi\rangle \vert 1\rangle.

다음으로 Controlled-UU 연산이 수행되어 다음 상태가 됩니다.

∣π2⟩=12∣ψ⟩∣0⟩+12(U∣ψ⟩)∣1⟩.\vert\pi_2\rangle = \frac{1}{\sqrt{2}} \vert\psi\rangle \vert 0\rangle + \frac{1}{\sqrt{2}} \bigl(U \vert\psi\rangle\bigr) \vert 1\rangle.

∣ψ⟩\vert\psi\rangle가 고유값 λ=e2πiθ\lambda = e^{2\pi i\theta}를 갖는 UU의 고유 벡터라는 가정을 이용하면, 이 상태를 다음과 같이 다시 쓸 수 있습니다.

∣π2⟩=12∣ψ⟩∣0⟩+e2πiθ2∣ψ⟩∣1⟩=∣ψ⟩⊗(12∣0⟩+e2πiθ2∣1⟩)\vert\pi_2\rangle = \frac{1}{\sqrt{2}} \vert\psi\rangle \vert 0\rangle + \frac{e^{2\pi i \theta}}{\sqrt{2}} \vert\psi\rangle \vert 1\rangle = \vert\psi\rangle \otimes \left( \frac{1}{\sqrt{2}} \vert 0\rangle + \frac{e^{2\pi i \theta}}{\sqrt{2}} \vert 1\rangle\right)

여기서 위상 킥백 현상을 관찰할 수 있습니다. 쿼리 Gate를 사용하지 않기 때문에 Deutsch 알고리즘이나 Deutsch-Jozsa 알고리즘에서와는 약간 다르게 나타나지만, 아이디어는 유사합니다.

마지막으로 두 번째 Hadamard Gate가 수행됩니다. 약간의 정리를 거치면 다음 상태를 얻습니다.

∣π3⟩=∣ψ⟩⊗(1+e2πiθ2∣0⟩+1−e2πiθ2∣1⟩)\vert\pi_3\rangle = \vert\psi\rangle \otimes \left( \frac{1+ e^{2\pi i \theta}}{2} \vert 0\rangle + \frac{1 - e^{2\pi i \theta}}{2} \vert 1\rangle\right)

따라서 측정 결과로 00과 11이 나타날 확률은 다음과 같습니다.

p0=∣1+e2πiθ2∣2=cos⁡2(πθ)p1=∣1−e2πiθ2∣2=sin⁡2(πθ).\begin{aligned} p_0 &= \left\vert \frac{1+ e^{2\pi i \theta}}{2} \right\vert^2 = \cos^2(\pi\theta)\\[1mm] p_1 &= \left\vert \frac{1- e^{2\pi i \theta}}{2} \right\vert^2 = \sin^2(\pi\theta). \end{aligned}

아래는 두 가능한 결과 00과 11의 확률을 θ\theta의 함수로 나타낸 그래프입니다.

위상 킥백에서 나온 결과 확률

두 확률의 합은 항상 11입니다.θ=0.\theta = 0일 때 측정 결과는 항상 00이고,θ=1/2,\theta = 1/2일 때는 항상 11임을 알 수 있습니다. 따라서 측정 결과가 θ\theta의 정확한 값을 알려주지는 않지만, 어느 정도의 정보를 제공합니다. 만약 θ=0\theta = 0 또는 θ=1/2\theta = 1/2 중 하나라는 것이 사전에 보장된다면, 오류 없이 어느 쪽인지를 이 Circuit으로 알아낼 수 있습니다.

직관적으로, Circuit의 측정 결과를 θ\theta에 대한 "1비트 정확도" 추정값으로 생각할 수 있습니다. 다시 말해, θ\theta를 이진 표기로 나타내고 1비트로 반올림하면 다음과 같은 수가 됩니다.

0.a={0a=012a=1.0.a = \begin{cases} 0 & a = 0\\ \frac{1}{2} & a = 1. \end{cases}

측정 결과는 비트 aa에 대한 추정값으로 볼 수 있습니다.θ.\theta가 00도 1/21/2도 아닌 경우, 추정이 틀릴 확률이 0이 아닙니다. 하지만 00 또는 1/21/2에 가까워질수록 오류 확률은 점점 작아집니다.

이 절차에서 두 Hadamard Gate가 어떤 역할을 하는지 생각해 보는 것은 자연스럽습니다.

  • 첫 번째 Hadamard Gate는 제어 Qubit을 ∣0⟩\vert 0\rangle과 ∣1⟩\vert 1\rangle의 균일한 중첩 상태로 만들어, 위상 킥백이 ∣0⟩\vert 0\rangle 상태가 아닌 ∣1⟩\vert 1\rangle 상태에 대해 발생하도록 합니다. 이를 통해 측정 결과에 영향을 미치는 상대적인 위상 차이가 생깁니다. 이 과정 없이 위상 킥백이 전역적인 위상을 만들어낸다면, 측정 결과의 확률에 아무런 영향을 주지 못합니다.

  • 두 번째 Hadamard Gate는 간섭 현상을 통해 θ\theta에 관한 정보를 얻을 수 있게 해줍니다. 두 번째 Hadamard Gate 이전에 맨 위 Qubit의 상태는 다음과 같습니다.

    12∣0⟩+e2πiθ2∣1⟩,\frac{1}{\sqrt{2}} \vert 0\rangle + \frac{e^{2\pi i \theta}}{\sqrt{2}} \vert 1\rangle,

    이 상태를 측정하면 00과 11 각각을 확률 1/21/2로 얻게 되어,θ,\theta에 대한 정보를 전혀 얻을 수 없습니다. 그러나 두 번째 Hadamard Gate를 수행하면 θ\theta가 출력 확률에 영향을 미치게 됩니다.

위상 두 배로 만들기​

위의 Circuit은 위상 킥백 현상을 이용해 θ\theta를 1비트 정확도로 근사합니다. 일부 상황에서는 1비트 정확도로 충분할 수 있지만, 소인수분해를 위해서는 훨씬 높은 정확도가 필요합니다. θ\theta에 대해 더 많은 정보를 어떻게 얻을 수 있을지가 자연스러운 의문입니다.

매우 간단한 방법 중 하나는 Circuit에서 Controlled-UU 연산을 두 개의 복사본으로 교체하는 것입니다. 다음 Circuit과 같습니다.

두 배 위상 킥백을 사용하는 단일 비트 위상 추정

Controlled-UU 연산을 두 번 적용하는 것은 Controlled-U2U^2 연산과 동일합니다.∣ψ⟩.\vert\psi\rangle가 고유값 λ=e2πiθ\lambda = e^{2\pi i \theta}를 갖는 UU의 고유 벡터라면, 이 상태는 U2U^2의 고유 벡터이기도 하며, 이 경우 고유값은 λ2=e2πi(2θ)\lambda^2 = e^{2\pi i (2\theta)}입니다.

따라서 이 버전의 Circuit을 실행하면,θ,\theta가 2θ2\theta로 대체된 동일한 계산을 수행하는 것과 같습니다. 아래는 θ\theta가 00에서 11까지 변할 때의 출력 확률을 나타낸 그래프입니다.

두 배 위상 킥백에서 나온 결과 확률

이 방법은 실제로 θ\theta에 대한 추가 정보를 제공할 수 있습니다.θ.\theta의 이진 표현이 다음과 같다면

θ=0.a1a2a3⋯\theta = 0.a_1 a_2 a_3\cdots

θ\theta를 두 배로 하면 소수점이 오른쪽으로 한 자리 이동하는 효과가 있습니다.

2θ=a1.a2a3⋯2\theta = a_1. a_2 a_3\cdots

그리고 단위 원 위에서 이동할 때 θ=1\theta = 1과 θ=0\theta = 0을 동일시하므로, 비트 a1a_1은 확률에 영향을 미치지 않으며,θ,\theta를 2비트로 반올림했을 때 소수점 이하 두 번째 비트에 대한 추정값을 얻게 됩니다. 예를 들어,θ,\theta가 00 또는 1/41/4 중 하나라는 것이 사전에 알려진 경우, 측정 결과를 완전히 신뢰하여 어느 쪽인지 알 수 있습니다.

하지만 이 추정을 원래의 (두 배가 아닌) 위상 킥백 Circuit에서 얻은 정보와 어떻게 결합하여 θ\theta에 대해 가능한 한 정확한 정보를 얻을 수 있는지는 즉시 명확하지 않습니다. 한 걸음 물러서서 어떻게 진행할지 생각해 봅시다.

2-Qubit 위상 추정​

위의 두 가지 방법을 별도로 고려하는 대신, 다음과 같이 하나의 Circuit으로 결합해 봅시다.

2-Qubit 위상 추정의 초기 설정

제어 연산 이후의 Hadamard Gate는 제거되었으며 측정도 아직 없습니다.θ.\theta에 대해 최대한 많은 정보를 얻기 위한 옵션을 고려하면서 Circuit에 추가해 나갈 것입니다.

∣ψ⟩\vert\psi\rangle가 UU의 고유 벡터인 경우 이 Circuit을 실행하면, 아래 Qubit들의 상태는 Circuit 전체에 걸쳐 ∣ψ⟩\vert\psi\rangle로 유지되고, 위상은 위쪽 두 Qubit의 상태로 "킥백"됩니다. 다음 그림을 통해 Circuit을 자세히 분석해 봅시다.

2-Qubit 위상 추정의 상태 분석

상태 ∣π1⟩\vert\pi_1\rangle은 다음과 같이 쓸 수 있습니다.

∣π1⟩=∣ψ⟩⊗12∑a0=01∑a1=01∣a1a0⟩.\vert\pi_1\rangle = \vert \psi\rangle \otimes \frac{1}{2} \sum_{a_0 = 0}^1 \sum_{a_1 = 0}^1 \vert a_1 a_0 \rangle.

첫 번째 Controlled-UU 연산이 수행되면,a0,a_0 (맨 위 qubit)가 11일 때만 고유값 λ=e2πiθ\lambda = e^{2\pi i\theta}가 위상으로 킥백됩니다.a0.a_0가 00일 때는 킥백이 발생하지 않습니다. 따라서 결과 상태를 다음과 같이 표현할 수 있습니다.

∣π2⟩=∣ψ⟩⊗12∑a0=01∑a1=01e2πia0θ∣a1a0⟩.\vert\pi_2\rangle = \vert\psi\rangle \otimes \frac{1}{2} \sum_{a_0=0}^1 \sum_{a_1=0}^1 e^{2 \pi i a_0 \theta} \vert a_1 a_0 \rangle.

두 번째와 세 번째 Controlled-UU Gate도 유사하게 동작하지만,a0,a_0 대신 a1a_1에 대해, 그리고 θ\theta 대신 2θ2\theta로 대체됩니다. 결과 상태는 다음과 같습니다.

∣π3⟩=∣ψ⟩⊗12∑a0=01∑a1=01e2πi(2a1+a0)θ∣a1a0⟩.\vert\pi_3\rangle = \vert\psi\rangle\otimes\frac{1}{2}\sum_{a_0 = 0}^1 \sum_{a_1 = 0}^1 e^{2\pi i (2 a_1 + a_0)\theta} \vert a_1 a_0 \rangle.

이진 문자열 a1a0a_1 a_0를 이진 표기로 정수 x∈{0,1,2,3}x \in \{0,1,2,3\}을 나타내는 것으로 보면, 즉 x=2a1+a0x = 2 a_1 + a_0로 정의하면, 이 상태를 다음과 같이 쓸 수 있습니다.

∣π3⟩=∣ψ⟩⊗12∑x=03e2πixθ∣x⟩\vert\pi_3\rangle = \vert \psi\rangle \otimes \frac{1}{2} \sum_{x = 0}^3 e^{2\pi i x \theta} \vert x \rangle

우리의 목표는 이 상태에서 θ\theta에 관한 정보를 최대한 추출하는 것입니다.

이 시점에서 θ=y4\theta = \frac{y}{4} (y∈{0,1,2,3}y\in\{0,1,2,3\}인 정수)가 보장된 특별한 경우를 고려해 봅시다. 다시 말해, θ∈{0,1/4,1/2,3/4}\theta\in \{0, 1/4, 1/2, 3/4\}이므로, 이 수를 이진 표기로 .00,00, .01,01, .10,10, .1111과 같이 2비트로 정확하게 표현할 수 있습니다. 일반적으로 θ\theta가 이 네 값 중 하나가 아닐 수도 있지만, 이 특별한 경우를 생각해 보면 일반적으로 θ\theta에 관한 정보를 가장 효과적으로 추출하는 방법을 파악하는 데 도움이 됩니다.

먼저 가능한 각 값 y∈{0,1,2,3}y \in \{0, 1, 2, 3\}에 대한 2-Qubit 상태 벡터를 정의합니다.

∣ϕy⟩=12∑x=03e2πix(y4)∣x⟩=12∑x=03e2πixy4∣x⟩\vert \phi_y\rangle = \frac{1}{2} \sum_{x = 0}^3 e^{2\pi i x (\frac{y}{4})} \vert x \rangle = \frac{1}{2} \sum_{x = 0}^3 e^{2\pi i \frac{x y}{4}} \vert x \rangle

지수를 단순화하면 이 벡터들을 다음과 같이 쓸 수 있습니다.

∣ϕ0⟩=12∣0⟩+12∣1⟩+12∣2⟩+12∣3⟩∣ϕ1⟩=12∣0⟩+i2∣1⟩−12∣2⟩−i2∣3⟩∣ϕ2⟩=12∣0⟩−12∣1⟩+12∣2⟩−12∣3⟩∣ϕ3⟩=12∣0⟩−i2∣1⟩−12∣2⟩+i2∣3⟩\begin{aligned} \vert\phi_0\rangle & = \frac{1}{2} \vert 0 \rangle + \frac{1}{2} \vert 1 \rangle + \frac{1}{2} \vert 2 \rangle + \frac{1}{2} \vert 3 \rangle \\[3mm] \vert\phi_1\rangle & = \frac{1}{2} \vert 0 \rangle + \frac{i}{2} \vert 1 \rangle - \frac{1}{2} \vert 2 \rangle - \frac{i}{2} \vert 3 \rangle \\[3mm] \vert\phi_2\rangle & = \frac{1}{2} \vert 0 \rangle - \frac{1}{2} \vert 1 \rangle + \frac{1}{2} \vert 2 \rangle - \frac{1}{2} \vert 3 \rangle \\[3mm] \vert\phi_3\rangle & = \frac{1}{2} \vert 0 \rangle - \frac{i}{2} \vert 1 \rangle - \frac{1}{2} \vert 2 \rangle + \frac{i}{2} \vert 3 \rangle \end{aligned}

이 벡터들은 서로 직교합니다. 즉, 그 중 어떤 두 벡터를 골라 내적을 계산하면 00이 됩니다. 각 벡터는 단위 벡터이기도 하므로,{∣ϕ0⟩,∣ϕ1⟩,∣ϕ2⟩,∣ϕ3⟩},\{\vert\phi_0\rangle, \vert\phi_1\rangle, \vert\phi_2\rangle, \vert\phi_3\rangle\}은 정규직교 기저가 됩니다. 따라서 이 벡터들을 완벽하게 구별하는 측정이 존재함을 바로 알 수 있습니다. 즉, 그 중 하나가 주어지지만 어느 것인지 모르는 경우, 오류 없이 어느 것인지 알아낼 수 있습니다.

양자 Circuit으로 이러한 구별을 수행하려면 먼저 표준 기저 상태를 위 네 상태로 변환하는 유니터리 연산 VV를 정의합니다.

V∣00⟩=∣ϕ0⟩V∣01⟩=∣ϕ1⟩V∣10⟩=∣ϕ2⟩V∣11⟩=∣ϕ3⟩\begin{aligned} V \vert 00 \rangle & = \vert\phi_0\rangle \\ V \vert 01 \rangle & = \vert\phi_1\rangle \\ V \vert 10 \rangle & = \vert\phi_2\rangle \\ V \vert 11 \rangle & = \vert\phi_3\rangle \end{aligned}

VV를 4×44\times 4 행렬로 나타내려면,V,V의 열을 상태 ∣ϕ0⟩,…,∣ϕ3⟩\vert\phi_0\rangle,\ldots,\vert\phi_3\rangle로 설정하면 됩니다.

V=12(11111i−1−i1−11−11−i−1i)V = \frac{1}{2} \begin{pmatrix} 1 & 1 & 1 & 1\\[1mm] 1 & i & -1 & -i\\[1mm] 1 & -1 & 1 & -1\\[1mm] 1 & -i & -1 & i \end{pmatrix}

이것은 특별한 행렬로, 일부 독자들은 이미 접해 보았을 것입니다. 바로 44차원 이산 푸리에 변환과 관련된 행렬입니다. 이 사실에 비추어, 이 행렬을 VV 대신 QFT4\mathrm{QFT}_4라고 부르겠습니다.QFT.\mathrm{QFT}는 *양자 푸리에 변환(Quantum Fourier Transform)*의 약자로, 본질적으로 유니터리 연산으로 본 이산 푸리에 변환입니다. 양자 푸리에 변환에 대해서는 곧 더 자세히, 그리고 더 일반적인 맥락에서 다루겠습니다.

QFT4=12(11111i−1−i1−11−11−i−1i)\mathrm{QFT}_4 = \frac{1}{2} \begin{pmatrix} 1 & 1 & 1 & 1\\[1mm] 1 & i & -1 & -i\\[1mm] 1 & -1 & 1 & -1\\[1mm] 1 & -i & -1 & i \end{pmatrix}

이 연산의 역연산을 수행하면 반대 방향, 즉 상태 ∣ϕ0⟩,…,∣ϕ3⟩\vert\phi_0\rangle,\ldots,\vert\phi_3\rangle을 표준 기저 상태 ∣0⟩,…,∣3⟩\vert 0\rangle,\ldots,\vert 3\rangle으로 변환할 수 있습니다. 이렇게 하면 측정을 통해 θ=y/4\theta = y/4를 설명하는 값 y∈{0,1,2,3}y\in\{0,1,2,3\}을 알 수 있습니다. 아래는 이를 수행하는 양자 Circuit의 다이어그램입니다.

2-Qubit 위상 추정

요약하면,y∈{0,1,2,3},y\in\{0,1,2,3\}에 대해 θ=y/4\theta = y/4인 경우 이 Circuit을 실행하면, 측정 직전 상태는 ∣ψ⟩∣y⟩\vert \psi\rangle \vert y\rangle (2비트 이진 문자열로 인코딩된 yy)가 되므로, 측정을 통해 오류 없이 값 yy를 알 수 있습니다.

이 Circuit은 θ∈{0,1/4,1/2,3/4}\theta \in \{0,1/4,1/2,3/4\}인 특별한 경우에 동기를 두고 있지만,U,U와 ∣ψ⟩\vert \psi\rangle의 임의의 선택, 따라서 원하는 임의의 θ\theta 값에 대해 실행할 수 있습니다. 아래는 임의의 θ\theta 선택에 대해 Circuit이 생성하는 출력 확률의 그래프입니다.

2-Qubit 위상 추정의 결과 확률

이는 앞서 설명한 단일 qubit 방식에 비해 명확한 개선입니다. 완벽하지는 않아서 잘못된 답을 줄 수도 있지만, 답은 θ\theta에 가까운 y/4y/4 값으로 강하게 치우쳐 있습니다. 특히, 가장 가능성 높은 결과는 항상 θ\theta에 가장 가까운 y/4y/4 값에 해당하며 (이전과 마찬가지로 θ=0\theta = 0과 θ=1\theta = 1을 동일시), 그래프를 보면 xx에 대한 이 가장 가까운 값이 항상 약 40%40\%보다 높은 확률로 나타납니다.θ.\theta가 두 값의 정확히 중간, 예를 들어 θ=0.375\theta = 0.375인 경우, 두 개의 동등하게 가까운 yy 값이 동일한 확률로 나타납니다.

다수 Qubit으로의 일반화 준비​

하나가 아닌 두 개의 제어 Qubit을 사용하고 4차원 양자 푸리에 변환의 역연산을 함께 사용함으로써 얻은 개선을 바탕으로, 이를 더욱 확장하는 것이 자연스러운 방향입니다. 즉, 제어 Qubit을 더 추가하는 것입니다. 이렇게 하면 일반적인 위상 추정 절차를 얻을 수 있습니다. 이것이 어떻게 동작하는지 곧 살펴보겠지만, 정확하게 설명하기 위해서는 양자 푸리에 변환을 더 일반적인 맥락에서 다루어야 합니다. 즉, 다른 차원에서 어떻게 정의되는지, 그리고 mm qubit 양자 Circuit으로 어떻게 구현(또는 역연산)할 수 있는지를 살펴볼 필요가 있습니다.

양자 푸리에 변환​

양자 푸리에 변환(Quantum Fourier transform)은 임의의 양의 정수 차원 NN에 대해 정의할 수 있는 유니터리 연산입니다. 이 절에서는 이 연산의 정의와,N=2m,N = 2^m일 때 mm개의 Qubit에 대해 비용 O(m2)O(m^2)의 양자 Circuit으로 구현하는 방법을 살펴봅니다.

양자 푸리에 변환을 기술하는 행렬은 NN차원 벡터에 대한 유사 연산인 *이산 푸리에 변환(discrete Fourier transform)*에서 유도됩니다. 이 연산은 다양한 관점에서 생각할 수 있습니다. 예를 들어, 선형 사상으로서 순수하게 추상적·수학적 관점에서 이산 푸리에 변환을 바라볼 수 있습니다. 또는 계산적 관점에서, NN차원 복소수 벡터(실수부와 허수부를 이진 표기법으로 인코딩한다고 가정합시다)가 주어지고, 이산 푸리에 변환을 적용해 얻은 NN차원 벡터를 계산하는 것이 목표인 관점으로 볼 수도 있습니다. 우리의 초점은 세 번째 방식, 즉 이 변환을 양자 시스템에서 수행할 수 있는 유니터리 연산으로 보는 것입니다.

주어진 입력 벡터에 대해 이산 푸리에 변환을 효율적으로 계산하는 알고리즘으로 *고속 푸리에 변환(fast Fourier transform)*이 있습니다. 신호 처리를 비롯한 다양한 분야에 응용되며, 역사상 가장 중요한 알고리즘 중 하나로 꼽힙니다. NN이 2의 거듭제곱일 때 우리가 공부할 양자 푸리에 변환의 구현은, 고속 푸리에 변환을 가능하게 하는 바로 그 기반 구조에 기초하고 있습니다.

양자 푸리에 변환의 정의​

양자 푸리에 변환을 정의하기 위해, 먼저 각 양의 정수 NN에 대해 복소수 ωN\omega_N을 다음과 같이 정의합니다.

ωN=e2πiN=cos⁡(2πN)+isin⁡(2πN).\omega_N = e^{\frac{2\pi i}{N}} = \cos\left(\frac{2\pi}{N}\right) + i \sin\left(\frac{2\pi}{N}\right).

이 수는 복소 단위원 위에서 11에서 시작하여 반시계 방향으로 2π/N2\pi/N 라디안, 즉 원주의 1/N1/N 만큼 이동했을 때 얻는 값입니다. 몇 가지 예를 들면 다음과 같습니다.

ω1=1ω2=−1ω3=−12+32iω4=iω8=1+i2ω16=2+22+2−22iω100≈0.998+0.063i\begin{gathered} \omega_1 = 1\\[1mm] \omega_2 = -1\\[1mm] \omega_3 = -\frac{1}{2} + \frac{\sqrt{3}}{2} i\\[2mm] \omega_4 = i\\[1mm] \omega_8 = \frac{1+i}{\sqrt{2}}\\[3mm] \omega_{16} = \frac{\sqrt{2 + \sqrt{2}}}{2} + \frac{\sqrt{2 - \sqrt{2}}}{2} i\\[2mm] \omega_{100} \approx 0.998 + 0.063 i \end{gathered}

이제 NN차원 양자 푸리에 변환을 정의할 수 있습니다. 이 변환은 표준 기저 상태 ∣0⟩,…,∣N−1⟩\vert 0\rangle,\ldots,\vert N-1\rangle에 대응하는 행과 열을 갖는 N×NN\times N 행렬로 기술됩니다. 위상 추정에는 N=2mN = 2^m이 2의 거듭제곱인 경우만 필요하지만, 이 연산은 임의의 양의 정수 NN에 대해 정의할 수 있습니다.

QFTN=1N∑x=0N−1∑y=0N−1ωNxy∣x⟩⟨y∣\mathrm{QFT}_N = \frac{1}{\sqrt{N}} \sum_{x = 0}^{N-1} \sum_{y = 0}^{N-1} \omega_N^{xy} \vert x \rangle\langle y\vert

앞서 언급했듯이, 이것은 NN차원 이산 푸리에 변환에 대응하는 행렬입니다. 이 행렬의 정의에서는 보통 앞의 1/N1/\sqrt{N} 인수가 포함되지 않는 경우도 있지만, 유니터리 행렬을 얻으려면 이 인수를 포함해야 합니다.

다음은 작은 NN 값에 대한 양자 푸리에 변환을 행렬로 나타낸 것입니다.

QFT1=(1)\mathrm{QFT}_1 = \begin{pmatrix} 1 \end{pmatrix} QFT2=12(111−1)\mathrm{QFT}_2 = \frac{1}{\sqrt{2}} \begin{pmatrix} 1 & 1\\[1mm] 1 & -1 \end{pmatrix} QFT3=13(1111−1+i32−1−i321−1−i32−1+i32)\mathrm{QFT}_3 = \frac{1}{\sqrt{3}} \begin{pmatrix} 1 & 1 & 1\\[2mm] 1 & \frac{-1 + i\sqrt{3}}{2} & \frac{-1 - i\sqrt{3}}{2}\\[2mm] 1 & \frac{-1 - i\sqrt{3}}{2} & \frac{-1 + i\sqrt{3}}{2} \end{pmatrix} QFT4=12(11111i−1−i1−11−11−i−1i)\mathrm{QFT}_4 = \frac{1}{2} \begin{pmatrix} 1 & 1 & 1 & 1\\[1mm] 1 & i & -1 & -i\\[1mm] 1 & -1 & 1 & -1\\[1mm] 1 & -i & -1 & i \end{pmatrix} QFT8=122(1111111111+i2i−1+i2−1−1−i2−i1−i21i−1−i1i−1−i1−1+i2−i1+i2−11−i2i−1−i21−11−11−11−11−1−i2i1−i2−11+i2−i−1+i21−i−1i1−i−1i11−i2−i−1−i2−1−1+i2i1+i2)\mathrm{QFT}_8 = \frac{1}{2\sqrt{2}} \begin{pmatrix} 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1\\[2mm] 1 & \frac{1+i}{\sqrt{2}} & i & \frac{-1+i}{\sqrt{2}} & -1 & \frac{-1-i}{\sqrt{2}} & -i & \frac{1-i}{\sqrt{2}}\\[2mm] 1 & i & -1 & -i & 1 & i & -1 & -i\\[2mm] 1 & \frac{-1+i}{\sqrt{2}} & -i & \frac{1+i}{\sqrt{2}} & -1 & \frac{1-i}{\sqrt{2}} & i & \frac{-1-i}{\sqrt{2}}\\[2mm] 1 & -1 & 1 & -1 & 1 & -1 & 1 & -1\\[2mm] 1 & \frac{-1-i}{\sqrt{2}} & i & \frac{1-i}{\sqrt{2}} & -1 & \frac{1+i}{\sqrt{2}} & -i & \frac{-1+i}{\sqrt{2}}\\[2mm] 1 & -i & -1 & i & 1 & -i & -1 & i\\[2mm] 1 & \frac{1-i}{\sqrt{2}} & -i & \frac{-1-i}{\sqrt{2}} & -1 & \frac{-1+i}{\sqrt{2}} & i & \frac{1+i}{\sqrt{2}}\\[2mm] \end{pmatrix}

특히, QFT2\mathrm{QFT}_2는 하다마르(Hadamard) 연산의 다른 이름임을 알 수 있습니다.

유니터리성​

임의의 NN에 대해 QFTN\mathrm{QFT}_N이 유니터리임을 확인해 봅시다. 한 가지 방법은 열들이 정규직교 기저를 이룸을 보이는 것입니다.y=0.y = 0부터 y=N−1y = N-1까지, 열 번호 yy에 대응하는 벡터를 다음과 같이 정의할 수 있습니다.

∣ϕy⟩=1N∑x=0N−1ωNxy∣x⟩.\vert\phi_y\rangle = \frac{1}{\sqrt{N}} \sum_{x = 0}^{N-1} \omega_N^{xy} \vert x \rangle.

임의의 두 벡터의 내적을 계산하면 다음과 같습니다.

⟨ϕz∣ϕy⟩=1N∑x=0N−1ωNx(y−z)\langle \phi_z \vert \phi_y \rangle = \frac{1}{N} \sum_{x = 0}^{N-1} \omega_N^{x (y - z)}

이러한 합은 등비수열의 처음 NN항의 합에 관한 다음 공식을 이용해 계산할 수 있습니다.

1+α+α2+⋯+αN−1={αN−1α−1if α≠1Nif α=11 + \alpha + \alpha^2 + \cdots + \alpha^{N-1} = \begin{cases} \frac{\alpha^N - 1}{\alpha - 1} & \text{if } \alpha\neq 1\\[2mm] N & \text{if } \alpha=1 \end{cases}

구체적으로,α=ωNy−z,\alpha = \omega_N^{y-z}로 놓고 이 공식을 사용합니다.y=z.y = z이면 α=1\alpha = 1이므로, 공식을 적용하고 NN으로 나누면

⟨ϕy∣ϕy⟩=1.\langle \phi_y \vert \phi_y \rangle = 1.

y≠zy\neq z일 때 α≠1\alpha \neq 1이므로, 이 공식은 다음을 보여줍니다:

⟨ϕz∣ϕy⟩=1NωNN(y−z)−1ωNy−z−1=1N1−1ωNy−z−1=0.\langle \phi_z \vert \phi_y \rangle = \frac{1}{N} \frac{\omega_N^{N(y-z)} - 1}{\omega_N^{y-z} - 1} = \frac{1}{N} \frac{1 - 1}{\omega_N^{y-z} - 1} = 0.

이는 ωNN=e2πi=1\omega_N^N = e^{2\pi i} = 1이기 때문에 발생하며, 따라서 ωNN(y−z)=1y−z=1\omega_N^{N(y-z)} = 1^{y-z} = 1이 되어 분자가 0이 되는 반면, 분모는 ωNy−z≠1\omega_N^{y-z} \neq 1이므로 0이 아닙니다. 직관적으로 말하면, 우리가 하고 있는 것은 단위원 주위에 분포된 여러 점들을 더하는 것이며, 이들은 서로 상쇄되어 합했을 때 00이 남게 됩니다.

이로써 {∣ϕ0⟩,…,∣ϕN−1⟩}\{\vert\phi_0\rangle,\ldots,\vert\phi_{N-1}\rangle\}가 정규직교 집합임을 확립했습니다,

⟨ϕz∣ϕy⟩={1y=z0y≠z,\langle \phi_z \vert \phi_y \rangle = \begin{cases} 1 & y=z\\ 0 & y\neq z, \end{cases}

이는 QFTN\mathrm{QFT}_N이 유니터리임을 보여줍니다.

제어 위상 Gate​

양자 Circuit으로 양자 푸리에 변환을 구현하려면 제어 위상(controlled-phase) Gate를 사용해야 합니다. *위상 연산(phase operation)*은 다음과 같은 형태의 단일 Qubit 유니터리 연산임을 기억하세요.

Pα=(100eiα)P_{\alpha} = \begin{pmatrix} 1 & 0\\[1mm] 0 & e^{i\alpha} \end{pmatrix}

여기서 α\alpha는 임의의 실수입니다. 이 Gate의 제어 버전은 다음과 같은 행렬을 가집니다:

CPα=(100001000010000eiα)CP_{\alpha} = \begin{pmatrix} 1 & 0 & 0 & 0\\[1mm] 0 & 1 & 0 & 0\\[1mm] 0 & 0 & 1 & 0\\[1mm] 0 & 0 & 0 & e^{i\alpha} \end{pmatrix}

이 제어 Gate에서는 어느 Qubit이 제어이고 어느 Qubit이 대상인지가 사실 중요하지 않습니다. 두 가지 경우가 동치이기 때문입니다. 양자 Circuit 다이어그램에서 이 Gate를 나타내는 데는 다음 기호들 중 어느 것이든 사용할 수 있습니다.

양자 Circuit 다이어그램에서의 제어 위상 Gate 표현

세 번째 형태에서는 편의에 따라 α\alpha 레이블을 제어선 옆이나 아래쪽 제어 표시 아래에 놓기도 합니다.

N=2mN = 2^m이고 m≥2m\geq 2일 때 양자 푸리에 변환을 수행하려면, 표준 기저 상태에 대해 다음과 같이 작용하는 mm qubit 연산을 수행해야 합니다.

∣y⟩∣a⟩↦ω2may∣y⟩∣a⟩,\vert y \rangle \vert a \rangle \mapsto \omega_{2^m}^{ay} \vert y \rangle \vert a \rangle,

여기서 aa는 비트이고 y∈{0,…,2m−1−1}y \in \{0,\ldots,2^{m-1} - 1\}은 m−1m-1비트 이진 표기법으로 인코딩된 수입니다. 이는 m=5m=5인 경우를 예시로 하여 다음을 일반화하면 제어 위상 Gate로 구현할 수 있습니다.

위상 주입을 위한 양자 Circuit 다이어그램

일반적으로, m≥2m\geq 2인 임의의 경우에 대해 비트 aa에 해당하는 맨 위 Qubit을 제어로 보고, yy의 최하위 비트에 해당하는 Qubit에는 α=π/2m−1\alpha = \pi/2^{m-1}, yy의 최상위 비트에 해당하는 Qubit에는 α=π2\alpha = \frac{\pi}{2}의 위상 Gate PαP_{\alpha}를 적용합니다. 이 제어 위상 Gate들은 서로 교환 가능하며 어떤 순서로도 수행할 수 있습니다.

QFT의 Circuit 구현​

이제 차원 N=2mN = 2^m이 22의 거듭제곱일 때 양자 푸리에 변환을 Circuit으로 구현하는 방법을 살펴보겠습니다. 양자 푸리에 변환을 구현하는 방법은 사실 여러 가지가 있지만, 이 방법이 알려진 것 중 가장 단순하다고 할 수 있습니다. 양자 푸리에 변환을 양자 Circuit으로 구현하는 방법을 알면, 그 역연산을 구현하는 것도 간단합니다. 각 Gate를 역연산(즉, 켤레 전치)으로 교체하고 Gate를 역순으로 적용하면 됩니다. 유니터리 Gate만으로 구성된 모든 양자 Circuit은 이 방법으로 역연산할 수 있습니다.

이 구현은 재귀적 특성을 가지므로, 재귀적인 방식으로 설명하는 것이 가장 자연스럽습니다. 기저 사례는 m=1m=1이며, 이 경우 양자 푸리에 변환은 하다마르(Hadamard) 연산입니다.

m≥2m \geq 2일 때 mm개의 Qubit에 대해 양자 푸리에 변환을 수행하려면, 다음 단계를 따릅니다. 각 단계의 동작은 표준 기저 상태 ∣x⟩∣a⟩\vert x \rangle \vert a\rangle에 대해 설명하며, 여기서 x∈{0,…,2m−1−1}x\in\{0,\ldots,2^{m-1} - 1\}은 이진 표기법으로 m−1m-1비트로 인코딩된 정수이고 aa는 단일 비트입니다.

  1. 먼저 하위/왼쪽의 m−1m-1개 Qubit에 2m−12^{m-1}차원 양자 푸리에 변환을 적용하여 다음 상태를 얻습니다:

    (QFT2m−1∣x⟩)∣a⟩=12m−1∑y=02m−1−1ω2m−1xy∣y⟩∣a⟩.\Bigl(\mathrm{QFT}_{2^{m-1}} \vert x \rangle\Bigr) \vert a\rangle = \frac{1}{\sqrt{2^{m-1}}} \sum_{y = 0}^{2^{m-1} - 1} \omega_{2^{m-1}}^{xy} \vert y \rangle \vert a \rangle.

    이는 단일 Qubit에 대한 하다마르 연산을 기저 사례로 삼아, 한 qubit 적은 경우에 대해 이 방법을 재귀적으로 적용함으로써 수행됩니다.

  2. 상위/오른쪽 Qubit을 제어로 사용하여 나머지 m−1m-1개 Qubit의 각 표준 기저 상태 ∣y⟩\vert y\rangle에 위상 ω2my\omega_{2^m}^y를 주입하고(위에서 설명한 방법으로), 다음 상태를 얻습니다:

    12m−1∑y=02m−1−1ω2m−1xyω2may∣y⟩∣a⟩.\frac{1}{\sqrt{2^{m-1}}} \sum_{y = 0}^{2^{m-1} - 1} \omega_{2^{m-1}}^{xy} \omega_{2^m}^{ay} \vert y \rangle \vert a \rangle.
  3. 상위/오른쪽 Qubit에 하다마르 Gate를 수행하여 다음 상태를 얻습니다:

    12m∑y=02m−1−1∑b=01(−1)abω2m−1xyω2may∣y⟩∣b⟩.\frac{1}{\sqrt{2^{m}}} \sum_{y = 0}^{2^{m-1} - 1} \sum_{b=0}^1 (-1)^{ab} \omega_{2^{m-1}}^{xy} \omega_{2^m}^{ay} \vert y \rangle \vert b \rangle.
  4. Qubit의 순서를 치환하여 최하위 비트가 최상위 비트가 되도록 하고, 나머지는 위/오른쪽으로 이동합니다:

    12m∑y=02m−1−1∑b=01(−1)abω2m−1xyω2may∣b⟩∣y⟩.\frac{1}{\sqrt{2^{m}}} \sum_{y = 0}^{2^{m-1} - 1} \sum_{b=0}^1 (-1)^{ab} \omega_{2^{m-1}}^{xy} \omega_{2^m}^{ay} \vert b \rangle \vert y \rangle.

예를 들어,N=32=25,N = 32 = 2^5일 때 얻는 Circuit은 다음과 같습니다. 이 다이어그램에서 Qubit에는 명확성을 위해 입력에 대한 표준 기저 벡터 ∣x⟩∣a⟩\vert x\rangle \vert a\rangle와 출력에 대한 ∣b⟩∣y⟩\vert b\rangle \vert y\rangle에 해당하는 이름이 붙어 있습니다.

32차원 양자 푸리에 변환의 양자 Circuit 다이어그램

분석​

방금 설명한 회로가 2m2^m차원 양자 푸리에 변환을 구현한다는 것을 검증하는 데 필요한 핵심 공식은 다음과 같습니다:

(−1)abω2m−1xyω2may=ω2m(2x+a)(2m−1b+y).(-1)^{ab} \omega_{2^{m-1}}^{xy} \omega_{2^m}^{ay} = \omega_{2^m}^{(2x+ a)(2^{m-1}b + y)}.

이 공식은 임의의 정수 aa, bb, xx, yy의 선택에 대해 성립하지만, 우리는 a,b∈{0,1}a,b\in\{0,1\}이고 x,y∈{0,…,2m−1−1}x,y\in\{0,\ldots,2^{m-1}-1\}인 경우에만 이 공식이 필요합니다. 이는 우변 지수의 곱을 전개하여 확인할 수 있습니다,

ω2m(2x+a)(2m−1b+y)=ω2m2mxbω2m2xyω2m2m−1abω2may=(−1)abω2m−1xyω2may, \omega_{2^m}^{(2x+ a)(2^{m-1}b + y)} = \omega_{2^m}^{2^m xb} \omega_{2^m}^{2xy} \omega_{2^m}^{2^{m-1}ab} \omega_{2^m}^{ay} = (-1)^{ab} \omega_{2^{m-1}}^{xy} \omega_{2^m}^{ay},

여기서 두 번째 등식은 다음 관찰을 사용합니다

ω2m2mxb=(ω2m2m)xb=1xb=1.\omega_{2^m}^{2^m xb} = \bigl(\omega_{2^m}^{2^m}\bigr)^{xb} = 1^{xb} = 1.

2m2^m차원 양자 푸리에 변환은 모든 u∈{0,…,2m−1}u\in\{0,\ldots,2^m - 1\}에 대해 다음과 같이 정의됩니다.

QFT2m∣u⟩=12m∑v=02m−1ω2muv∣v⟩\mathrm{QFT}_{2^m} \vert u\rangle = \frac{1}{\sqrt{2^m}} \sum_{v = 0}^{2^m - 1} \omega_{2^m}^{uv} \vert v\rangle

uu와 vv를

u=2x+av=2m−1b+y\begin{aligned} u & = 2x + a\\ v & = 2^{m-1}b + y \end{aligned}

(a,b∈{0,1}a,b\in\{0,1\}이고 x,y∈{0,…,2m−1−1}x,y\in\{0,\ldots,2^{m-1} - 1\})로 쓰면 다음을 얻습니다.

QFT2m∣2x+a⟩=12m∑y=02m−1−1∑b=01ω2m(2x+a)(2m−1b+y)∣b2m−1+y⟩=12m∑y=02m−1−1∑b=01(−1)abω2m−1xyω2may∣b2m−1+y⟩.\begin{aligned} \mathrm{QFT}_{2^m} \vert 2x + a\rangle & = \frac{1}{\sqrt{2^m}} \sum_{y = 0}^{2^{m-1} - 1} \sum_{b=0}^1 \omega_{2^m}^{(2x+ a)(2^{m-1}b + y)} \vert b 2^{m-1} + y\rangle\\[2mm] & = \frac{1}{\sqrt{2^m}} \sum_{y = 0}^{2^{m-1} - 1} \sum_{b=0}^1 (-1)^{ab} \omega_{2^{m-1}}^{xy} \omega_{2^m}^{ay} \vert b 2^{m-1} + y\rangle. \end{aligned}

마지막으로, 표준 기저 상태 ∣x⟩∣a⟩\vert x \rangle \vert a\rangle와 ∣b⟩∣y⟩\vert b \rangle \vert y \rangle을 {0,…,2m−1}\{0,\ldots,2^m-1\} 범위의 정수에 대한 이진 인코딩으로 생각하면,

∣x⟩∣a⟩=∣2x+a⟩∣b⟩∣y⟩=∣2m−1b+y⟩,\begin{aligned} \vert x \rangle \vert a\rangle & = \vert 2x + a \rangle\\ \vert b \rangle \vert y \rangle & = \vert 2^{m-1}b + y\rangle, \end{aligned}

위 Circuit이 필요한 연산을 구현함을 알 수 있습니다. 양자 푸리에 변환을 수행하는 이 방법이 놀랍게 느껴진다면, 실제로 그럴 만합니다. 이것은 본질적으로 양자 Circuit 형태의 고속 푸리에 변환(FFT)입니다.

마지막으로, 방금 설명한 Circuit에서 사용되는 Gate의 수를 세어 보겠습니다. 제어-위상 Gate는 이전 수업에서 다룬 표준 Gate 집합에 포함되지 않지만, 우선 이를 무시하고 각각을 단일 Gate로 간주하여 계산하겠습니다.

mm의 각 가능한 선택에 대해 필요한 Gate 수를 sms_m이라 하겠습니다.m=1.m=1이면 양자 푸리에 변환은 하다마르 연산이므로,

s1=1.s_1 = 1.

m≥2m\geq 2이면 위 Circuit에서 m−1m-1개 Qubit에 대한 양자 푸리에 변환에 sm−1s_{m-1}개의 Gate,m−1,m-1개의 제어-위상 Gate, 하다마르 Gate 1개,m−1,m-1개의 스왑 Gate가 필요하므로,

sm=sm−1+(2m−1).s_m = s_{m-1} + (2m - 1).

합산하여 닫힌 형식의 식을 구하면:

sm=∑k=1m(2k−1)=m2.s_m = \sum_{k = 1}^m (2k - 1) = m^2.

실제로는 이 방법에서 설명하는 만큼 많은 스왑 Gate가 필요하지 않습니다. Gate를 약간 재배열하면 모든 스왑 Gate를 오른쪽으로 밀어낼 수 있고, 필요한 스왑 Gate 수를 ⌊m/2⌋\lfloor m/2\rfloor개로 줄일 수 있습니다. 점근적으로 이것이 크게 개선된 것은 아닙니다:QFT2m:\mathrm{QFT}_{2^m}을 수행하는 Circuit의 크기는 여전히 O(m2)O(m^2)입니다.

표준 Gate 집합의 Gate만을 사용하여 양자 푸리에 변환을 구현하려면, 각 제어-위상 Gate를 집합에 있는 Gate로 만들거나 근사해야 합니다. 필요한 Gate 수는 요구하는 정확도에 따라 달라지지만, mm의 함수로 보면 총 비용은 여전히 이차함수적입니다.

사실 PαP_{\alpha}는 α\alpha가 매우 작을 때 항등 연산에 매우 가깝다는 사실을 이용하면 — 즉 제어-위상 Gate 대부분을 그냥 생략해도 정확도 손실이 크지 않다는 점을 활용하여 — 이차보다 적은 수의 Gate로 양자 푸리에 변환을 상당히 정밀하게 근사하는 것도 가능합니다.

일반적인 절차와 분석​

이제 위상 추정 절차를 일반적인 형태로 살펴보겠습니다. 아이디어는 위에서 고려한 2 qubit 버전의 위상 추정을 아래 다이어그램이 제시하는 자연스러운 방식으로 확장하는 것입니다.

위상 추정 절차

위쪽에 새로운 제어 Qubit이 추가될 때마다 유니터리 연산 UU를 수행하는 횟수가 두 배가 됩니다. 이는 각 제어-유니터리 연산에서 UU의 지수로 다이어그램에 표시되어 있습니다.

제어-UkU^k 연산을 구현하는 가장 단순한 방법은 제어-UU 연산을 kk번 반복하는 것입니다. 이 방법을 사용한다면, 제어 Qubit을 추가하는 것이 Circuit 크기에 상당한 영향을 미친다는 점을 인식해야 합니다. 다이어그램처럼 mm개의 제어 Qubit이 있을 경우 총 2m−12^m - 1번의 제어-UU 연산이 필요합니다. 이는 mm이 증가함에 따라 상당한 계산 비용이 발생함을 의미합니다. 하지만 동시에 θ\theta에 대한 훨씬 더 정확한 근사가 가능해집니다.

그러나 일부 UU의 선택에 대해서는 UU에 대한 Circuit을 단순히 kk번 반복하는 것보다 더 효율적인 방식으로 큰 kk 값에 대한 UkU^k 연산을 구현하는 Circuit을 만들 수 있다는 점도 중요합니다. 이에 대한 구체적인 예는 뒤에서 정수 인수분해의 맥락에서 살펴볼 것이며, 이전 단원에서 설명한 모듈러 지수화의 효율적인 알고리즘이 여기서 활약합니다.

이제 앞서 설명한 Circuit을 분석해 보겠습니다. 역 양자 푸리에 변환 직전의 상태는 다음과 같습니다:

12m∑x=02m−1(Ux∣ψ⟩)∣x⟩=∣ψ⟩⊗12m∑x=02m−1e2πixθ∣x⟩.\frac{1}{\sqrt{2^m}} \sum_{x = 0}^{2^m - 1} \bigl( U^x \vert\psi\rangle \bigr) \vert x\rangle = \vert\psi\rangle \otimes \frac{1}{\sqrt{2^m}} \sum_{x = 0}^{2^m - 1} e^{2\pi i x\theta} \vert x\rangle.

특수한 경우​

m=2m=2 경우에서 했던 것과 유사하게, 먼저 y∈{0,…,2m−1}y\in\{0,\ldots,2^m-1\}에 대해 θ=y/2m\theta = y/2^m인 특수한 경우를 고려합니다. 이 경우 역 양자 푸리에 변환 이전의 상태는 다음과 같이 다르게 쓸 수 있습니다:

∣ψ⟩⊗12m∑x=02m−1e2πixy2m∣x⟩=∣ψ⟩⊗12m∑x=02m−1ω2mxy∣x⟩=∣ψ⟩⊗QFT2m∣y⟩.\vert\psi\rangle \otimes \frac{1}{\sqrt{2^m}} \sum_{x = 0}^{2^m - 1} e^{2\pi i \frac{xy}{2^m}} \vert x\rangle = \vert\psi\rangle \otimes \frac{1}{\sqrt{2^m}} \sum_{x = 0}^{2^m - 1} \omega_{2^m}^{xy} \vert x\rangle = \vert\psi\rangle \otimes \mathrm{QFT}_{2^m} \vert y\rangle.

따라서 역 양자 푸리에 변환을 적용하면 상태는

∣ψ⟩∣y⟩\vert\psi\rangle \vert y\rangle

가 되고, 측정을 통해 yy(이진 부호화된 값)가 드러납니다.

확률의 경계​

θ\theta가 정수 yy에 대해 y/2my/2^m의 형태를 취하지 않는 다른 값인 경우, 측정 결과가 확정적이지 않습니다. 하지만 서로 다른 결과에 대한 확률의 경계를 증명할 수 있습니다. 이어서 0≤θ<10\leq \theta < 1을 만족하는 임의의 θ\theta를 고려하겠습니다.

역 양자 푸리에 변환을 수행한 후 Circuit의 상태는 다음과 같습니다:

∣ψ⟩⊗12m∑y=02m−1∑x=02m−1e2πix(θ−y/2m)∣y⟩.\vert \psi \rangle \otimes \frac{1}{2^m} \sum_{y=0}^{2^m - 1} \sum_{x=0}^{2^m-1} e^{2\pi i x (\theta - y/2^m)} \vert y\rangle.

따라서 위쪽 mm개의 Qubit에 대한 측정을 수행하면 각 결과 yy가 다음 확률로 나타납니다:

py=∣12m∑x=02m−1e2πix(θ−y/2m)∣2.p_y = \left\vert \frac{1}{2^m} \sum_{x=0}^{2^m - 1} e^{2\pi i x (\theta - y/2^m)} \right\vert^2.

이 확률들을 더 잘 이해하기 위해, 앞서 살펴본 등비급수의 첫 항들의 합에 대한 공식을 다시 사용합니다.

1+α+α2+⋯+αN−1={αN−1α−1if α≠1Nif α=11 + \alpha + \alpha^2 + \cdots + \alpha^{N-1} = \begin{cases} \frac{\alpha^N - 1}{\alpha - 1} & \text{if } \alpha\neq 1\\[2mm] N & \text{if } \alpha=1 \end{cases}

pyp_y 공식에 나타나는 합은 α=e2πi(θ−y/2m)\alpha = e^{2\pi i (\theta - y/2^m)}으로 놓아 단순화할 수 있습니다. 다음과 같은 결과를 얻습니다.

∑x=02m−1e2πix(θ−y/2m)={2mθ=y/2me2πi(2mθ−y)−1e2πi(θ−y/2m)−1θ≠y/2m\sum_{x=0}^{2^m - 1} e^{2\pi i x (\theta - y/2^m)} = \begin{cases} 2^m & \theta = y/2^m\\[2mm] \frac{e^{2\pi i (2^m \theta - y)} - 1}{e^{2\pi i (\theta - y/2^m)} - 1} & \theta\neq y/2^m \end{cases}

따라서 θ=y/2m\theta = y/2^m인 경우 py=1p_y = 1임을 알 수 있으며(이 특수한 경우에서 이미 알고 있었던 것처럼),θ≠y/2m,\theta \neq y/2^m인 경우에는

py=122m∣e2πi(2mθ−y)−1e2πi(θ−y/2m)−1∣2.p_y = \frac{1}{2^{2m}} \left\vert \frac{e^{2\pi i (2^m \theta - y)} - 1}{e^{2\pi i (\theta - y/2^m)} - 1}\right\vert^2.

단위원 위의 호 길이와 현 길이가 어떻게 관련되는지를 생각해봄으로써 이러한 확률에 대해 더 알아볼 수 있습니다. 다음은 임의의 실수 δ∈[−12,12]\delta\in \bigl[ -\frac{1}{2},\frac{1}{2}\bigr]에 대해 우리가 필요로 하는 관계를 보여주는 그림입니다.

Illustration of the relationship between arc and chord lengths

먼저, (파란색으로 그려진) 현 길이는 (보라색으로 그려진) 호 길이보다 절대 클 수 없습니다:

∣e2πiδ−1∣≤2π∣δ∣.\bigl\vert e^{2\pi i \delta} - 1\bigr\vert \leq 2\pi\vert\delta\vert.

반대 방향으로 이 길이들을 관련지어 보면, 호 길이와 현 길이의 비율은 δ=±1/2\delta = \pm 1/2일 때 가장 크며, 이 경우 그 비율은 원의 둘레의 절반을 지름으로 나눈 값인 π/2\pi/2가 됩니다. 따라서 다음을 얻습니다

2π∣δ∣∣e2πiδ−1∣≤π2,\frac{2\pi\vert\delta\vert}{\bigl\vert e^{2\pi i \delta} - 1\bigr\vert} \leq \frac{\pi}{2},

따라서

∣e2πiδ−1∣≥4∣δ∣.\bigl\vert e^{2\pi i \delta} - 1\bigr\vert \geq 4\vert\delta\vert.

이러한 관계에 기반한 분석은 다음 두 가지 사실을 보여줍니다.

  1. θ\theta가 실수이고 y∈{0,…,2m−1}y\in \{0,\ldots,2^m-1\}가 다음을 만족한다고 하자.

    ∣θ−y2m∣≤2−(m+1).\Bigl\vert \theta - \frac{y}{2^m}\Bigr\vert \leq 2^{-(m+1)}.

    이는 y/2my/2^m이 θ\theta에 대한 최선의 mm비트 근사이거나, 정확히 y/2my/2^m와 (y−1)/2m(y-1)/2^m 또는 (y+1)/2m(y+1)/2^m 사이의 중간에 위치함을 의미합니다. 따라서 θ\theta에 대한 두 최선의 근사 중 하나입니다.

    이 경우 pyp_y가 꽤 크다는 것을 증명하겠습니다. 고려하는 가정으로부터 ∣2mθ−y∣≤1/2\vert 2^m \theta - y \vert \leq 1/2이 따라오므로, 호와 현의 길이에 관한 두 번째 관찰을 사용하여 다음을 결론지을 수 있습니다:

    ∣e2πi(2mθ−y)−1∣≥4∣2mθ−y∣=4⋅2m⋅∣θ−y2m∣.\left\vert e^{2\pi i (2^m \theta - y)} - 1\right\vert \geq 4 \vert 2^m \theta - y \vert = 4 \cdot 2^m \cdot \Bigl\vert \theta - \frac{y}{2^m}\Bigr\vert.

    또한 호와 현의 길이에 관한 첫 번째 관찰을 사용하여 다음을 결론지을 수 있습니다:

    ∣e2πi(θ−y/2m)−1∣≤2π∣θ−y2m∣.\left\vert e^{2\pi i (\theta - y/2^m)} - 1\right\vert \leq 2\pi \Bigl\vert \theta - \frac{y}{2^m}\Bigr\vert.

    이 두 부등식을 pyp_y에 적용하면 다음이 드러납니다:

    py≥122m16⋅22m4π2=4π2≈0.405.p_y \geq \frac{1}{2^{2m}} \frac{16 \cdot 2^{2m}}{4 \pi^2} = \frac{4}{\pi^2} \approx 0.405.

    이는 앞서 m=2m=2 버전의 위상 추정에서 최선의 결과가 40%40\%보다 높은 확률로 나타난다는 관찰을 설명해 줍니다. 정확히는 40%40\%가 아니라 4/π24/\pi^2이며, 실제로 이 경계는 모든 mm 선택에 대해 성립합니다.

  2. 이제 y∈{0,…,2m−1}y\in \{0,\ldots,2^m-1\}가 다음을 만족한다고 하자.

    2−m≤∣θ−y2m∣≤12.2^{-m} \leq \Bigl\vert \theta - \frac{y}{2^m}\Bigr\vert \leq \frac{1}{2}.

    이는 θ\theta와 y/2my/2^m 사이에 θ\theta에 대한 더 좋은 근사 z/2mz/2^m이 존재함을 의미합니다.

    이번에는 pyp_y가 너무 크지 않다는 것을 증명하겠습니다. 다음과 같은 간단한 관찰로 시작할 수 있습니다.

    ∣e2πi(2mθ−y)−1∣≤2,\left\vert e^{2\pi i (2^m \theta - y)} - 1\right\vert \leq 2,

    이는 단위원 위의 임의의 두 점이 절댓값 차이가 최대 22라는 사실로부터 따라옵니다.

    또한 위의 호와 현 길이에 대한 두 번째 관찰을 사용할 수 있는데, 이번에는 pyp_y의 분자가 아니라 분모에 대해 적용하여 다음을 결론지을 수 있습니다

    ∣e2πi(θ−y/2m)−1∣≥4∣θ−y2m∣≥4⋅2−m.\left\vert e^{2\pi i (\theta - y/2^m)} - 1\right\vert \geq 4\Bigl\vert \theta - \frac{y}{2^m}\Bigr\vert \geq 4 \cdot 2^{-m}.

    두 부등식을 결합하면 다음이 드러납니다

    py≤122m416⋅2−2m=14.p_y \leq \frac{1}{2^{2m}} \frac{4}{16 \cdot 2^{-2m}} = \frac{1}{4}.

    이 경계가 우리 목적에는 충분히 좋지만, 다소 대략적이라는 점에 유의하십시오 — 실제 확률은 보통 1/41/4보다 훨씬 낮습니다.

이 분석에서 얻을 수 있는 중요한 결론은 θ\theta에 매우 가까운 근사값이 발생할 가능성이 높다는 것입니다 — 우리는 40%40\%보다 높은 확률로 최적의 mm비트 근사값을 얻게 됩니다 — 반면 2−m2^{-m}보다 더 벗어난 근사값이 발생할 가능성은 낮으며, 그 확률은 25%25\%로 상한이 정해집니다.

이러한 보장이 주어지면, 위상 추정 절차를 여러 번 반복하여 θ\theta에 대한 통계적 증거를 수집함으로써 우리의 신뢰도를 높일 수 있습니다. 중요한 점은 하단 큐비트 모음의 상태 ∣ψ⟩\vert\psi\rangle이 위상 추정 절차에 의해 변경되지 않는다는 것이며, 따라서 이를 원하는 만큼 여러 번 절차를 실행하는 데 사용할 수 있습니다. 특히, 회로를 실행할 때마다 40%40\%보다 높은 확률로 θ\theta에 대한 최적의 mm비트 근사값을 얻으며, 2−m2^{-m}보다 더 벗어날 확률은 25%25\%로 제한됩니다. 회로를 여러 번 실행하고 가장 자주 나타나는 결과를 취하면, 가장 자주 나타나는 결과가 최대 25%25\%의 시간에만 발생하는 결과가 아닐 가능성이 매우 높습니다. 결과적으로, 우리는 값 θ\theta의 1/2m1/2^m 이내에 있는 근사값 y/2my/2^m을 얻을 가능성이 매우 높습니다. 실제로, 1/2m1/2^m보다 더 벗어날 낮은 확률은 절차를 실행하는 횟수에 대해 지수적으로 감소합니다.

다음은 m=3m = 3과 m=4m=4일 때 θ\theta의 함수로서 연속된 세 값 yy에 대한 확률을 보여주는 두 개의 그래프입니다. (명확성을 위해 세 개의 결과만 표시되어 있습니다. 다른 결과에 대한 확률은 동일한 기저 함수를 순환적으로 이동시켜 얻을 수 있습니다.)

Plot showing outcome probabilities for three-qubit phase estimation

Plot showing outcome probabilities for four-qubit phase estimation