본문으로 건너뛰기

장 24 양자 회로

큐비트를 살펴보았으니, 이제 큐비트를 회로에서 어떻게 사용하는지 이야기할 수 있습니다. 핵심적인 변화는 — 그리고 양자 회로가 고전 회로로는 할 수 없는 일을 할 수 있는 이유는 — 0과 1의 선형 결합을 허용한다는 사실입니다.

24.1 고전 논리 게이트

고전 논리에서는 몇 개의 비트를 입력으로 받아 몇 개의 비트를 출력하는 회로를 만듭니다. 이러한 회로는 개별 논리 게이트들로 구성됩니다. 예를 들어 AND 게이트는 다음과 같이 그림으로 나타낼 수 있습니다.

                                          

AND 게이트는 “진리표”를 사용하여 나타낼 수도 있습니다.

ABA그리고B000010100111

마찬가지로 OR 게이트와 NOT 게이트가 있습니다.

ABA또는B000011101111A부정A0110

또한 비트 하나를 복제하는 이른바 COPY 게이트도 있습니다.

            

물론 이러한 게이트에 관해 가장 먼저 배우는 정리는 다음과 같습니다.

정리 24.1.1 (AND, OR, NOT, COPY는 보편적임).

네 게이트 AND, OR, NOT, COPY로 이루어진 집합은 임의의 불 함수 f:{0,1}n→{0,1}를 이 게이트들만 사용하는 회로로 구현할 수 있다는 의미에서 보편적입니다.

증명.

다소 시시한 방법입니다. 본질적으로 fpre(1)에 속하는 모든 입력 문자열을 OR로 묶는 회로를 적으면 됩니다. 예를 들어 n=3이고, f(011)=f(110)=1이며 그 밖의 경우에는 0인 함수 f(abc)를 시뮬레이션하려 한다고 합시다. 그러면 f에 대응하는 불 식은 간단히 다음과 같습니다.

f(abc)=[(a의 부정) 그리고 b 그리고 c]또는[a 그리고 b 그리고 (c의 부정)].

분명히 다른 어떤 f에 대해서도 같은 방법을 쓸 수 있으며, 이 논리를 회로로 구현할 수 있습니다. ∎

비고 24.1.2.

x그리고y=부정((x의 부정)또는(y의 부정))이므로, 사실 AND 게이트는 없어도 됩니다.

24.2 가역 고전 논리

대표적인 예: CNOT 게이트, 토폴리 게이트.

양자역학에 적용하기에는 이것으로 충분하지 않습니다. 이 비유를 끝까지 이어가려면 사실 가역적인 게이트가 필요합니다. 즉, 게이트가 입력 공간에서 출력 공간으로 가는 전단사여야 합니다. 특히 이러한 게이트는 입력 비트와 출력 비트의 개수가 같아야 합니다.

예제 24.2.1 (가역 게이트).
  1. (a)

    차원상의 이유로 AND, OR, COPY 게이트는 모두 가역적이지 않습니다.

  2. (b)

    그러나 NOT 게이트는 가역적입니다. NOT 게이트는 전단사 {0,1}→{0,1}이기 때문입니다.

예제 24.2.2 (CNOT 게이트).

제어 NOT 게이트, 즉 CNOT 게이트는 다음 진리표를 갖는 가역 2비트 게이트입니다.

입력출력0000101101011110

다시 말해, 이 게이트는 첫 번째 비트는 그대로 두고 두 번째 비트에 첫 번째 비트를 XOR합니다. 이 게이트는 다음과 같이 나타냅니다.

첫 번째 점은 “제어”라고 하며, ⊕는 “부정” 연산입니다. 즉, 두 번째 비트를 뒤집을지 말지를 첫 번째 비트가 제어합니다. 따라서 전형적인 적용 예는 다음과 같습니다.

따라서 두 비트에 작용하는 자명하지 않은 가역 게이트는 NOT과 CNOT뿐입니다.

이제 가역 게이트에 대해서는 보편성을 다르게 정의해야 합니다.

