양자 컴퓨팅의 고급 매트릭스 개념

이 문서에서는 고유 값, 고유 벡터지수의 개념을 살펴봅니다. 이러한 개념은 양자 알고리즘을 설명하고 구현하는 데 사용되는 기본 행렬 도구 집합을 형성합니다. 양자 컴퓨팅에 적용되는 벡터 및 행렬의 기본 사항은 양자 컴퓨팅 및 벡터 및 행렬에 대한 선형 대수를 참조하세요.

고유 값 및 고유 벡터

$M$을 정방 행렬로 하고 $v$를 모두 0인 벡터(예: 모든 항목이 $0$인 벡터)가 아닌 벡터로 합니다.

벡터 $v$는 일부 번호 $c$에 대해 $Mv =cv$인 경우 $M$의 고유 벡터입니다. 정수 $c$는 고유 벡터 $v$에 해당하는 고유 값입니다. 일반적으로 행렬 $M$은 벡터를 다른 벡터로 변환합니다. 그러나 고유 벡터는 숫자를 곱하는 것을 제외하고는 변경되지 않은 상태로 남아 있기 때문에 특별합니다. $v$가 고유 값 $c$를 갖는 고유 벡터인 경우 $a$가 0이 아니면 $av$도 동일한 고유 값을 갖는 고유 벡터입니다.

예를 들어 단위 행렬의 경우 모든 벡터 $v$는 고유 값 $1$을 갖는 고유 벡터입니다.

또 다른 예로 대각선에 0이 아닌 항목만 있는 대각 행렬$D$를 생각해 보겠습니다.

$$\begin{bmatrix}&d_1 amp; 0 & 0 0 \\& d_2 & 0 \\ 0 & 0 & d_3\end{bmatrix}. $$

벡터

$$\begin{bmatrix}1 \\ 0 \\ 0 \end{bmatrix}, \begin{bmatrix}0 \\ 1 \\ 0\end{bmatrix}\text{및}\begin{bmatrix}0 \\ 0 \\ 1\end{bmatrix}$$

각각 고유 값 $d_1$, $d_2$ 및 $d_3$을 갖는 이 행렬의 고유 벡터입니다. $d_1$, $d_2$ 및 $d_3$이 고유 값이라면 이 벡터(및 해당 배수)는 $D$ 행렬의 고유 벡터입니다. 일반적으로 대각 행렬의 경우 고유 값과 고유 벡터를 읽어내기 쉽습니다. 대각선에 나타나는 모든 숫자가 고유 값이며, 각 고유 벡터는 하나의 항목이 $1$이고 나머지 항목이 $0$인 단위 벡터입니다.

위의 예제에서 $D$의 고유 벡터는 $3$차원 벡터의 기저가 됩니다. 기저는 벡터의 집합으로 모든 벡터는 선형 조합으로 쓸 수 있습니다. 보다 명시적으로 특정 숫자 $a_1$, $a_2$, $a_3$에 대해 벡터 $v$를 $v=a_1 v_1 + a_2 v_2 + a_3 v_3$으로 쓸 수 있는 경우 $v_1$, $v_2$, $v_3$이 기저가 됩니다.

양자 컴퓨팅에는 기본적으로 에르미트와 유니터리라는 두 개의 행렬만 발생합니다. Hermitian 행렬(self-adjoint라고도 함)은 자체 복합 복소수 수선과 동일한 복합 제곱 행렬이며, 유니터리 행렬은 복잡한 결합형과 반대되는 복합 제곱 행렬입니다.

스펙트럼 정리라고 하는 일반적인 결과가 있습니다. 이는 다음을 의미합니다. 모든 에르미티안 또는 유니터리 행렬 M$의 경우 일부 대각선 행렬 $$D에 대해 M=U^\dagger D$ U$와 같은 유니터리 $U$가 $있습니다. 또한 D의 $대각선 항목은 M$의 $고유값이 되고 U^\dagger$의 $열은 해당 고유 벡터가$ 됩니다. 이 팩터화를 스펙트럼 분해 또는 고유 분해라고 합니다.

