양자 컴퓨팅의 큐비트
비트가 기존 컴퓨팅에서 정보의 클래식 개체인 것처럼 큐비트(양자 비트)는 양자 컴퓨팅에서 정보의 클래식 개체입니다. 이에 대한 이해를 돕기 위해 이 문서에서는 가장 간단한 예인 단일 큐비트의 예를 살펴봅니다.
큐비트 표시
비트 또는 이진수는 $0$ 또는 $1$을 값으로 가질 수 있지만 큐비트는 $0$, $1$ 또는 $0$ 및 $1$의 양자 중첩을 값으로 가질 수 있습니다.
단일 큐비트의 상태는 단위 표준의 2차원 열 벡터로 설명할 수 있습니다. 즉, 해당 항목의 제곱 크기는 1$로 합산$되어야 합니다. 양자 상태 벡터라고 하는 이 벡터는 단일 비트가 이진 변수의 상태를 설명하는 데 필요한 모든 정보를 가지고 있는 것처럼 1큐비트 양자 시스템을 설명하는 데 필요한 모든 정보를 가지고 있습니다. 양자 컴퓨팅에서 벡터 및 행렬의 기본 사항에 대해서는 벡터 및 행렬을 참조 하세요.
노름 $1$을 사용하는 실수 또는 복소수의 모든 2차원 열 벡터는 큐비트가 가지고 있는 가능한 양자 상태를 나타냅니다. 따라서 $\begin{bmatrix} 및 \alpha가 \\^2 + \beta^2 \end{bmatrix}$ 1$\alpha$을 충족하는 복소수인 경우 $\beta$$|\alpha||\beta|=$는 큐비트 상태를 나타냅니다.
큐비트를 나타내는 유효한 양자 상태 벡터의 몇 가지 예는 $\begin{bmatrix} 1 \\ 0 \end{bmatrix}$ 및 $\begin{bmatrix} 0 \\ 1 \end{bmatrix}$. 이러한 두 벡터는 원하는 큐비트의 상태를 설명하는 벡터 공간에 대한 기저를 형성합니다. 즉, 양자 상태 벡터는 이러한 기본 벡터의 합계로 작성할 수 있습니다. 특히 벡터 $\begin{bmatrix} x \\ y \end{bmatrix}$는 $x \begin{bmatrix} 1 \\ 0 \end{bmatrix} + y \begin{bmatrix} 0 \\ 1 \end{bmatrix}$로 작성될 수 있습니다. 이러한 벡터의 회전은 큐비트에 대해 완벽하게 유효한 기저 역할을 하지만, 이 특정 벡터가 선택되고 이를 계산 기저라고 부릅니다.
이러한 두 양자 상태는 클래식 비트, 즉 $0$ 과 $1$의 두 상태에 해당하도록 수행됩니다. 표준 규칙은
$$0\equiv\begin{bmatrix} 1 \\ 0 \end{bmatrix}$$$$1 \equiv\begin{bmatrix} 0 \\ 1 \end{bmatrix}$$
이와 반대로 선택하는 것도 가능합니다. 따라서 가능한 단일 큐비트 양자 상태 벡터의 무한 수에서 두 개만 클래식 비트의 상태에 해당합니다. 다른 모든 양자 상태는 그렇지 않습니다.
큐비트 측정
설명되는 큐비트를 나타내는 방법, 측정 개념을 논의하여 이러한 상태가 나타내는 것에 대한 직관을 얻을 수 있습니다. 측정은 두 가지 클래식 상태 $\begin{bmatrix} 1 \\ 0 \end{bmatrix}$ or $\begin{bmatrix} 0 \\ 1 \end{bmatrix}$ 중 하나로 양자 상태를 즉시 축약해서 큐비트를 “살펴보는” 비공식적인 개념에 해당합니다. 양자 상태 벡터 $\begin{bmatrix}\alpha\\\beta\end{bmatrix}$에서 제시한 큐비트가 측정되면, 확률이 $^2$인 $|\alpha|0$의 결과와 확률이 $^2$인 $|\beta|1$의 결과를 얻습니다. 결과 $0$에서 큐비트의 새 상태는 $\begin{bmatrix} 1 \\ 0 \end{bmatrix}$, 결과 $1$에서 해당 상태는 $\begin{bmatrix} 0 \\ 1 \end{bmatrix}$입니다. 정규화 조건 $^2 + $^2 $|\alpha| 1|\beta|로 인해 확률의 합은 =1$이 됩니다.
또한 이 측정 속성은 양자 상태 벡터의 전체 부호가 관련이 없다는 것을 의미합니다. 벡터에 반대 부호를 붙이는 것은 $\alpha\rightarrow -\alpha$ 및 $\beta\rightarrow -\beta$에 상응합니다. 0$과 $1$을 측정할 $확률은 용어의 제곱 크기에 따라 달라지므로 이러한 기호를 삽입해도 확률은 변경되지 않습니다. 이러한 단계는 일반적으로 "전역 단계"라고 하며 보다 일반적으로 $\pm 1{이 아닌 \phi}$e^$i $ 형식일 수 있습니다.
측정의 마지막 중요한 속성은 모든 양자 상태 벡터가 반드시 손상되지는 않는다는 것입니다. 클래식 상태 $\begin{bmatrix}0\\에 해당하는 상태 \end{bmatrix}$ 1 $ 0 $의 큐비트로 시작하는 경우 이 상태를 측정하면 항상 결과 $0$이 나오며 양자 상태는 변하지 않습니다. 이러한 점에서 클래식 비트만 있는 경우(예: 큐비트가 $\begin{bmatrix}1 \\ 0 \end{bmatrix}$ 또는 $\begin{bmatrix}0 \\ 1 \end{bmatrix}$) 측정으로 인해 시스템이 손상되지 않습니다. 즉, 클래식 컴퓨터에서 수행할 수 있는 것처럼 클래식 데이터를 복제하고 양자 컴퓨터에서 조작할 수 있습니다. 그러나 두 상태에 정보를 한 번에 저장하는 기능은 양자 컴퓨팅을 고전적으로 가능한 것 이상으로 높이고 양자 데이터를 무차별적으로 복사하는 능력의 양자 컴퓨터를 추가로 강탈하는 것입니다. 복제 금지 정리도 참조하세요.
Bloch 구를 사용하여 큐비트 및 변환 시각화
큐비트는 ‘$’ 표현을 사용하여 $3D로 나타낼 수도 있습니다. Bloch 구는 단일 큐비트 양자 상태(2차원 복합 벡터)를 3차원 실제 값 벡터로 설명하는 방법을 제공합니다. 이는 단일 큐비트 상태를 시각화하고 다중 큐비트 상태를 이해하는 데 매우 중요한 추론을 개발할 수 있기 때문에 중요합니다(슬프게도 블로흐 구 표현이 분해되는 경우). 블로흐 구는 다음과 같이 시각화할 수 있습니다.
이 다이어그램의 화살표는 양자 상태 벡터가 가리키는 방향을 보여 줍니다. 화살표의 각 변환은 카디널 축 중 하나에 대한 회전으로 간주될 수 있습니다. 회전 시퀀스로서 양자 계산을 고려하는 것은 강력한 직관력이지만, 이 직관력을 사용하여 알고리즘을 설계하고 설명하는 것은 어렵습니다. Q# 이러한 회전을 설명하는 언어를 제공하여 이 문제를 완화합니다.
단일 큐비트 작업
양자 컴퓨터는 양자 상태 벡터의 회전을 에뮬레이트할 수 있는 범용 양자 게이트 집합을 적용하여 데이터를 처리합니다. 이러한 범용성 개념은 입력 비트의 모든 변환을 유한 길이 회로를 사용하여 수행할 수 있는 경우 게이트 집합이 범용으로 간주되는 기존(예: 클래식) 컴퓨팅에 대한 보편성 개념과 비슷합니다. 양자 컴퓨팅에서 큐비트에 대해 수행할 수 있는 유효한 변환은 유니터리 변환 및 측정입니다. ‘수반 연산’ 또는 켤레 복소수 전치는 양자 변환을 반전하는 데 필요하므로 양자 컴퓨팅에서 매우 중요한 부분입니다.
단일 큐비트 작업 또는 단일 큐비트 양자 게이트는 클리포드 게이트와 비클리포드 게이트의 두 가지 범주로 분류할 수 있습니다. 비클리포드 게이트는 T$ 게이트(\pi/8$ 게이트라고도 함)로$만 $구성됩니다.
$$ T=\begin{bmatrix} 1 & 0 \ 0 & e^{i\pi/4}\end{bmatrix}. $$
기본적으로 포함되는 단일 큐비트 클리포드 게이트의 표준 집합은 다음을 Q#포함합니다.
$$ H=\frac{{1}{\sqrt{{2}}\begin{bmatrix} 1 & 1 \ 1 &-1 \end{bmatrix}, \qquad S =\begin{bmatrix} 1 & 0 \ 0 & i \end{bmatrix}= T^2, \qquad X=\begin{bmatrix} 0 & 1 \ 1& 0 \end{bmatrix}= HT^4H, $$
$$ Y =\begin{bmatrix} 0 & -i \ i & 0 \end{bmatrix}=T^2HT^4 HT^6, \qquad Z=\begin{bmatrix}1& 0\ 0&-1 \end{bmatrix}=T^4입니다. $$
여기서 작업 $X$, $Y$ 및 $Z$는 특히 자주 사용되며 제작자 볼프강 파울리의 이름을 따서 Pauli 연산자라고 명명됩니다. 비클리포드 게이트( $T$ 게이트)와 함께 이러한 연산은 단일 큐비트에서 모든 단위 변환을 근사화하도록 구성할 수 있습니다.
위의 경우는 스택 논리 수준에서의 연산을 설명하는 데 가장 많이 사용되는 기본 게이트에 해당하지만(논리 수준을 양자 알고리즘의 수준으로 간주), 함수 설명 수준에 가까운 연산과 같이 알고리즘 수준에서 보다 덜 기초적인 연산을 고려하는 것이 편리한 경우가 많습니다. 다행히 Q# 상위 수준 단위를 구현하는 데 사용할 수 있는 메서드도 있으며, 이를 통해 모든 항목을 클리포드 및 $T$ 게이트로 명시적으로 분해하지 않고도 상위 수준 알고리즘을 구현할 수 있습니다.
이러한 기본형 중 가장 간단한 것은 단일 큐비트 회전입니다. 세 개의 단일 큐비트 회전은 일반적으로 R_x, $R_y$ 및 $R_z$$ 고려$됩니다. 예를 들어 회전 $R_x (\theta)$의 동작을 시각화하기 위해 블로흐 구면의 $x$축 방향을 따라 오른쪽 엄지를 가리키고 $\theta/2$라디안 각도로 손으로 벡터를 회전한다고 가정합니다. 2의 $이 혼란스러운 요소는 직교 벡터가 $블로흐 구에 그려질 때 180^\circ$ 떨어져 있지만 실제로$는 90^\circ$ 정도가 기하학적으로 떨어져 있다는 사실에서 발생$합니다. 해당하는 단위 행렬은 다음과 같습니다.
$$ \begin{align*}& R_z(\theta) = e^{-i\theta Z/2}=\begin{bmatrix} e^{-i\theta/2}& 0\\ 0& e^{i\theta/2}\end{bmatrix}, \\& R_x(\theta) = e^{-i\theta X/2}= HR_z(\theta)H =\begin{bmatrix} \cos(\theta/2) & -i\sin(\theta/2)\\ -i\sin(\theta/2) & \cos(\theta/2) \end{bmatrix}, \\& R_y(\theta) = e^{-i\theta Y/2}= SHR_z(\theta)HS^\dagger=\begin{bmatrix} \cos(\theta/2) & -\sin(\theta/2)\\ \sin(\theta/2) & \cos(\theta/2) \end{bmatrix}. \end{맞춤*}$$
세 개의 회전을 함께 결합하여 3차원으로 임의 회전을 수행할 수 있는 것처럼, 블로흐 구 표현에서 모든 단위 행렬을 세 개의 회전 시퀀스로 작성할 수 있음을 알 수 있습니다. 구체적으로 모든 유니터리 행렬 $U$에 대해 $\alpha,\beta,\gamma,\delta$가 존재하며 그 결과 $U= e^{i\alpha} R_x(\beta)R_z(\gamma)R_x(\delta)$입니다. 따라서 $\theta$에서 모든 값을 취할 수 있으므로 $R_z(\theta)$ 및 $H$가 불연속 집합이 아니더라도 유니버설 게이트 집합을 형성합니다. 이러한 이유로 양자 시뮬레이션의 애플리케이션으로 인해 이러한 연속 게이트는 양자 계산, 특히 양자 알고리즘 디자인 수준에서 매우 중요합니다. 내결함성 하드웨어 구현을 달성하기 위해 궁극적으로 이러한 회전을 근사하는 불연속 게이트 시퀀스로 컴파일됩니다.