정의 24.2.3.

가역 게이트들의 집합이 불 함수 f(x1…xn)를 시뮬레이션할 수 있다는 것은, 다음을 입력으로 받는 회로를 구현할 수 있다는 뜻입니다.

  • •

    입력으로는 x1…xn과 함께 0 또는 1로 고정된 몇 개의 비트를 사용하며, 이 비트를 보조 비트라고 부릅니다111영어 단어 “ancilla”는 “하녀”를 뜻합니다..

  • •

    출력으로는 입력 비트 x1,…,xn, 출력 비트 f(x1,…,xn), 그리고 경우에 따라 몇 개의 추가 비트( 쓰레기 비트라고 부릅니다)가 나옵니다.

게이트(들)가 임의의 불 함수를 시뮬레이션할 수 있으면 그 게이트(들)를 보편적이라고 합니다.

예를 들어, CNOT 게이트는 다음 회로와 같이 보조 비트 1 하나를 사용하여 NOT 게이트를 시뮬레이션할 수 있습니다.

안타깝게도 이 게이트는 보편적이지 않습니다.

명제 24.2.4 (CNOT ⇏ AND).

CNOT 게이트는 불 함수 “x 그리고 y”를 시뮬레이션할 수 없습니다.

증명의 개요.

CNOT 게이트만으로 시뮬레이션되는 함수는 모두 다음 꼴이어야 함을 알 수 있습니다.

a1x1+a2x2+⋯+anxn(mod2)

CNOT은 사상 (x,y)↦(x,x+y)이기 때문입니다. 따라서 보조 비트를 사용하더라도 고정된 a, b, c에 대해 ax+by+c(mod2) 꼴의 함수만 만들 수 있습니다. AND 게이트는 이러한 꼴이 아닙니다. ∎

그러므로 적어도 3큐비트 게이트가 필요합니다. 가장 흔히 쓰이는 것은 다음과 같습니다.

정의 24.2.5.

CCNOT 게이트라고도 부르는 3비트 토폴리 게이트는 다음과 같이 주어집니다.

즉 토폴리 게이트는 제어 비트가 두 개이며, 두 제어 비트가 모두 1일 때에만 마지막 비트를 반전합니다.

이렇게 대체하면 충분합니다.

정리 24.2.6 (토폴리 게이트의 보편성).

토폴리 게이트는 보편적입니다.

증명.

이 게이트가 AND와 NOT을, 따라서 OR을 가역적으로 시뮬레이션할 수 있음을 보이겠습니다. 이것으로 보편성을 보이기에 충분하다는 것은 이미 알고 있습니다. (가역성 덕분에 COPY는 필요하지 않습니다.)

AND 게이트의 경우 다음 회로를 그립니다.

이 회로는 보조 비트 하나를 사용하며 쓰레기 비트는 없습니다.

NOT 게이트의 경우 보조 비트 1 두 개와 쓰레기 비트 하나를 사용합니다.

이로써 증명이 완료됩니다. ∎

따라서 이론적으로는 토폴리 게이트만으로 원하는 모든 고전 회로를 만들 수 있습니다. 물론 가장 간단한 함수에도 지수적으로 많은 게이트가 필요할 수 있습니다. 다행히 저는 수학 전공자이므로 이것은 전혀 큰 문제가 아니며, 2n개의 게이트가 필요하다는 문제는 컴퓨터 과학 전공자들에게 맡겨 두는 것이 가장 좋습니다.

24.3 양자 논리 게이트

양자역학에서는 기저 원소들의 선형 결합이 가능하므로, 논리 게이트는 그 대신 선형 사상으로 이루어집니다. 또한 양자 계산에서 게이트는 항상 가역적입니다. 앞 절에서 시간을 들여 가역 게이트로 제한하더라도(예: 토폴리 게이트 사용) 여전히 임의의 함수를 시뮬레이션할 수 있음을 보인 것도 이 때문입니다.

먼저, 선형대수학을 조금 살펴봅시다.

