양자정보과학, 나아가 양자역학을 이해하기 위해선 선형대수학의 벡터vector, 행렬matrix에 관한 지식과 이에 적용되는 연산operator들에 대해 이해가 필요합니다. 예시로 이 문서의 양자 관련 모든 부분에서 힐베르트 공간Hilbert space에 대한 상세한 정의를 포함하지 않아요. 복소수 집합을 C로 표현합니다. 이는 모두 힐베르트 공간의 양자역학적 표현이기 때문입니다. 실수는 R 공간에 존재하고, 복소수는 C로 표현할게요.
또한 우리는 양자역학의 불확정성 원리uncertainty principle같은 기본적인 특성에 대해 논의하지 않을 겁니다. 이는 개별 원자가 어느 한 부분으로 이동한다고 할 때, 그 위치를 알면 운동량을 알 수 없고, 반대로 운동량을 알면 위치를 알 수 없는 신비로운 특성입니다.
여러분이 고전계에서 이루어지는 정보 처리 방식에 태반을 알고 있다면 이해하기 쉬울거라 생각됩니다. 양자계quantum system는 0과 1이라는 이진수가 중첩된 형태로 정보를 처리하며, 현대의 기술로 이를 읽어내려면 고전계classical system 방식으로 접근해야 해요. 따라서 우리가 논의하는 방향은 입력이 양자계이고, 출력이 고전계입니다.
우리가 오늘날 사용하는 멋진 컴퓨터는 비트bit라는 정보의 척도를 가지죠. 이 클로드 섀넌Claude Shannon의 멋진 정의는 일관된 모든 것의 기반으로 동작합니다. 단순하게 비트는 마치 전등 스위치와 같아서 켜짐(1) 또는 꺼짐(0)이라는 두 가지 명확한 상태 중 하나만을 가집니다.
컴퓨터 과학과 공학은 이 단순한 원칙을 바탕으로 눈부신 발전을 이루었지만, 현실의 모든 문제를 효율적으로 해결하진 못 합니다. 특히 신약 개발을 위한 분자 구조 시뮬레이션이나, 초거대 데이터 속에서 최적의 해를 찾는 문제는 현존하는 가장 빠른 슈퍼 컴퓨터로도 풀기 어려운 영역으로 남아있어요.
양자정보과학quantum information science은 바로 이 한계를 넘어서기 위해 등장한 새로운 패러다임입니다. 이 녀석은 컴퓨터 과학을 '미시 세계를 지배하는 양자역학의 원리'위에 다시 새우려는 시도예요. 단순히 더 빠른 부품을 만드는 것이 아니라, '정보를 처리하는 규칙' 자체를 바꾸는 근본적인 혁신이라고 할 수 있죠. 컴퓨터 공학적 관점에서 이는 양자 현상을 제어하는 새로운 하드웨어를 설계하고, 그 위에서 동작할 '전례 럾는 알고리즘'을 개발하는 것을 목표로 하는 분야입니다.
우리는 이 시점에서 한 가지 질문을 던질 수 있어요. 고전적 정보를 표현할 때는 비트를 사용한다고 헀죠. 그렇다면 '양자정보의 척도는 무엇일까요?'
영저정보는 양자 비트quantum bit, 또는 줄여서 큐비트qubit를 척도로 삼아요. 큐비트는 비트인 0과 1이 중첩superposition된 상태로, 측정measurement 시 둘 중 하나의 상태로 확정(관측)됩니다. 아직은 이 부분에 대해 방대하게 설명하진 않을게요. 단순히 고전 비트, 즉 크비트cbit는 다음과 같이 큐비트로 대응시킬 수 있어요.
0→∣0⟩,1→∣1⟩
세로 막대기와 꺽쇠 괄호만 빼면 이 표현을 켓ket 이라고 표기할 수 있습니다. 이 표현은 폴 디랙Paul Dirac이 제안한 브라-켓 표기법bra-ket notation이고, 이름이 충분히 우습기 때문에 어느 학자는 큐비트, 벡터 또는 상태state, 아니면 이 둘을 조합한 '상태벡터' 라고도 표현해요. 이 문서는 각 표현들을 번갈아가면서 사용하지만, 상황에 맞게 적절히 사용하니 이해하는 데 문제는 없을 겁니다.
크비트가 큐비트로 대응된 결과는 계산 기저computational basis를 가진 상태로, 양자정보이론에서 특정 상태의 확률을 결정하기 위해 사용됩니다. 직관적으로 상태 ∣0⟩은 0이 발견된 것이고, 상태 ∣1⟩은 1이 발견된 것이라고 할 수 있어요.
양자역학의 법칙에 따르면 각 계수 α와 β는 절댓값 제곱하여 ∣0⟩ 상태와 ∣1⟩ 상태의 발견 확률을 구할 수 있습니다. 이를 확률 진폭probability amplitude이라고 해요. 즉, ∣α∣2는 ∣ψ⟩가 ∣0⟩ 상태에 있을 확률 확률 진폭(상태를 발견할 확률)이고, ∣β∣2는 ∣ψ⟩가 ∣1⟩ 상태에 있을 확률 진폭이예요. 이 개념에 대해서는 이후 측정에 대해 논의할 때 좀 더 자세히 알아볼게요.
선형대수학적으로 큐비트를 벡터로 표현하여 계수 α와 β를 스칼라scalar라고 표현할 수 있어요.
앞서 언급한 브라-켓 표기법을 사용하여 ∣ψ⟩과 같은 큐비트 상태를 만들었습니다. 이 상태는 선형대수학적으로 열벡터row vector 또는 2차원 힐베르트 공간 C2의 한 벡터임을 의미합니다. 위에 정의한 큐비트 ∣ψ⟩를 다음과 같이 열벡터로 표현할 수 있어요.
∣ψ⟩=[αβ]
∣0⟩의 계수 α는 첫째 줄에 쓰고 ∣1⟩의 계수 β를 둘째 줄에 쓰면 열벡터 표기법이 됩니다. 이렇게 켓은 열벡터로 표현 가능함을 알았네요.
좀 더 구체적으로 설명하자면 큐비트는 C2, 즉 2차원 힐베르트 공간에만 포함된다고 할 수 없어요. 복합계composite system와 같이 여러 상태가 복합적으로 구성된 계를 가진 큐비트는 C2n 힐베르트 공간에 포함되어 있다고 말할 수 있습니다. 직관적으로 계가 복합적으로 얽히기 때문에 n차원임이 엄밀합니다. 복합계 개념을 통해 계산 기저가 C2 공간, 즉 단일계single system의 상태임을 이해할 수 있습니다.
켓 표현을 열벡터로 표현하는 데에는 좀 더 자유로움을 보여드릴게요. Cn의 원소들을 ∣a⟩,∣b⟩,∣c⟩로 간단하게 표기할 수 있습니다. 이 벡터의 원소들을 적을 때는 a1,…,an와 같은 방식으로 숫자를 나열하는 n차원 열벡터로 간단히 표기할 수 있습니다.
한 집합의 벡터들을 선형 결합하여 얻을 수 있는 모든 결과 벡터의 집합을 그 벡터 집합이 생성span한다고 말합니다. 수식으로는 벡터 집합 {∣v1⟩,…,∣vn⟩}에 대해, 다음과 같이 표현해요.
span{∣v1⟩,…,∣vn⟩},{i=1∑nαi∣vi⟩∣αi∈C}
이 집합은 ∣v1⟩,…,∣vn⟩ 벡터들의 선형 결합으로 만들 수 있는 모든 벡터를 포함해요. 모든 2차원 벡터는 α∣0⟩+β∣1⟩ 형태로 표현 가능하여, span{∣0⟩,∣1⟩}=C2가 됩니다. 즉, {∣vi⟩}가 어떤 공간을 생성spanning한다고 하면, 그 벡터들의 선형 결합만으로 해당 공간의 모든 벡터를 표현할 수 있음을 의미해요.
직관적으로, 어떤 벡터 집합 ∣v1⟩,∣v2⟩,…,∣vn⟩이 주어졌을 때 이 벡터들을 이용해 벡터공간에 속한 모든 벡터 ∣v⟩를 표현할 수 있다면 이 집합 {∣vi⟩}가 주어진 벡터공간을 생성하는 겁니다. 예를 들어 3차원 벡터공간 C3를 생각해봅시다. 다음과 같은 방식으로 이 3차원 공간의 모든 열벡터를 표현할 수 있습니다.