이야기로 풀어보는 양자 정보 기술 - 양자 컴퓨터 #1
드디어 양자 컴퓨터 설명을 시작한다. 이 글을 읽기 전에 앞서의 모든 글들을 읽어 보기를 권고한다. 양자 중첩이나, 얽힘, 파동함수의 붕괴 등을 알지 못하면, 역시 피상적으로 양자 컴퓨터를 이해하게 되고 오해하기 쉬워진다.
양자역학이 일반 고전물리학과는 판이하게 다르기 때문에, 엔지니어에게 양자 컴퓨터만큼 다양한 오해를 갖는 개념도 드문것 같다. 대부분 엄청나게 빠른 인텔 호환 컴퓨터(?)를 상상하지만, 결론적으로는 양자역학 현상을 이용해 매우 특수한 계산을 빠르게 하는 장치이고, 가정용과는 거리가 멀다. 실제 쓰게 되더라도 아마 특수한 곳(특수 냉각기가 설치된 데이터 센터)에 설치되어 온라인으로 사용하게 될 소지가 크다. 클라우드 사업자들이 오히려 나서는 이유다.
우전 양자 컴퓨터를 설명하기 위해 먼저 고전의 컴퓨터라는 것을 설명해보자. 컴퓨터(소위 튜링 머신)의 본질에 접근해보면, 그것은 어떤 입력을 받아 변형하여 어떤 출력을 내는 장치이며 그 안에는 저장장치를 같이 가지고 있다.
01010110...의 일련의 신호를 받아서 그 신호를 원하는 대로 바꿔서 보여준다. 이 바꿈을 유도하는 것이 바로 프로그램이다. 현대의 컴퓨터는 이러한 '계산'을 위해서 전기 신호의 높낮이(0V, 5V)로 0과 1을 표현하고, 논리 소자를 통해 이를 변형한다. 즉 핵심에는 전기(전자의 흐름)가 있고, 트랜지스터의 조합을 통해 특정 입력을 특정 출력으로 바꾼다. 그리고 이것을 일련의 소프트웨어로 가능하게 하여 프로그래밍을 교체하면, 그 연산 특성을 바꿀 수 있는게 바로 컴퓨터다. 그렇다. 간단히 설명하면 그게 전부다. 어떤 입력이 있고, 내가 유도한 어떤 변화과정이 있어서, 그 흐름을 타고 출력 신호가 나온다.
이러한 구조의 근원은 아래와 같은 기본적인 변환을 하는 논리 소자를 다수로 배치하여 구성할 수가 있다는 점이고, 실제로 이 논리 소자는 트랜지스터를 반복 사용하여 특정 전기가 들어갔을때 특정 출력을 하도록 만들 수 있다.
이렇게 현대의 컴퓨터는 전기라는 자연 현상을 사용하고 있다.
양자 컴퓨터는 어떨까? 양자는 위의 0과 1인 bit에 대비해 qubit을 가진다고 상정할 수 있다. 그런데 이 qubit의 신기한 점은 일단 생성되면, 관측되기 전에는 확률로만 존재하는 녀석이다. 물론 관측되지 않을때까지만 이 상태를 유지할 수 있다. 그래서 여러가지 방식이 있긴 하지만, 결잃음이 발생하지 않게 극도로 냉각시키고 격리시킨다.
이것을 아래 그림처럼 많이 표기한다.
Bit는 명시적으로 0과 1로 처리되는데 반하여(전기의 흐름/미흐름) 이 Qubit은 아직 확정되지 않은 양자 상태를 의미한다.
그리고 미확정 상태이더라도, 그 상태에 변화를 가할 수는 있다. 예를들면 전자의 스핀을 바꾸거나, 편광의 상태를 바꾼다. 이것은 위의 고전 컴퓨터에서의 논리소자 처럼 무언가 현재 상태를 가공할 수는 있게 만든다. 상태는 몰라도 바꿔주기만 하면 논리 소자처럼 변형할 수 있다. 내가 원하는 과정을 거치게 할 수 있다. 이것은 단순히 이런 변환 외에도 얽힘을 통해 여러개의 양자가 서로 상호작용을 하여 어떤 결과물을 내도록 할 수 있다. 그것도 단 한번의 연산으로 그 모든 양자들의 상호작용의 결과를 볼 수 있다. 이것을 고전 컴퓨터로 시뮬레이션하려면 굉장히 복잡한 과정을 거쳐야 한다. 그래서 양자 컴퓨터가 빠를 수 있다. 1 cycle로 엄청난 양의 계산이 가능한 셈이다.
지금까지 설명한 내용을 전체적으로 비교해보면 아래의 그림과 같다. 맨 하단의 입력(INPUT)이 올라와서 출력(OUTPUT)으로 가는 동안 고전 컴퓨터는 논리 소자(Gates)로 정해진 입력을 변환하는데, 양자 컴퓨터는 양자 상태에서 출발해서 양자 상태를 변형(스핀 변형 등)하고 맨 마지막에는 '관측'한다.
관측이라니? 왜 단순 출력이 아니고 관측인가? 대체 이것이 다 무엇인가?
초기에 양자 컴퓨터가 제안되었던 것은, 양자 상태의 시뮬레이션을 위한 것이었다(지금도 양자 컴퓨터의 직접 응용분야 중 하나로 꼽히며 양자 컴퓨터의 선구자격인 리차드 파인만의 고안 목적이다.). 몇가지 입자의 조합된 행동들을 시뮬레이션 해야하는데, 입자A의 상태가 다양하고 그리고 입자B의 상태가 역시 다양한데, 다수의 입자의 상태 조합이 천문학적으로 많아지게 된다. 따라서 이런 상태들이 연결되게 되면, 다양한 입자들이 연속적으로 행동하는 것을 시뮬레이션하기 위해 지나치게 많은 연산을 필요로 하며, 고전 컴퓨터로는 제대로된 시뮬레이션을 하기 어렵게 된다. 이 경우에는 흔히들 대개 근사치를 쓰게 마련인데, 얽힌 양자가 많아지면, 이 근사치로 계산한값과 실제가 터무니없게 차이가 난다고 한다.
즉 양자를 직접 탐구하기 위해서는 실제 양자 현상을 반영하는 시뮬레이션을 행할 수 있는 위의 장치가 필요한 것이고 이를 양자 컴퓨터라고 불렀다는 의미다.
이렇게 일련의 입자들의 복합한 변환들을, 상기 양자 컴퓨터가 구성하여 최종 관측해서 알아낼 수 있다는 것은 여기서 이해하고 넘어가자. 다만 언급했듯이 이 과정에서 앞서 양자역학에서 논의되던 결 잃음을 주의해야 한다. 결 잃음은 qubit의 상태를 확률붕괴시킨다. 더이상 확률로 존재하지 않는다. 따라서 양자 회로(?)를 거치는 동안에는 결잃음이 발생해서는 안된다. 최종 우리가 관측될때까지 확률붕괴 되서는 안된다. 그래야만 의도된 결과를 얻을 수 있다. 결 잃음에 대한 앞서 글에서의 실험을 상기해본다면, 그 조건이라는 것이 절대온도에 가까운 온도를 우선 의미하기 때문에, 이러한 제어가 쉽지 않을것이라는 것은 이제 가늠해 볼 수 있겠다. (결을 잃지 않기 위해서 이 중간 연산 과정에서 전 우주가 관측하지 못하도록 유지 해야한다.)
다음시간에는 이 양자 시뮬레이터가 관측이라는 것을 통해 어떻게 고전 컴퓨터가 해내지 못하는 빠른 연산을 일부 가능하게 하는지 살펴보자.