정의 24.3.1.

V가 유한 차원 내적 공간이라고 합시다. 그러면 사상 U:V→V에 대해 다음은 서로 동치입니다.

  • •

    x,y∈V에 대하여 ⟨U(x),U(y)⟩=⟨x,y⟩입니다.

  • •

    U†는 U의 역입니다.

  • •

    x∈V에 대하여 ∥x∥=∥U(x)∥입니다.

사상 U가 이 동치 조건들을 만족하면 U를 유니터리라고 부릅니다.

그러면

양자 논리 게이트는 유니터리 행렬입니다.

특히 고전적인 상황과 달리 양자 게이트는 항상 가역적입니다(따라서 입력 비트와 출력 비트의 개수가 항상 같습니다).

예를 들어 CNOT 게이트를 생각해 봅시다. 이 게이트의 양자 버전은 유니터리 사상 UCNOT:H→H여야 합니다. 여기서 H=ℂ⊕2⊗ℂ⊕2이고, 이 사상은 기저 원소에서 다음과 같이 주어집니다.

UCNOT(|00⟩)=|00⟩,UCNOT(|01⟩)=|01⟩
UCNOT(|10⟩)=|11⟩,UCNOT(|11⟩)=|10⟩.

따라서 그림으로 나타내면 양자 CNOT 게이트는 다음과 같이 주어집니다.

                                                      

좋습니다, 그래서 어떻다는 것입니까? 양자역학의 핵심은 선형 큐비트가 |0⟩과 |1⟩의 선형 결합 상태에 있는 것도 허용한다는 점이며, 이로부터 흥미로운 결과가 나옵니다. 예를 들어 |←⟩=12(|0⟩−|1⟩)을 위쪽에 넣고 아래쪽에는 |1⟩을 넣은 다음, 어떤 일이 일어나는지 봅시다.

UCNOT(|←⟩⊗|1⟩)=UCNOT(12(|01⟩−|11⟩))=12(|01⟩−|10⟩)=|Ψ−⟩

이것은 완전히 얽힌 단일항 상태입니다! 그림으로 나타내면 다음과 같습니다.

따라서 양자 게이트에 혼합 상태를 입력하면, 원래 입력이 얽혀 있지 않더라도 출력은 얽힌 상태가 되는 경우가 많습니다.

예제 24.3.2 (양자 게이트의 더 많은 예).
  1. (a)

    앞에서 살펴본 모든 가역 고전 게이트에는 CNOT와 같은 방식, 즉 기저 원소에서의 값을 지정하는 방식으로 얻는 양자 버전이 있습니다. 예를 들어 양자 토폴리 게이트가 있으며, 이 게이트는 예컨대 다음과 같이 보냅니다.

  2. (b)

    큐비트 하나에 작용하는 아다마르 게이트는 다음과 같이 주어지는 회전입니다.

    [121212−12].

    따라서 이 게이트는 |0⟩을 |→⟩으로, |1⟩을 |←⟩으로 보냅니다. 아다마르 게이트는 자기 자신의 역이라는 점에 유의하십시오. 이 게이트는 “H” 상자로 나타냅니다.

  3. (c)

    더 일반적으로, U가 2×2 유니터리 행렬(즉 사상 ℂ⊕2→ℂ⊕2)이면, 앞의 것과 비슷하게 입력에 U를 적용하는 U-회전 게이트가 있습니다.

    예를 들어 고전적인 NOT 게이트는 U=σx로 나타냅니다.

  4. (d)

    제어 U-회전 게이트는 CNOT 게이트를 일반화한 것입니다. U:ℂ⊕2→ℂ⊕2를 회전 게이트라 하고, H=ℂ⊕2⊗ℂ⊕2를 2-큐비트 공간이라 합시다. 그러면 제어 U 게이트의 회로 도식은 다음과 같습니다.

                            

    따라서 제어 비트가 1일 때 U가 적용되며, CNOT는 U=σx인 특수한 경우입니다. 앞에서와 마찬가지로 제어 비트가 혼합 상태이면 흥미로운 동작이 나타납니다.

