다음을 통해 공유


양자 컴퓨팅의 벡터 및 행렬

양자 컴퓨팅을 이해하려면 선형 대수에 대해 잘 알고 있습니다. 이 문서에서는 선형 대수의 기본 개념과 양자 컴퓨팅에서 벡터 및 행렬을 사용하는 방법을 소개합니다.

벡터

차원이 n인 벡터 v는 n개의 복소수 (v_1, v_2, \ldots, v_n)의 집합으로, 열로 배열됩니다.

$$v =\begin{bmatrix} v_1\\ v_2\\ \vdots\\ v_n \end{bmatrix}$$

벡터 $v$의 놈(norm)은 $\sum_i v_i^2$로 정의됩니다. 벡터는 노름이 1인 경우에 단위 벡터라고 합니다.

$v\dagger$의 켤레 전치인 열 벡터 $v$의 에 따른 변환은 행 벡터로 $v^\dagger$로 표시됩니다. 차원이 \( n \)인 열 벡터 \( v \)의 경우, 수반 벡터는 차원이 \( 1 \times n \)인 행 벡터입니다.

$$\begin{bmatrix}v_1 \ \vdots \ v_n \end{bmatrix}^\dagger=\begin{bmatrix}v_1^* & \cdots& v_n^* \end{bmatrix}$$

여기서 $v_i^*$는 $v_i$의 켤레 복소수를 나타냅니다.

선형 대수를 사용하여 큐비트의 상태는 a \ b와 같은 양자 상태 벡터로 설명됩니다. 여기서 a^2 + b^2 ≤ 1입니다. 자세한 내용은 큐비트를 참조하세요.

스칼라 제품

두 벡터는 스칼라 곱 또는 점 곱, 내부 곱이라고도 하는 스칼라 제품을 통해 함께 곱할 수 있습니다. 이름에서 알 수 있듯이 두 벡터의 스칼라 곱 결과는 스칼라입니다. 스칼라 제품은 한 벡터를 다른 벡터로 프로젝션하고 한 벡터를 다른 간단한 벡터의 합계로 표현하는 데 사용됩니다. 두 열 벡터 $u$와 $v$ 사이의 스칼라 곱은 $\langleu, v\rangle 또는 =u^\daggerv$로 표시되며 다음과 같이 정의됩니다.

$$\langle u, v \rangle = u^\dagger v = \begin{bmatrix} u_1^* & \cdots & u_n^* \end{bmatrix} \begin{bmatrix} v_1 \\ \vdots \\ v_n \end{bmatrix} = u_1^* v_1 + \cdots + u_n^* v_n.$$ $$

스칼라 곱을 사용하여 벡터 v의 노름은 \(\langle v, v \rangle\)으로 작성할 수 있습니다.

벡터에 숫자 a로 곱하여 각 항목이 a로 곱해진 새 벡터를 만들 수 있습니다. $u$와 $v$의 항목을 각각 더하여 합계를 구하는 새 벡터를 형성하기 위해 두 벡터 $u$와 $v$를 더할 수도 있습니다. 이러한 작업은 다음과 같습니다.

$$ au+bv =\begin{bmatrix} au_1+bv_1\\ au_2+bv_2\\ \vdots\\ au_n+bv_n \end{bmatrix}$$

행렬

크기가 $m \timesn$인 행렬은 아래와 같이 $m$ 행과 $n$ 열로 배열된 $m\cdot n$개의 복소수 모음입니다.

