Dirac 표기법

Dirac 표기법은 양자 역학의 상태를 표현하는 데 적합하게 설계된 언어입니다. 이 문서의 예시는 양자 개념을 간결하게 표현하는 데 유용하게 활용할 수 있습니다.

열 벡터 표기법의 한계

열 벡터 표기법은 선형 대수에서 일반적이지만, 특히 여러 큐비트를 처리할 때 양자 컴퓨팅에서 번거로울 수 있습니다. 예를 들어 $\psi$를 벡터로 정의하면 $\psi$가 행 벡터인지 열 벡터인지가 명확하지 않습니다. 따라서 $\phi$ 및 $\psi$가 벡터이면 $\phi$ 및 $\psi$의 형태가 컨텍스트에서 불분명할 수 있으므로 $\phi\psi$가 정의되었는지도 분명하지 않습니다. 벡터의 형태에 대한 모호성 외에도, 선형 대수 표기법을 사용하여 간단한 벡터를 표현하는 것조차 번거로울 수 있습니다. 예를 들어 각 큐비트가 값 $0$을 취하는 $n$ 큐비트 상태를 설명하려는 경우 공식적으로 상태를 다음과 같이 표현합니다.

$$\begin{bmatrix}1 \\ 0 \end{bmatrix}\otimes\cdots\otimes\begin{bmatrix}1 \\ 0 \end{bmatrix}. $$

벡터가 기하급수적으로 큰 공간에 있기 때문에 이 텐서 제품을 평가하는 것은 실용적이지 않습니다. 이 때문에 사실 이 표기법은 이전 표기법을 사용하여 제공할 수 있는 최상의 상태 설명입니다.

Dirac 표기법의 벡터 유형

Dirac 표기법에는 bra 벡터와 ket의 두 가지 벡터 유형이 있으며 이들이 함께 배치될 때 braket 또는 내적을 형성하기 때문에 이러한 이름이 붙었습니다. $\psi$가 열 벡터이면 Dirac 표기법으로 $\ket{\psi}$로 기록할 수 있습니다. 여기서 $\ket{\cdot}$는 이것이 단위 열 벡터, 예를 들어 ket 벡터임을 나타냅니다. 마찬가지로 행 벡터 $\psi^\dagger$는 $\bra{\psi}$로 표현됩니다. 즉 $\psi^\dagger$는 항목 차원의 켤레 복소수를 $\psi$의 전치 요소에 적용하여 획득됩니다. bra-ket 표기법은 $\braket{\psi|\psi}$가 그 자체로 정의상 $1$인 $\psi$ 벡터의 내적임을 직접적으로 암시합니다.

더 일반적으로 $\psi$ 및 $\phi$가 양자 상태 벡터라면 내적은 $\braket{\phi|\psi}$입니다. 이 내적은 $\ket{\psi}$ 상태가 $\ket{\phi}$가 되는 측정 확률이 $|\braket{\phi|\psi}|^2$임을 암시합니다.

다음 규칙은 0 및 1 값을 인코딩하는 양자 상태를 설명하는 데 사용됩니다(단일 큐비트 계산 기저 상태).

