Chapter 1. 양자 컴퓨터의 개념과 Qubit

0. 양자컴퓨터란?

최초의 컴퓨터인 애니악이 개발된지 대략 70년이 흐르는 동안 컴퓨터는 엄청난 발전을 이뤄왔다. 단적인 예로 최신 스마트폰은 애니악 연산력을 10억배는 넘는다고 평가받고 있으며, 이런 스마트폰은 없는 사람을 찾기 어려울 정도로 널리 보급 되어있다.

이러한 발전의 근간이 되는 기술은 손톱만한 크기의 칩에 수억개의 부품을 내장하는 집적효율화를 이뤄낸 반도체의 나노 공정에 있다. 그러나 이제 나노 공정은 물리학적으로 넘을 수 없는 벽에 도달해있다. 즉, 컴퓨터 하드웨어는 그 발전에 있어 한계에 도달해있다.

그럼에도 불구하고 현대 학계에는 이 한계보다 훨씬 큰 계산력을 요구하는 과제들이 산적해있다. 슈퍼-빅데이터를 핸들링하는 데이터 사이언스가 그것이고, 수십억개의 조합을 시험해봐야하는 Chemometrics, Biometrics등이 바로 그것이다.

따라서 인류의 새로운 과제는 기존의 컴퓨터를 뛰어넘는 새로운 컴퓨터를 개발하는 것이다. 그리고 바로 그것이 양자컴퓨터이다.

양자 컴퓨터라고 하면 다분히 미래적으로 들리지만 사실 근시일안에 상용화를 앞두고 있는 미래기술 중 하나이다.

양자 컴퓨터의 개발을 리딩하고 있는 기업은 IBM,구글,마이크로 소프트 등이 있고 그 중에서 IBM과 구글은 고전 컴퓨터의 효율을 뛰어넘을 수 있다고 평가받는 선인 50개의 Qubit을 가지는 양자컴퓨터의 개발에 성공했다고 한다. 이러한 발전의 속도는 5년전의 예상을 뛰어넘는 결과로서, 업계의 사람들은 5년내에 실험실에서 양자컴퓨터를 활용할 수 있을 것이라고 기대하고 있다.

양자컴퓨터가 개발될 시 데이터 사이언스 학계의 패러다임은 완전히 바뀌게 될 것이다. 예를들어, 최적화 방식에 비해 정확함에도 불구하고 속도가 느려 잘 쓰이지 않던 샘플링 방식이 엄청난 속도를 가지게 되어 그 단점을 메꾸게 될것이고, 기존에는 너무 복잡해서 실용화가 어려웠던 베이지안 딥러닝 같은 이론들도 실용화를 할 수 있게 될것이다.

이런 양자컴퓨터를 활용하기 위해서는 양자컴퓨터 알고리즘의 원리에 대해서 어느정도 알 필요가 있다. 그러나 수학,물리학,공학,전산학,통계학 등 현세대의 최신 과학이 집속해서 만들어진 결과물이 양자 컴퓨터인 만큼 모든 내용을 알기에는 무리가 따른다.

따라서 이 포스팅 시리즈에서는 양자컴퓨터의 기본 원리와 평소에 관심있던 데이터 사이언스 분야와 관련된 알고리즘에만 집중해서 공부하고 하드웨어나 암호화 같은 그다지 흥미가 없는 부분들은 단호히 포기를 할 생각이다.

1. 양자 컴퓨터의 원리

양자 컴퓨터는 고전 컴퓨터가 천문학적인 시간이 걸려서 풀었던 문제들을 하루도 안걸려서 풀 수 있다. 이러한 압도적인 퍼포먼스는 하드웨어가 아니라 소프트웨어(알고리즘)의 차이에서 기인한다. 즉, 고전 컴퓨터와는 완전히 다른 접근 하에서 풀어내기 때문에 빠르게 풀어낼 수 있는 것이다.

소인수 분해를 예로 들면 고전컴퓨터는 100023이라는 숫자를 소인수 분해해보기 위해 2부터 차근차근 나눠보며 나머지가 0인 값을 저장한 후 다시 그 정수에 대해 2부터 차근차근 나누어 본다. 이러한 접근 방식 때문에 소인수분해는 고전컴퓨터가 가장 하기 힘들어 하는 영역이다.