행렬 지수

‘행렬 지수’는 지수 함수와 정확히 유사하게 정의할 수도 있습니다. 행렬 $A$의 행렬 지수는 다음과 같이 표현할 수 있습니다.

$$ e^A=\mathbf{1} + A + \frac{A^2}{2!}+\frac{A^3}{3!}+\cdots$$

이 점은 양자 기계적 시간 확장이 에르미트 행렬 $B$에 대해 $e^{iB}$ 형태의 유니터리 행렬로 설명되기 때문에 중요합니다. 이 때문에 행렬 지수 작업을 수행하는 것이 양자 컴퓨팅의 기초적인 부분입니다. 이런 식으로 Q#은 해당 연산의 설명을 위한 내장 루틴을 제공합니다. 기존 컴퓨터에서 행렬 지수를 계산하는 방법은 여러 가지가 있으며, 보통 그러한 지수의 값을 계수적으로 구하는 것은 위험이 큽니다. 관련된 문제에 대한 자세한 정보는 Cleve Moler와 Charles Van Loan의 "행렬 지수를 계산하는 19가지 의심스러운 방법" SIAM 리뷰 20.4(1978년): 801-836’을 참조하세요.

행렬의 지수를 계산하는 가장 쉬운 방법은 행렬의 고유 값과 고유 벡터를 사용하는 것입니다. 특히 앞에서 논의한 스펙트럼 정리에서는 모든 에르미트 또는 유니터리 행렬 $A$에 대해 유니터리 행렬 $U$와 대각 행렬 $D$가 있는 $A=U^\dagger D U$라고 가정했습니다. 유니터리 속성 때문에 $A^2 = U^\dagger D^2 U$가 되고 모든 거듭제곱에 대해 $p$$A^p = U^\dagger D^p U$입니다. 연산자 지수의 연산자 정의로 이를 대체하는 경우

$$ e^A= U^\dagger\left(\mathbf{1} +D +\frac{D^2 2}{!}+\cdots\right)U= ^\dagger\begin{bmatrix}\exp(D_{{11}) & 0 &\cdots&앰프; 0\\ 0 & \exp(D_{22})&\cdots&앰프; 0\\ \vdots &\vdots &\ddots&\vdots\\ 0& 0&\cdots&\exp(D_{NN}) \end{bmatrix} U. $$

즉, 행렬 $A$의 고유 기저로 변환하는 경우 행렬 지수를 계산하는 것은 행렬의 고유 값의 일반 지수를 계산하는 것과 같습니다. 양자 컴퓨팅의 많은 연산에 행렬 지수 수행이 포함되어 있으므로 연산자 지수 수행을 단순화하기 위해 행렬의 고유 기저로 변환하는 이러한 트릭은 자주 나타납니다. 이 가이드의 뒷부분에서 논의되는 트로터-스즈키 스타일의 양자 시뮬레이션 메서드와 같은 많은 양자 알고리즘의 기초가 됩니다.

또 다른 유용한 속성은 불출력 행렬을 보유합니다. 불발성 행렬 $B$는 유니터리와 에르미티안, 즉 $B=B^B^{-1}=\dagger$입니다. 그런 다음, 불발성 행렬은 자체 역 $B^2=\mathbf{1}$와 동일한 제곱 행렬입니다. 행렬 지수의 위 확장에 이 속성을 적용하고, 및 B 용어를 함께 그룹화 $\mathbf{1}$ 하고, Maclaurin의 정리를 코사인 및 사인 함수에 적용하여 ID$$

$$e^{iBx}=\mathbf{1} \cos(x)+ iB\sin(x)$$

는 실제 값 $x$에 대한 보류입니다. 이 트릭은 B의 차원이 $기하급수적으로 크더라도 B$가 호출이 없는 특수한 경우에 $$ 대해 행렬 지수가 갖는 작업에 대해 추론할 수 있기 때문에 특히 유용합니다.

다음 단계