$$\begin{bmatrix} 1 \\ 0 \end{bmatrix}=\ket{{0},\qquad\begin{bmatrix} 0 \\ 1 \end{bmatrix}=\ket{{1}. $$

예: Dirac 표기법을 사용한 Hadamard 연산을 나타냄

다음 표기법은 종종 Hadamard 게이트를 $\ket{0}$ 및 $\ket{1}$에 적용한 결과인 상태를 설명하는 데 사용됩니다. 이러한 상태는 Bloch 구의 $+x$ 및 $-x$ 방향의 단위 벡터에 해당합니다.

$$\frac{1}{\sqrt{{2}}\begin{bmatrix} 1 \\ 1 \end{bmatrix}=H\ket{0}=\ket{+},\qquad\frac{1}{\sqrt{{2}}\begin{bmatrix} 1 \\ -1 \end{bmatrix}=H\ket{{1}=\ket{{-} . $$

또한 이러한 상태는 $\ket{0}$ 및 $\ket{1}$의 합으로 Dirac 표기법을 사용하여 확장할 수 있습니다.

$$\ket{+}=\frac{{1}{\sqrt{2}}(\ket{0} + \ket{1}),\qquad\ket{{-}=\frac{{1}{\sqrt{{2}}(\ket{{0} - \ket{1}). $$

계산 기저 벡터

이는 이러한 상태를 종종 ‘계산 기저’라고 하는 이유를 보여 줍니다. 모든 양자 상태는 항상 계산 기저 벡터의 합계로 표현될 수 있으며 이러한 합계는 Dirac 표기법을 사용하여 쉽게 표현됩니다. $\ket{+}$ 및 $\ket{-}$ 상태가 양자 상태의 기저를 형성한다는 점에서 정반대의 경우도 마찬가지입니다. 다음과 같은 사실에서 이를 확인할 수 있습니다.

$$\ket{{0}=\frac{1}{\sqrt{2}}(\ket{+} + \ket{-}),\qquad\ket{{1}=\frac{{1}{\sqrt{{2}}(\ket{+} - \ket{-}). $$

Dirac 표기법의 예로 $0과 $1$ 사이의 내적인 $\braket{0 | 1$}$ braket을 고려합니다. 이는 다음과 같이 작성될 수 있습니다.

$$\braket{0 | 1 1 &}=\begin{bmatrix} amp; 0 \end{bmatrix}\begin{bmatrix}0\\ 1\end{bmatrix}=0. $$

이 예제에서는 $\ket{{0}$ 및 $\ket{{1}$이 직교 벡터임을 나타내며, 이는 $\braket{0 | 1}=\braket{1 | 0}=0$임을 의미합니다. 또한 정의상 $\braket{0 | 0}=\braket{1 | 1}=1$인데, 이 두 계산 기저 벡터를 정규 직교라고 할 수도 있습니다.

이러한 정형 속성은 다음 예제에서 사용됩니다. 상태가 $\ket{\psi}={\frac{3}{5}}\ket{{1} + {\frac{{4}{5}}\ket{0}$인 경우 $\braket{1 | 0}=0$이므로 $1$을 측정할 확률은 다음과 같습니다.

$$\big|\braket{1 |\psi}\big|^2=\left|\frac{{3}{5}\braket{1 | 1} +\frac{{4}{5}\braket{1 | 0}\right|^2=\frac{{9}{{25}. $$

텐서곱 표기법

Dirac 표기법은 암시적 텐서 제품 구조도 포함합니다. 이 구조는 양자 컴퓨팅에서 상관 관계가 없는 두 개의 양자 레지스터에 설명된 상태 벡터가 두 상태 벡터의 텐서곱이기 때문에 중요합니다. 양자 계산을 설명하려면 텐서곱 구조를 간결하게 설명하는 것이 중요합니다. 텐서곱 구조는 두 양자 상태 벡터 $\phi$ 및 $\psi$에 대해 $\psi\otimes\phi$를 $\ket{\psi}\otimes\ket{\phi}$로 쓸 수 있음을 내포합니다. 그러나 규칙에 따라 벡터 간에 $\otimes$ 쓰기가 필요하지 않으므로 $\ket{\psi}\ket{\phi}=\ket{\psi\phi}$를 쓸 수 있습니다. 벡터 및 텐서 곱에 관한 자세한 내용은 양자 컴퓨팅의 벡터 및 행렬을 참조하세요. 예를 들어 두 개의 큐비트가 0 상태로 초기화된 상태는 다음과 같습니다.

$$\ket{0}\otimes\ket{0}=\ket{{0}\ket{{0}=\ket{{00}=\begin{bmatrix} 1 \\ 0 \end{bmatrix}\otimes\begin{bmatrix} 1 \\ 0 \end{bmatrix}=\begin{bmatrix} 1 \\ 0 \\ 0 \\ 0 \end{bmatrix}. $$

마찬가지로, 정수 $p$에 대한 상태 $\ket{p}$는 이진 표현으로 정수 $p$를 인코딩하는 양자 상태를 나타냅니다. 예를 들어 부호 없는 이진 인코딩을 사용하여 숫자 $5$를 표현하려는 경우, 다음과 같이 동일하게 표현할 수 있습니다.

$$\ket{1}\ket{0}\ket{1}=\ket{101}=\ket{5}. $$

이 표기법 내에서 $\ket{0}$이 단일 큐비트 상태를 참조할 필요는 없으며, 오히려 $0$의 이진 인코딩을 저장하는 큐비트 레지스터를 참조합니다. 이러한 두 표기법 간의 차이점은 컨텍스트에서 명확합니다. 이 규칙은 다음과 같은 방법으로 작성할 수 있는 첫 번째 예제를 단순화하는 데 유용합니다.

$$\begin{bmatrix}1 \\ 0 \end{bmatrix}\otimes\cdots\otimes\begin{bmatrix}1 \\ 0 \end{bmatrix}=\ket{{0}\otimes\cdots\otimes\ket{0}=|0\cdots 0\rangle=\ket{{0}^{\otimes n}$$

여기서 $\ket{0}^{\otimes n}$은 $n$$\ket{0}$ 양자 상태의 텐서곱을 나타냅니다.

예: Dirac 표기법으로 중첩 설명

Dirac 표기법을 사용하여 양자 상태를 설명하는 방법의 또 다른 예로, 길이 $n의 가능한 모든 비트 문자열에 대해 동일한 중첩인 양자 상태를 작성하는 다음과 같은 방법을 고려합니다.$

$$ H^{\otimes n}\ket{0}=\frac{1}{2^{n/2}}\sum_{j=0}^{2^n-1}\ket{j}=\ket{+}^{\otimes n}. $$

여기에서 $n$비트의 합이 $0$에서 $2^{n}-1$까지인 이유가 궁금할 수도 있습니다. 먼저는 $n$비트가 취할 수 있는 $2^{n}$개의 구성이 있습니다. 1비트는 $2$개의 값을 가질 수 있지만 2비트는 $4$개의 값을 취한다는 사실에서 이를 알 수 있습니다. 일반적으로 이는 $2^n$개의 가능한 여러 비트 문자열이 있지만 이들 중 인코딩된 가장 큰 값은 $1\cdots 1=2^n-1$이며, 따라서 이것이 합계의 상한이 됩니다. 참고로, 이 예제에서는 $\ket{{0}^{\otimes n}=\ket{{0}$에 비유하여 $\ket{+}^{\otimes n}=\ket{+}$를 사용하지 않았습니다. 이 표기법 규칙은 모든 큐비트가 0으로 초기화된 계산 기준 상태에 대해 예약됩니다. 이러한 규칙은 이 경우 합리적이지만 양자 컴퓨팅 문헌에는 사용되지 않습니다.

Dirac 표기법으로 선형성 표현

Dirac 표기법의 또 다른 특징은 선형이라는 점입니다. 예를 들어 두 개의 복소수, $\alpha$ 및 $\beta$에 대해 다음과 같이 쓸 수 있습니다.

$$\ket{\psi}\otimes ( \alpha\ket{\phi} + \beta\ket{\chi})=\alpha\ket{\psi}\ket{\phi} + \beta\ket{\psi}\ket{\chi}.$$

즉, 상태 벡터 사이에 텐서곱을 취하는 것이 일반적인 곱셈처럼 보이도록 텐서곱 표기법을 Dirac 표기법으로 배포할 수 있습니다.

bra 벡터는 ket 벡터와 유사한 규칙을 따릅니다. 예를 들어, $\bra{\psi}\bra{\phi}$ 벡터는 $\psi^\dagger\otimes\phi^\dagger=(\psi\otimes\phi)^\dagger$ 상태 벡터와 동등합니다. ket 벡터 $\ket{\psi}$가 $\alpha\ket{0} + \beta\ket{1}$인 경우 이 벡터의 bra 벡터 버전은 $\bra{\psi}=\ket{\psi}^\dagger= (\bra{{0}\alpha^* +\bra{1}\beta^*)$입니다.

예를 들어 상태 측정을 위한 양자 프로그램을 사용하여 $\ket{\psi}=\frac{3}{5}\ket{{1} + \frac{4}{5}\ket{0}$ 상태를 $\ket{+}$ 또는 $\ket{{-}$로 측정할 확률을 계산하려 한다고 가정합니다. 그러면 디바이스에서 상태가 $\ket{-}$라고 출력할 확률은

$$|\braket{- |\psi}|^2=\left|\frac{{1}{\sqrt{{2}}(\bra{0} - \bra{{1})(\frac{3}{5}\ket{{1} + \frac{{4}{5}\ket{0}) \right|^2=\left|-\frac{3}{5\sqrt{{2}} + \frac{{4}{5\sqrt{2}}\right|^2=\frac{{1}{{50}.$$

확률을 계산하는 데 음수 기호가 표시되는 사실은 양자 간섭이 있다는 징후입니다. 이는 양자 컴퓨팅이 클래식 컴퓨팅보다 우위에 서게 되는 메커니즘 중 하나입니다.

ketbra 또는 외적

Dirac 표기법에서 논의할 만한 마지막 항목은 ketbra 또는 외적입니다. 외적은 Dirac 표기법 내에서 $\ket{\psi}\bra{\phi}$로 나타내며 ketbra라고 하기도 합니다. bra와 ket이 braket의 반대 순서로 발생하기 때문입니다. 외적은 행렬 곱셈을 통해 양자 상태 벡터 $\psi$ 및 $\phi$에 대해 $\ket{\psi}\bra{\phi}=\psi\phi^\dagger$로 정의됩니다. 이 표기법의 가장 간단하고 아마도 가장 일반적인 예는 다음과 같습니다.

$$\ket{0}\bra{{0}=\begin{bmatrix}1\\ 0 \end{bmatrix}\begin{bmatrix}1& 0 \end{bmatrix}=\begin{bmatrix}1 & 0\\ 0 & 0\end{bmatrix}\bra{1}=\qquad\ket{1}\begin{bmatrix}0\\ 1 \end{bmatrix}\begin{bmatrix}0& 1 \end{bmatrix}=\begin{bmatrix}0 & 0\\ 0 & 1\end{bmatrix}. $$

Ketbra는 고정 값에 양자 상태를 프로젝션하기 때문에 종종 프로젝터라고 합니다. 이러한 연산은 유니터리가 아니며 벡터의 노름을 보존하지 않으므로 양자 컴퓨터가 프로젝터를 결정적으로 적용할 수 없습니다. 그러나 프로젝터는 측정이 양자 상태에 대해 수행하는 작업을 잘 설명합니다. 예를 들어 $0$으로 $\ket{\psi}$ 상태를 측정하는 경우 상태가 측정 결과로 경험하는 변환은 다음과 같습니다.

$$\ket{\psi}\right화살표 \frac{(\ket{{0}\bra{{0})\ket{\psi}}{|\braket{0 |\psi}|}=\ket{{0},$$

상태를 측정하고 으로 검색한 경우 예상한 $\ket{0}$대로 입니다. 즉, 이러한 프로젝터는 양자 컴퓨터에서는 상태에 결정론적으로 적용될 수 없습니다. 대신 결과 $\ket{0}$이 고정된 특정 확률과 함께 표시되는 상황에서 무작위로 적용될 수는 있습니다. 이러한 측정이 성공할 확률은 다음 상태에서 양자 프로젝터의 기댓값으로 작성될 수 있습니다.

$$\bra{\psi} (\ket{0}\bra{0})\ket{\psi}=|\braket{\psi| 0}|^2, $$

이는 프로젝터가 측정 프로세스를 표현하는 새로운 방법을 제공한다는 것을 보여 줍니다.

대신, 다중 큐비트 상태의 첫 번째 비트를 $1$로 측정하는 것을 고려하는 경우에는 이 프로세스를 프로젝터 및 Dirac 표기법을 사용하여 편리하게 설명할 수도 있습니다.

$$P(\text{first qubit = 1})=\bra{\psi}\left(\ket{{1}\bra{{1}\otimes \mathbf{\mathbf{1}^{\otimes n-1}\right) . \ket{\psi} $$

여기에서 단위 행렬은 Dirac 표기법으로 다음과 같이 편리하게 작성할 수 있습니다.

$$\mathbf{1}=\ket{0}\bra{0}+\ket{1}\begin{bmatrix}\bra{{1}=1& 0\\ 0& 1 \end{bmatrix}. $$

두 개의 큐비트가 있는 경우에는 프로젝터를 다음과 같이 확장할 수 있습니다.

$$\ket{1}\bra{1}\otimes\id=\ket{{1}\bra{1}\otimes (\ket{{0}\bra{{0}+\ket{1}\bra{{1})=\ket{10}\bra{{10} + \ket{{11}\bra{{11}. $$

그러면 이것이 열 벡터 표기법을 사용한 다중 큐비트 상태의 측정 가능성에 대한 논의와 일치한다는 것을 알 수 있습니다.

$$ P(\text{첫 번째 큐비트 = 1})=\psi^\dagger (e_{10}e_{10}^\dagger + e_{{11}e_{{11}^\dagger)\psi=|e_{{10}^\dagger\psi|^2 + |e_{11}^\dagger\psi|^2, $$

이는 다중 큐비트 측정에 관한 논의 내용과 일치합니다. 그러나 이 결과를 다중 큐비트 사례로 일반화하는 것은 열 벡터 표기법보다는 Dirac 표기법을 사용해 표현하는 것이 약간 더 간단하며 이전의 처리 방식과 완전히 동일합니다.

밀도 연산자

Dirac 표기법을 사용해 표현하는 데 또 다른 유용한 연산자는 상태 연산자라고도 하는 밀도 연산자입니다. 양자 상태 벡터로서 밀도 연산자는 시스템의 양자 상태를 설명합니다. 그러나 양자 상태 벡터는 순수 상태만 나타낼 수 있지만 밀도 연산자는 혼합 상태도 나타낼 수 있습니다.

보다 일반적으로 지정된 행렬 $\rho$는 다음 조건이 충족되는 경우 유효한 밀도 연산자입니다.

  • $\rho$는 복소수 행렬입니다.
  • $\rho = \rho^{\dagger}$(즉, $\rho$는 Hermitian임)
  • $\rho$의 모든 고윳값 $p$는 $0 <= p <= 1$입니다.
  • $\rho$의 모든 고윳값 합계는 1입니다.

함께 이러한 조건은 $\rho$를 앙상블로 생각할 수 있음을 보장합니다. 양자 상태 벡터 $\ket{\psi}$에 대한 밀도 연산자는 $\rho =\sum_i p_i \ket{\psi_i}\bra{\psi_i}$ 형식을 사용하며 $\rho$의 고유 값 분해입니다. 그런 다음 $\rho$는 확률 } p_i }$의 앙상블 $\rho ={\ket{\psi_i}\text{을 설명합니다.

순수한 양자 상태는 단일 ket 벡터 또는 파동 함수를 특징으로 하는 상태이며 다른 양자 상태의 통계적 혼합(또는 볼록 조합)으로 작성할 수 없습니다. 혼합 양자 상태는 순수 상태의 통계적 앙상블입니다.

블로흐 구에서 순수 상태는 구 표면의 점으로 표현되는 반면 혼합 상태는 내부 지점으로 표시됩니다. 단일 큐비트의 혼합 상태는 구의 중심에서 대칭으로 표시됩니다. 상태의 순도는 구의 표면에 가까운 정도로 시각화할 수 있습니다.

상태를 벡터가 아닌 행렬로 나타내는 이 개념은 확률 계산을 나타내는 편리한 방법을 제공하고 동일한 형식주의 내에서 통계적 불확실성과 양자 불확실성을 모두 설명할 수 있기 때문에 종종 편리합니다.

밀도 연산자 $\rho$는 다음 경우에만 순수 상태를 나타냅니다.

  • $\rho$는 상태 벡터 $\rho=\ket{\psi}\bra{\psi}$의 외적으로 쓸 수 있습니다.
  • $\rho =\rho^2$
  • $tr(\rho^2)=1$

지정된 밀도 연산자 $\rho$가 순수에 얼마나 가까운지 알기 위해 $\rho^2$의 추적(즉, 대각선 요소의 합)를 볼 수 있습니다. 밀도 연산자는 $tr(\rho ^{2})=1$인 경우에만 순수 상태를 나타냅니다.

양자 상태와 동등한 Q# 게이트 시퀀스

양자 표기법 및 Q# 프로그래밍 언어에 대한 마지막 요지로서, 이 문서의 시작 부분에서 양자 상태는 양자 컴퓨팅에서 정보의 기본적인 개체라고 설명한 바 있습니다. 그러므로 Q#에는 양자 상태에 대한 개념이 없다는 사실에 놀랄 수 있습니다. 대신 모든 상태는 이를 준비하는 데 사용되는 연산에 의해서만 설명됩니다. 이전의 예제에서 이에 대해 잘 설명해 줍니다. 레지스터의 모든 양자 비트 문자열에 대해 균일한 중첩을 표현하는 대신, 결과를 $H^{\otimes n}\ket{0}$으로 나타낼 수 있습니다. 이 기하급수적으로 짧은 상태 설명은 클래식 방식으로 추론할 수 있는 장점이 있을 뿐만 아니라 알고리즘을 구현하기 위해 소프트웨어 스택을 통해 전파되는 데 필요한 연산도 간결하게 정의합니다. 이러한 이유로 Q#는 양자 상태 대신 게이트 시퀀스를 내보내도록 설계되었습니다. 그러나 이론적 수준에서 두 관점은 동일합니다.

다음 단계