그러나 양자컴퓨터는 양자중첩이라는 개념과 수학적인 성질을 이용해서 결과물을 한꺼번에 확인할 수 있어 그 속도를 극적으로 줄일 수 있다.

현대의 암호는 모두 소인수분해에 기초를 두고 있기 때문에 양자컴퓨터가 나온다면 기존 암호체계는 상당 부분 무력화가 된다.

또 다른 예시로 Deuch’ Algorithm를 들 수 있다. 어떤 함수의 함수값들이 Constant인지 Balance인지를 알기 위해서 고전 컴퓨터는 모든 인풋값을 하나씩 다 넣어볼 필요가 있지만, 양자 컴퓨터는 중첩 상태에 있는 인풋 하나만을 넣어봄으로써 결과를 바로 볼 수 있다. 즉, 시간복잡도 함수가 n에서 1로 극적으로 줄어드는 것이다.

즉, 양자컴퓨터가 고전컴퓨터 보다 효율적인 이유는 기존의 것과는 다른 알고리즘을 가져가기 때문이다.

그렇다면 이러한 알고리즘을 고전컴퓨터에 적용하면 되지않을까 하는 의문이 들 수 있겠지만 양자 컴퓨터의 알고리즘들은 고전컴퓨터와는 구현기반이 다르기 때문에 불가능하다.

고전컴퓨터는 Bit를 기본단위로 가지며 고전컴퓨터의 하드웨어는 bit를 구현하도록 만들어져 있다. 비트는 0 혹은 1의 값을 가지는 수학적 단위이며, 고전컴퓨터에서는 마치 스위치와 같이 전기신호가 들어오면 1, 아니면 0으로써 구현해낸다.

이를 논리 게이트라고 불리는 기본적인 연산자에 통과를 시키고 결과값을 확인함으로써 계산을 해내는 원리이다.

반면에 양자컴퓨터의 기반이 되는 단위는 Quantum bit, 줄여서 Qubit이다. 이 큐빗은 고전 컴퓨터의 그것에 대해 “중첩”,”측정”,”얽힘” 세가지 측면의 특징을 가지고 있고 이것이 바로 양자컴퓨터의 성능의 근간이 되는 부분이다. 이에 대해서 알아보자.

2. Qubit의 특징

슈테른 게를라흐 실험과 양자 중첩 상태

앞서서 Bit를 1 아니면 0 을 가지는 스위치로 표현했다면, Qubit는 1에서 0 사이의 값을 가지는 Spin으로 표현된다. 이는 슈테른-게를라흐 실험에서 영감을 받은 것이며 이 실험을 통해서 Qubit의 특징에 대해서 대부분 이해할 수 있다.

어떤 구슬 모양의 자석을 상상해보자. 이 자석은 N극과 S극을 구분하는 선이 없어서 어느쪽이 N극인지 알 수 없지만 확실하게 어떤 방향은 N극이고 어떤 방향은 S극일 것이다. 이 구슬 모양 자석을 아래와 같이 생긴 측정 터널 안으로 쏘아보자.

측정 터널은 N극이 좀 더 튀어나와 있어 N극의 영향이 강하므로 만약 자석의 N극이 위를 향한다면 아래로 휠 것이고 S극이 위를 향한다면 위로 휘게 될 것이다.

그러나 만약 N극과 S극의 방향이 자석과 정확하게 90도 직각을 이루고 있었다면 어떻게 될까? 많은 과학자들은 정확히 직선으로 움직이는 것을 예상했지만 실험 결과에서는 모든 자석이 50% 확률로 위를 향하고 50% 확률로 아래를 향했다.

물리학자들은 이 결과를 통해 자석이 통과하기 전에 이미 방향이 결정되어 있지 않을까는 생각을 했다. 아마 각도가 89.999도 정도로 미세하게 기울어져 있어 방향이 결정된다고 생각한 것이다.

이것을 일종의 숨은 변수 이론이라고 해석할 수 있다. 관측되지 않고 숨겨진 0.0001의 변수가 휘는 방향을 결정한다고 본 것이다. 이는 일반인들도 쉬이 추론해낼 수 있는 해석이다.