이제 직관에 더욱 반하는 양자적 동작을 살펴봅시다. CNOT를 다음과 같은 진리표를 가진 복사기로 사용하려 한다고 가정해 봅시다.

입력출력0000101101011110

이 게이트는 아래쪽에 쓰레기 값 0을 넣고 사용하여 “복사” 연산을 흉내 내려는 것입니다. 실제로 다음을 확인할 수 있습니다.

                        

따라서 |0⟩과 |1⟩은 복사할 수 있습니다. 그러나 이미 보았듯이 U에 |←⟩⊗|0⟩을 입력하면 얽힌 상태 |Ψ−⟩가 나오며, 이는 우리가 원했던 |←⟩⊗|←⟩이 결코 아닙니다. 실제로 이른바 복제 불가 정리에 따르면 임의의 |ψ⟩를 복제하는 것은 불가능합니다. 우리가 할 수 있는 최선은 고전적인 경우처럼 특정한 직교 상태들을 복사하는 것입니다. 문제 24B도 참고하십시오.

24.4 도이치-조사 알고리즘

도이치-조사 알고리즘은 고전적으로는 수행할 수 없는 자명하지 않은 양자 알고리즘의 첫 번째 예입니다. 이 알고리즘은 이후 그로버의 탐색 알고리즘과 쇼어의 소인수분해 알고리즘에 영감을 준 “개념 증명”입니다.

문제는 다음과 같습니다. 함수 f:{0,1}n→{0,1}가 주어지고, 함수 f가 다음 둘 중 하나임이 보장됩니다.

  • •

    상수 함수이거나,

  • •

    균형 함수, 즉 입력의 정확히 절반은 0으로 사상되고 나머지 절반은 1로 사상되는 함수입니다.

함수 f는 NOT 게이트를 제어하는 가역 블랙박스 Uf의 형태로 주어지므로, 다음 회로 도식으로 나타낼 수 있습니다.

즉 f(x1,…,xn)=0이면 게이트는 아무것도 하지 않고, 그렇지 않으면 게이트는 아래쪽의 y 비트를 뒤집습니다. n이 붙은 빗금은 입력의 위쪽이 그려진 큐비트 하나가 아니라 실제로는 n개의 큐비트로 이루어져 있음을 나타내며, 따라서 블랙박스 Uf는 n+1개의 큐비트 위의 사상입니다.

문제는 블랙박스 Uf를 가능한 한 적게 호출하여 f가 균형 함수인지 상수 함수인지 판별하는 것입니다.

질문 24.4.1.

고전적으로는 최악의 경우 이 질문에 답하기 위해 함수 f를 최대 2n−1+1번 호출해야 할 수 있음을 보이십시오.

따라서 고전적인 도구만으로는 f가 균형 함수인지 상수 함수인지 판별하는 데 O(2n)번의 질의가 필요합니다. 그러나

정리 24.4.2 (Deutsch-Jozsa).

도이치-조사 문제는 양자 회로에서 블랙박스를 단 한 번만 호출하여 판별할 수 있습니다.

증명.

구체적으로 보이기 위해 n=1인 경우를 명시적으로 다루겠습니다. 일반적인 경우는 문제 24C에 수록되어 있습니다. 필요한 회로는 다음과 같다고 주장합니다.

여기서 H들은 아다마르 게이트이며, 가장 오른쪽 선 끝의 계측기는 통상적인 |0⟩, |1⟩ 기저를 따라 측정함을 나타냅니다. 이것은 오타가 아닙니다! 고전적으로는 위쪽 선이 입력 정보를 그저 반복할 뿐이지만, 우리가 측정하고자 하는 것이 바로 위쪽이라는 것을 곧 보게 될 것입니다.

두 번의 아다마르 연산 후에 얻는 상태는 다음과 같음에 유의하십시오.