$$M =\begin{bmatrix} M_{11} M_{12}\cdots M_{1n}\\ M_{{21} M_{22}\cdots M_{2n}\\\ddots\\ M_{m1} M_{m2}\cdots M_{mn}\\\end{bmatrix}$$

참고

차원이 n인 벡터는 단순히 크기가 n × 1인 행렬입니다.

양자 연산은 제곱 행렬표현됩니다. 즉, 행과 열의 수가 같습니다. 예를 들어, 단일 큐비트 연산은 Pauli X 연산과 같이 2×2 매트릭스로 표시됩니다.

$$X =\begin{bmatrix} 0 & 1 \\ 1 & 0 \end{bmatrix}$$

Q#에서 Pauli $X$ 연산은 X 연산으로 표현됩니다.

벡터와 마찬가지로, 숫자 c를 행렬에 곱하여 모든 항목에 c를 곱한 새 행렬을 얻을 수 있습니다. 또한, 동일한 크기의 두 행렬을 더하여 각 항목이 두 행렬의 대응하는 항목의 합인 새 행렬을 생성할 수 있습니다.

행렬 곱하기

또한 차원이 $m \times n$인 행렬 $M$과 차원이 $n \times p$인 행렬 $N$을 곱하여, 차원이 $m \times p$인 새로운 행렬 $P$을 다음과 같이 만들 수 있습니다.

$$ \begin{ \begin{align} &\begin{bmatrix} M_{{11} M_{12}\cdots M_{1n}\\ M_{{21} M_{22}\cdots M_{2n}\\\ddots\\ M_{m1} M_{m2}\cdots M_{mn}\end{bmatrix}\begin{bmatrix} N_{{11} N_{{12}\cdots N_{1p}\\ N_{{21} N_{22}\cdots N_{2p}\\\ddots\\ N_{n1} N_{n2}\cdots N_{np}\end{bmatrix}=\begin{bmatrix} P_{{11} P_{12}\cdots P_{1p}\\ P_{21} P_{{22}\cdots P_{2p}\\\ddots\\ P_{m1} P_{m2}\cdots P_{mp}\end{bmatrix}\end{align}$$

여기서 $P$의 항목들은 $P_{ik}=\sum_j M_{ij}N_{jk}$입니다. 예를 들어, 항목 P_은 M의 첫 번째 행과 N의 첫 번째 열의 스칼라 곱입니다. 벡터는 단순히 행렬의 특별한 경우이기 때문에 이 정의는 행렬-벡터 곱으로 확장됩니다.

특수 매트릭스 유형

특수 정방 행렬 중 하나는 단위 행렬로, 모든 대각선 요소가 1이고 나머지 요소가 0인 행렬을 의미합니다.

$\mathbb{ \mathbb{I}=\begin{bmatrix} 1 0 \cdots 0\\ 0 1 \cdots 0\\\ddots\\ 0 \cdots 1 \end{bmatrix}.$

정사각형 행렬 A에 대해, 행렬 B는 AB = BA = \(\mathbb{I}\)인 경우 역행렬입니다. 행렬 $A$에 역이 있으면, 역행렬은 고유하며 $A^{-1}{-1}$로 작성됩니다.

행렬 $M$의 경우 $M$의 전치 수반 행렬 및 켤레는 행렬 $N$이므로 $N_{ij}= M_{ji}^*$입니다. $M$의 수반 행렬은 $M^\dagger$으로 표시됩니다.

$UU^\dagger= U^\dagger U =\mathbb{I}$이거나 동등하게 $U^{{-1}= U^\dagger$인 경우 행렬 $U$는 유니터리입니다. 단위 행렬의 한 가지 중요한 속성은 벡터의 규범을 유지한다는 것입니다. 때문에 발생합니다.

$\langle v,v \rangle=v^{\dagger} v = v^{\dagger} U^{{-1} U v = v^{\dagger} U^{\dagger} U v =\langle U v, U v\rangle.$

참고

양자 연산은 인접한 행렬이 역과 같은 제곱 행렬인 단위 행렬로 표현됩니다.

행렬 M에르미티안일 때, M = M^입니다.

양자 컴퓨팅에는 기본적으로 에르미트와 유니터리라는 두 개의 행렬만 발생합니다.

텐서 곱

또 다른 중요한 작업은 텐서 제품, 또는 행렬 직접 제품 혹은 크로네커 제품이라고도 합니다.

두 벡터 $v=\begin{bmatrix}a \\ b \end{bmatrix}$ 및 $u =\begin{bmatrix} c \\ d \end{bmatrix}$를 고려합니다. 이 텐서 곱은 $v \otimes u$로 표현되며, 블록 행렬을 생성합니다.

$$ \begin{bmatrix} a \\ b \end{bmatrix}\otimes\begin{bmatrix} c \\ d \end{bmatrix}=\begin{bmatrix} a \begin{bmatrix} c \\ d \end{bmatrix} b \begin{bmatrix} c \\ d \end{bmatrix}\end{bmatrix}=\begin{bmatrix} a c \\ a d \\ b c \\ b d \end{bmatrix}$$

참고

텐서 제품은 완전히 다른 연산인 행렬 곱하기와 구별됩니다.

텐서 제품은 여러 큐비트의 결합 상태를 나타내는 데 사용됩니다. 양자 컴퓨팅의 진정한 힘은 여러 큐비트를 활용하여 계산을 수행하는 데서 비롯됩니다. 자세한 내용은 여러 큐비트에 대한 작업을 참조하세요.

  • 큐비트
  • 여러 큐비트
  • Dirac 표기법
  • 파울리 측정