그러나 현대의 주류 해석인 코펜하겐 해석에서는 이러한 합리적인 해석과는 정반대로 해석하고 있다.

장치를 통과하기 전 방향이 관측되지 않은 90도 직각의 상태에 대해 위를 향하는 상태와 아래를 향하는 상태의 중첩(Superposition) 상태라고 본 것이다. 다시 말해, 숨은 변수 같은 것은 없으며 90도 상태의 자석은 항상 위를 향하는 동시에 아래를 향하고 있다.

즉, 어느쪽도 될 수 있는 상태를 중첩 상태라고 말하는 것이며 큐빗은 비트와는 다르게 이러한 중첩 상태가 될 수 있다.

여담으로, 이러한 비합리적인 해석을 비판하는 것이 슈뢰딩거의 고양이 사고 실험이다. 상자안에 고양이를 넣고 5분후에 독가스가 50% 확률로 분출이 되는 기계를 넣는다. 코펜하겐 해석에 따르면 5분 후에 고양이의 상태는 죽어 있는 동시에 살아있는 중첩상태이다. 즉, 이는 말도 안되는 설명이기에 코펜하겐 해석은 비합리적인 해석이라는 것이다. 그럼에도 불구하고 지난 100여년간의 실험끝에 다른 모든 해석을 제치고 코펜하겐 해석이 주류를 차지했다.

이러한 중첩 상태는 불확실성으로 표현되지만 사실 컨트롤이 가능하다.

만약 슈테른 게를라흐 실험을 통해 위로 향한 자석을 가지고 있다면, 이 자석은 이미 장치를 통과하면서 S극이 완전히 위쪽을 향하게 꺽여진 상태이다. 따라서 만약 이를 다시 장치에 쏘아 보내면 100% 확률로 위쪽을 향할 것이다. 따라서 우리는 100% 확률을 상태로 가지는 자석을 얻을 수 있다.

이번에는 한번 통과한 자석을 90도가 꺽인 측정터널에 쏘아보내자. 이 경우 완벽하게 50% 확률로 위를 향하고 50% 확률로 아래를 향하는 자석을 얻어낼 수 있다.

이는 측정(Measurement) 의 방향에 따라서 중첩 상태였던 것이 중첩 상태가 아니게 될 수 있고 중첩 상태가 아니었던 것을 양자 중첩 상태로 만들 수 있음을 의미한다.

이는 곧 두 가지를 함의하는데 1. 측정 그 자체가 자석의 상태에 영향을 미친다는 것과 2. 측정의 방향에 따라 자석의 상태를 다르게 볼 수 있음을 의미한다.


이러한 자석으로 어떻게 컴퓨터를 만들 수 있을까?

양자의 정의는 이산적으로 측정될 수 있는 물리학적 상태를 가지는 어떤 것을 의미한다. 그러나 물리학자 들은 세상의 모든 것들이 연속적이 아니라 이산적이라는 것을 입증했다고 한다.

따라서 양자의 정의는 그냥 측정 될 수 있는 어떤 것을 통틀어서 이야기를 하는 것이다. 즉, 힘, 속도, 열량, 질량 모든 것이 양자이며 위 실험에서 나온 자석의 상태 또한 양자이다.

만약, 이 자석과 비슷한 성질을 가지는 물질(사실 극성을 띄는 원자를 그렇게 말할 수 있다.)을 이용해 위를 향하는 것을 0, 아래를 향하는 것을 1이라고 바꿔서 표현하면 고전 컴퓨터의 비트를 표현할 수 있다.

그러나 기존의 비트와 다른 점은 이 비트는 0과 1의 중첩으로 이루어 질수 있다는 점이다. 이것이 바로 양자컴퓨터를 이루는 기본단위인 Qubit이다.

물론 이 Qubit은 100%의 확률로 1,0을 가질 수 있기 때문에 Bit의 역할도 대신할 수 있다. 따라서 고전컴퓨터가 할 수 있는 것은 양자 컴퓨터도 모두 할 수 있다고 말할 수 있다.

마지막으로 양자컴퓨터의 가장 중요한 개념 중 하나인 얽힘상태를 이해해 보자.