|01⟩ ↦H⊗2(12(|0⟩+|1⟩))⊗(12(|0⟩−|1⟩))
=12(|0⟩⊗(|0⟩−|1⟩)+|1⟩⊗(|0⟩−|1⟩)).

따라서 Uf를 적용한 후에는 다음을 얻습니다.

12(|0⟩⊗(|0+f(0)⟩−|1+f(0)⟩)+|1⟩⊗(|0+f(1)⟩−|1+f(1)⟩))

여기서 법 2는 암묵적으로 생략되었습니다. 이제 |0⟩−|1⟩에서 |0+f(x)⟩−|1+f(x)⟩로 가는 효과는 단지 상태를 그대로 유지하거나(f(x)=0인 경우) 부호를 바꾸는(f(x)=1인 경우) 것뿐임을 관찰하십시오. 따라서 간단히 하고 인수분해하여 다음을 얻을 수 있습니다.

12((−1)f(0)|0⟩+(−1)f(1)|1⟩)⊗(|0⟩−|1⟩).

따라서 지금까지의 그림은 다음과 같습니다.

특히 결과 상태는 얽혀 있지 않으므로, 마지막 큐비트를 그냥 버릴 수 있습니다(!). 이제 다음을 관찰하십시오.

  • •

    f가 상수 함수이면, 가장 위쪽 상태는 ±|→⟩입니다.

  • •

    f가 균형 함수이면, 가장 위쪽 상태는 ±|←⟩입니다.

따라서 단순히 σx를 따라 측정하기만 하면 답을 얻습니다. 동등하게, H 게이트를 한 번 더 적용하고(H|→⟩=|0⟩, H|←⟩=|1⟩이 되도록) 통상적인 |0⟩, |1⟩ 기저에서 σz를 따라 측정하면 됩니다. 따라서 n=1인 경우 오라클을 단 한 번만 호출하면 됩니다. ∎

24.5 생각해 볼 만한 조금 더 어려운 문제

문제 24A (프레드킨 게이트).

프레드킨 게이트(제어 스왑 또는 CSWAP 게이트라고도 합니다)는 다음 진리표를 갖는 3비트 게이트입니다.

입력출력000000001001010010011011100100101110110101111111

따라서 이 게이트는 첫 번째 비트가 1일 때마다 마지막 두 입력 비트를 맞바꿉니다. 이 게이트 역시 가역적이며 범용임을 보이십시오.

힌트. 한 가지 방법은 프레드킨 게이트 몇 개를 사용하여 CCNOT을 만드는 것입니다.

풀이. 프레드킨 게이트가 보편적임을 보이려면 이를 사용하여 CCNOT 게이트를 가역적으로 만들 수 있음을 보이면 충분합니다. 시스템을 다음과 같이 씁니다

(z,¬z,−) =Fred(z,1,0)
(x,a,−) =Fred(x,1,0)
(y,b,−) =Fred(y,a,0)
(−,c,−) =Fred(b,0,1)
(−,d,−) =Fred(c,z,¬z).

직접 계산하면 d=z+xy(mod2)임을 알 수 있습니다.

문제 24B (기초적인 복제 불가 정리).

임의의 큐비트 |ψ⟩에 대하여 U(|ψ⟩⊗|0⟩)=|ψ⟩⊗|ψ⟩를 만족하는 두 큐비트 위의 유니터리 사상 U는 존재하지 않음을 보이십시오. 즉, 다음 회로 도식은 불가능합니다.

힌트. |ψ⟩=|0⟩, |ψ⟩=|1⟩, |ψ⟩=|→⟩을 대입하여 모순을 이끌어 내십시오.

문제 24C (도이치-조사).

도이치-조사 알고리즘에서 설명한 블랙박스 Uf가 주어졌을 때, 다음 회로를 생각하십시오.

즉, |0⟩의 복사본 n개를 취하여 그 모두에 아다마르 회전을 적용하고, Uf를 적용한 다음, n개의 입력 비트 모두에 아다마르를 역으로 적용하고(다시 마지막 비트는 버립니다), 그런 다음 n개의 비트 모두를 |0⟩/|1⟩ 기저에서 측정합니다(예제 23.4.4에서와 같이).