고전 컴퓨터에서 두 개의 비트를 생각해보자. 두 개의 비트는 곧 두 개의 스위치 이다. 한쪽의 스위치를 끄는 것은 다른 스위치에 별 다른 영향을 미치지 않는다. 즉 두 개의 비트는 독립적으로 존재하는 것이다.

물론 한개가 꺼지면 다른 한개가 꺼지도록 만들 수 는 있다. 그러나 이는 스위치 외부의 장치를 통해서 컨트롤을 해야만 하는 것이며 외부적인 힘이 필요하다.

그러나 양자 컴퓨터의 큐빗에서는 하나를 관측함으로써 다른 쪽의 정보를 즉각적으로 알게 할 수 있다.

예를 들어 자석 한개를 쪼개어 둘로 만들어 보자. 이 과정에서 방향은 유지시키며 하나의 자석을 지구 반대편으로 보내자. 이때, 내가 가지고 있는 자석의 N극이 위를 향하는 것을 관측하면, 나머지 자석의 방향은 지구 반대편에 있음에도 불구하고 즉각적으로 알 수 있다.

이러한 현상을 양자 얽힘(Entanglement)라고 하며 이를 이용함으로써 여러가지 수학적 문제를 큐빗 안에서 자연스럽게 해결되게 만들 수 있다.

물론 위의 예시는 가장 단순한 예시이며, 양자 컴퓨터는 좀 더 다양한 얽힘을 만들어 낼 수 있다.


위의 내용을 정리해보자.

  • 양자 역학이란 측정 그 자체가 상태에 영향을 미치는 미시 세계를 다루는 것이다
  • 이때 측정되지 않은 양자 상태는 여러 상태가 중첩되어 있는 상태라고 해석한다.
  • 이러한 양자세계에서는 하나의 양자 상태가 다른 양자상태와 연결이 될 수 있으며 이를얽힘상태라고 말한다.

결론적으로, 이러한 양자세계의 세가지 특징을 활용하는 것이 양자컴퓨터라고 말할 수 있다.

3. Qubit의 표기법

여기까지 컨셉자체는 이해할 수 있을것이다. 그러나 구체적으로 이러한 특징들이 어떻게 알고리즘과 연결할 수 있는 지에 대해서는 전혀 감이 오지 않을 것이다. 이러한 양자 역학의 컨셉과 수학의 세계를 아름답게 연결해주는 도구는 다름아닌 선형대수학이다.

양자컴퓨터에서 큐빗과 이를 이용한 알고리즘은 선형대수학을 통해서 완벽하게 표현할 수 있다. 양자역학에서는 Dirac’s Notation이라고 불리는 Braket 표기법을 이용해서 큐빗을 표현하며 하나의 큐빗은 아래와 같이 정의될 수 있다.

$\mid \Psi \rangle = \left[ \begin{array}{c} \ \psi_1 \\ \psi_2\end{array} \right] ;(\psi_1^2 + \psi_2^2 = 1) $

즉, 2차원 공간에서 길이가 1인 벡터를 통해 큐빗의 방향(상태)를 표현한 것이다.

그러면 [0,1]을 0으로써, [0,-1]을 1로 둠으로써 극성의 방향을 표시할 것이라고 생각 할 수 있을 것이다. 하지만 안타깝게도 양자역학에서는 이것과는 약간은 다른 개념으로 접근을 한다. 정확하게는 아래와 같다.

$\mid 0 \rangle = \left[ \begin{array}{c} \ 1 \\ 0 \end{array} \right], \mid 1 \rangle = \left[ \begin{array}{c} \ 0 \\ 1 \end{array} \right]$

이를 2차원 공간에서 표기하게 되면 일반적으로 좌표평면에서 기대하는 방식과는 전혀 다른 방식이 된다. 따라서 좌표평면의 그것은 잊어버리고 그냥 새로운 평면을 익힌다고 생각하고 접근하자.

이를 이용했을 때 위의 중첩상태는 어떻게 표현이 될까? 아래를 살펴보자.

$\mid \Psi \rangle = \left[ \begin{array}{c} \ \psi_1 \\ \psi_2\end{array} \right] = \psi_1\mid 0\rangle + \psi_2\mid 1\rangle]$