f가 상수 함수이면 |0…0⟩을 측정할 확률이 1이고, f가 균형 함수이면 0임을 보이십시오.

힌트. 먼저 이 상자가 |x1⟩⊗⋯⊗|xn⟩⊗|←⟩을 (−1)f(x1,…,xn)(|x1⟩⊗⋯⊗|xn⟩⊗|←⟩)으로 보냄을 보이십시오.

풀이. |←⟩=12(|0⟩−|1⟩)로 둡시다. 그러면 Uf는 다음과 같이 보냅니다

|x1⟩…|xn⟩|0⟩−|x1⟩…|xn⟩|1⟩↦Uf±|x1⟩…|xn⟩|0⟩∓|x1⟩…|xn⟩|1⟩

여기서 부호는 +이며, 정확히 f(x1,…,xn)=1일 때에만 −입니다.

이제 |0⟩…|0⟩|1⟩을 입력하면, H⊗n+1은 이를 다음으로 사상함을 알 수 있습니다.

2−n/2∑x1,…,xn|x1⟩…|xn⟩|←⟩.

그러면 Uf에 의한 상은 다음과 같습니다

2−n/2∑x1,…,xn(−1)f(x1,…,xn)|x1⟩…|xn⟩|←⟩.

이제 마지막 큐비트를 버리면 다음이 남습니다

2−n/2∑x1,…,xn(−1)f(x1,…,xn)|x1⟩…|xn⟩.

여기에 H⊗n을 적용하면 다음을 얻습니다

2−n/2∑x1,…,xn(−1)f(x1,…,xn)⋅(2−n/2∑y1,…,yn(−1)x1y1+⋯+xnyn|y1⟩|y2⟩…|yn⟩)

이는 H|0⟩=12(|0⟩+|1⟩)인 반면 H|1⟩=12(|0⟩−|1⟩)이므로, 음의 부호는 정확히 xi=1이고 동시에 yi=1일 때 생기며, 따라서 (−1)x1y1+⋯+xnyn 항이 나오기 때문입니다. 합의 순서를 바꾸면 다음을 얻습니다

2−n∑y1,…,ynC(y1,…,yn)|y1⟩|y2⟩…|yn⟩

여기서 C(y1,…,yn)=∑x1,…,xn(−1)f(x1,…,xn)+x1y1+⋯+xnyn입니다. 이제 마지막으로 두 경우를 생각합니다.

  • •

    f가 상수 함수이면 다음을 얻습니다

    C(y1,…,yn)={±1y1=⋯=yn=00그 외의 경우.

    이를 확인하려면, y1=⋯=yn=0인 경우에는 결과가 명백하다는 점에 주목하십시오. 그렇지 않은 경우, 일반성을 잃지 않고 y1=1이라 하면 x1=0에 대한 항들이 x1=1에 대한 항들과 한 쌍씩 정확히 상쇄됩니다. 따라서 이 상태에서는 측정 결과가 모두 |0⟩…|0⟩입니다.

  • •

    반면 f가 균형 함수이면 다음을 이끌어 낼 수 있습니다

    C(0,…,0)=0.

    따라서 측정 결과가 |0⟩…|0⟩이 되는 경우는 전혀 없습니다.

이러한 방식으로 f가 균형 함수인지 아닌지를 판별할 수 있습니다.

문제 24D (Barenco 외, 1995; arXiv:quant-ph/9503016v1).

다음과 같이 둡시다.

P=[100i]Q=12[1−i−i1]

다음 회로를 통해 양자 토폴리 게이트를 제어 회전만으로 구현할 수 있음을 확인하십시오

고전적인 가역 논리에는 3비트 게이트(예: 토폴리, 프레드킨)가 필요하므로, 이 사실이 발견되었을 때 연구자들은 크게 놀랐습니다.

힌트. 이는 직접 계산으로 확인할 수 있습니다.