즉, 0의 상태가 $\psi_1$만큼, 1의 상태가 $\psi_2$만큼 중첩이 되어있는 것이다. 이를 Probability Amplitude라고 한다. 거기에 각각의 숫자를 제곱했을때, 각각의 상태가 나올 확률을 계산할 수 있게 된다.

그러면 위에서 들었던 예시인 50대 50의 확률을 가지는 상태는 어떻게 표현이 될까?

$\mid \psi \rangle = \frac{1}{\sqrt{2}} \mid 0 \rangle + \frac{1}{\sqrt{2}} \mid 1 \rangle $

위와 같이 표시하면 각각의 제곱이 1/2이므로 각각의 상태가 나올 확률이 50:50이라고 말할 수 있다. 그런데 아래의 예시도 보자.

$\mid \psi \rangle = \frac{1}{\sqrt{2}} \mid 0 \rangle - \frac{1}{\sqrt{2}} \mid 1 \rangle $

이 경우도 각각을 제곱하면 1/2이다. 따라서 위의 예시를 표현하는 양식이 될 수 있다.

양자역학에서는 이 두 가지를 각기 다른상태로 보고있다. 앞선 예시에 따르면 N이 완벽히 위를 향하는 자석을 90도 꺽인 측정 터널에 통과시키면 50:50의 확률을 가지게 되지만 사실 N이 완벽히 아래를 향하는 자석을 통과시켜도 마찬가지 결과가 나온다.

즉 실제에서는 양자가 구형인 만큼 N이 가질 수 있는 방향은 무수히 많이 존재하는 것이다. 따라서 위의 경우를 특별하게 구분지어서 아래와 같이 표기한다.

$\mid + \rangle = \frac{1}{\sqrt{2}} \mid 0 \rangle + \frac{1}{\sqrt{2}} \mid 1 \rangle $ , $\mid - \rangle = \frac{1}{\sqrt{2}} \mid 0 \rangle - \frac{1}{\sqrt{2}} \mid 1 \rangle $

이 두 가지 상태는 0도 측정 장치에서는 서로를 구분할 수 없지만, 90도 장치에서는 하나는 100% N으로 다른 하나는 100% S로 향하므로 둘을 완벽하게 구분해낼 수 있게 된다.

따라서 둘을 나누어 봄으로써 하나의 큐빗에 좀 더 깊은 정보를 담을 수 있다.

그런데 현실세계는 2차원이 아니라 3차원이다. 따라서 이 방향을 표시하는 데에는 3차원 벡터가 좀 더 적합할 것이다.

그럼에도 2차원 벡터를 사용하는 이유는 Complex Number i를 도입하여 복소공간을 이용해서 2차원벡터에서 3차원을 표시하기 때문이다. 따라서 아래와 같은 표기를 또 사용할 수 있다.

$\mid i \rangle = \frac{1}{\sqrt{2}} \mid 0 \rangle + \frac{i}{\sqrt{2}} \mid 1 \rangle $ ,$\mid -i \rangle = \frac{1}{\sqrt{2}} \mid 0 \rangle - \frac{i}{\sqrt{2}} \mid 1 \rangle$

이를 함께 활용하면 양자상태는 아래와 같이 정리된다.

이를 Bloch Sphere Representation이라고 말한다.

결국 종합해서 양자상태는 아래와 같은 일반화된 폼을 가진다.

$\mid \psi\rangle = \cos \theta \mid 0 \rangle + \sin \theta e^{i \phi} \mid 1 \rangle (; a^2 + b^2 =1)$

여기서 $e^{i \phi}$는 norm이 1인 complex number이며 특별히 양자의 위상(Phase)라고 부른다. Complex Number를 이용한 복소공간에 대해서는 다른 포스팅에서 한번 살펴보도록 하겠다.


여기까지 양자컴퓨터의 개념과 기본 단위인 Qubit의 특성 및 표기법에 대해서 살펴봤다. 다음 포스팅에서는 기본적인 양자 게이트와 이를 활용한 기본적인 Circuit에 대해서 다뤄보도록 하겠다.


Sutor, R. (2019). Dancing With Qubits. Birmingham,UK:Packt
Bernhardt, C. (2019). Quantum computing for everyone. Boston, Massachusetts:The MIT Press