단일 큐비트 및 다중 큐비트 Pauli 측정
작업Q#할 때 Pauli 측정은 일반적인 유형의 측정값임을 알 수 있습니다. Pauli 측정은 다른 베이스의 측정값과 서로 다른 큐비트 간의 패리티를 포함하도록 계산 기준 측정을 일반화합니다. 이러한 경우 X, Y, Z 또는 $Z\otimes Z\otimes$\otimes, X X, X Y$ 등과 같은 $연산자인 Pauli 연산자 측정을 논의하는 것이 일반적입니다. 양자 측정의 기본 사항에 대해서는 큐비트 및 다중 큐비트를 참조하세요.
Pauli 연산자 측면에서 측정을 논의하는 것은 양자 오류 수정의 하위 필드에서 일반적입니다.
Q# 가이드는 비슷한 규칙을 따릅니다. 이 문서에서는 측정의 대체 보기에 대해 설명합니다.
팁
에서 Q#다중 큐비트 Pauli 연산자는 일반적으로 형식 Pauli[]
의 배열로 표시됩니다.
예를 들어 X Z Y$를 나타내$려면 배열[PauliX, PauliZ, PauliY]
을 사용할 수 \otimes 있습니다.\otimes
Pauli 측정을 생각하는 방법에 대한 세부 정보를 살펴보기 전에 양자 컴퓨터 내에서 단일 큐비트를 측정하는 것이 양자 상태에 어떤 영향을 미치는지 생각해 보십시오. $n$큐비트 양자 상태를 상상해 보십시오. 그런 다음 하나의 큐비트를 측정하면 상태가 될 수 있는 2^n$ 가능성의 $절반을 즉시 배제할 수 있습니다. 즉, 측정은 양자 상태를 두 개의 반 공간 중 하나로 프로젝션합니다. 이 직관을 반영하기 위해 측정에 대해 생각하는 방식을 일반화할 수 있습니다.
이러한 하위 공간을 간결하게 식별하려면 설명하기 위한 언어가 필요합니다. 두 개의 하위 공간을 설명하는 한 가지 방법은 $\pm 1$이 되는 규칙에서 사용하는, 두 개의 고유한 고유 값만 있는 행렬을 통해 지정하는 것입니다. 이렇게 하위 공간을 설명하는 간단한 예제는 $Z$를 살펴보세요.
$$\begin{\begin{align} Z & =\begin{bmatrix} 1 & 0 \\ 0 & -1 \end{bmatrix}. \end{align} $$
Pauli-$Z$ 행렬의 대각선 요소를 읽으면 $Z$에는 두 개의 고유 벡터 $\ket{0}$ 및 $\ket{1}$이 있고 해당 고유 값은 $\pm 1$임을 알 수 있습니다.
따라서 큐비트의 측정값이 (상태에 해당) 발생하는 Zero
경우 큐비트의 상태는 Z$ 연산자의 +1$ eigenstate$인 것으로 알려져 있습니다$.$\ket{0}$
마찬가지로, 결과가 있는 One
경우 큐비트의 상태는 -1$ eigenstate의 $Z$인 $것으로 알려져 있습니다.
이 프로세스는 Pauli 측정 언어로 "Pauli $Z$ 측정"이라고 하며 계산 기저 측정을 수행하는 것과 완전히 동일합니다.
$Z$의 유니터리 변환인 $2\times 2$ 행렬도 이 조건을 충족합니다. 즉, $A=U^\dagger Z U$ 행렬도 사용할 수 있습니다. 여기서 $U$는 다른 모든 유니터리 행렬로, $\pm 1$ 고유 벡터에서 측정의 두 가지 결과를 정의하는 행렬을 제공합니다. Pauli 측정 표기법은 X,Y,Z$ 측정값을 $큐비트에서 정보를 얻기 위해 수행할 수 있는 동등한 측정값으로 식별하여 이 단위 동등성을 참조합니다. 이러한 측정은 편의를 위해 여기에 제공됩니다.
Pauli 측정 | 유니터리 변환 |
---|---|
$Z$ | $\mathbf{1}$ |
$X$ | $H$ |
$Y$ | $HS^{\dagger}$ |
즉, 이 언어를 사용하여 따옴표로 &묶습니다. 측정값 $Y$&따옴표는 HS^\dagger$를 적용한 $다음 계산 기준으로 측정하는 것과 같습니다. 여기서 S
는 따옴표라고도 하는 &내장 양자 연산입니다. 단계 게이트,& 따옴표; 단위 행렬을 사용하여 시뮬레이션할 수 있습니다.
$$\begin{\begin{align}S =1 amp; 0 \\ 0 & i \end{bmatrix}.&\begin{bmatrix} \end{align} $$
또한 다음 작업이 다음과 같도록 HS^를 $양자 상태 벡터에 적용한 다음 Z$를 측정하는 $것과 Measure([PauliY], [q])
\dagger$ 같습니다.
operation MeasureY(qubit : Qubit) : Result {
mutable result = Zero;
within {
Adjoint S(q);
H(q);
} apply {
set result = M(q);
}
return result;
}
그런 다음, SH를 양자 상태 벡터에 적용하는 계산 기준으로 다시 변환하여 $$ 올바른 상태를 찾습니다. 코드 조각에서는 블록을 사용하여 within … apply
계산 기준으로 변환이 자동으로 처리됩니다.
결과에서Q#---that는 결과가 측정된 Pauli 연산자의 (-1)^j$ eigenspace에 있는지 여부를 나타내는 값 $j \in \{\texttt{Zero}, \texttt{One}\}$을 사용하여 Result
지정된 상태---is와 상호 작용에서 추출된 클래식 정보입니다$.
다중 큐비트 측정
다중 큐비트 Pauli 연산자의 측정값은 다음과 같이 유사하게 정의됩니다.
$$ Z\otimes Z =\begin{bmatrix}1 & 0 & 0& 0\\ 0&-1& 0& 0\\ 0& 0&-1& 0\\ 0& 0& 0& 1\end{bmatrix}. $$
따라서 두 Pauli-Z$$ 연산자의 텐서 제품은 +1 및 $-1$$ 고유값으로 구성된 두 개의 공백으로 구성된 $행렬을 형성합니다. 단일 큐비트 사례와 마찬가지로, 둘 다 반공간을 구성합니다. 즉, 액세스 가능한 벡터 공간의 절반이 +1$ 아이겐스페이스에 속하고 나머지 절반은 $-1$ 아이겐스페이스에 속$합니다. 일반적으로 텐서 제품의 정의에서 Pauli-Z$$ 연산자의 텐서 제품과 ID도 이를 준수한다는 것을 쉽게 알 수 있습니다. 예를 들면 다음과 같습니다.
$$\begin{align}Z \otimes\begin{bmatrix}{1}=\mathbf{1 & 0 & 0 & 0 &\\ amp; 1 & 0 & 0 amp; 0 &\\ amp; 0 & -1 & 0 0 amp; 0 \\ & 0 & 0 & -1 .\end{bmatrix} \end{align} $$
이전과 마찬가지로 이러한 행렬의 모든 단위 변환은 \pm 1$ 고유값으로 $레이블이 지정된 두 개의 반공간을 설명합니다. 예를 들어 $Z=HXH$인 항등식의 $X\otimes X = H\otimes H(Z\otimes Z)H\otimes H$입니다. 1큐비트 케이스와 마찬가지로, 4개의 4\times$개의 단위 매트릭스 U에 대해 $모든 2큐비트 Pauli 측정값을 U^\dagger(Z\otimes 1) U$$로 $작성할 수 있습니다$. 다음 표에는 변환이 열거되어 있습니다.
참고 항목
이 표$\operatorname{에서 SWAP은 행렬\operatorname{\begin{align}$$ SWAP}&}$ amp; =\left 를 나타내는 데 사용됩니다.(행렬 1 amp; 0 & 0 & 0 0 \\ & &0 amp; 1 & 0 0 &\\ amp; 1 & 0 & 0 0 &\\ amp; 0 amp; 0 & 0 & 1 \end{행렬}\right) \end{align}$$ 내장 연산SWAP
을 시뮬레이션하는 데 사용됩니다.&}\begin{
Pauli 측정 | 유니터리 변환 |
---|---|
$Z\otimes\mathbf{1}$ | $\mathbf{1}\otimes \mathbf{1}$ |
$X\otimes\mathbf{1}$ | $H\otimes\mathbf{1}$ |
$Y\otimes\mathbf{1}$ | $HS^\dagger\otimes\mathbf{1}$ |
$\mathbf{1}\otimes Z$ | $\operatorname{교환}$ |
$\mathbf{1}\otimes X$ | $(H\otimes\mathbf{1})\operatorname{SWAP}$ |
$\mathbf{1}\otimes Y$ | $(HS^\dagger\otimes\mathbf{1})\operatorname{SWAP}$ |
$Z\otimes Z$ | $\operatorname{CNOT}_{10}$ |
$X\otimes Z$ | $\operatorname{CNOT}_{10}(H\otimes\mathbf{1})$ |
$Y\otimes Z$ | $\operatorname{CNOT}_{10}(HS^\dagger\otimes\mathbf{1})$ |
$Z\otimes X$ | $\operatorname{CNOT}_{10}(\mathbf{1}\otimes H)$ |
$X\otimes X$ | $\operatorname{CNOT}_{10}(H\otimes H)$ |
$Y\otimes X$ | $\operatorname{CNOT}_{10}(HS^\dagger\otimes H)$ |
$Z\otimes Y$ | $\operatorname{CNOT}_{10}(\mathbf{1}\otimes HS^\dagger)$ |
$X\otimes Y$ | $\operatorname{CNOT}_{10}(H\otimes HS^\dagger)$ |
$Y\otimes Y$ | $\operatorname{CNOT}_{10}(HS^\dagger\otimes HS^\dagger)$ |
여기에서 CNOT
연산은 다음과 같은 이유로 표시됩니다.
행렬을 포함하지 $\mathbf{1}$ 않는 각 Pauli 측정값은 이전 추론에 의해 Z Z\otimes$에 $대한 단위까지 동일합니다.
Z Z\otimes$의 $고유값은 각 계산 기반 벡터를 구성하는 큐비트의 패리티에만 의존하며 제어되지 않는 연산은 이 패리티를 계산하고 첫 번째 비트에 저장하는 역할을 합니다.
그런 다음 첫 번째 비트가 측정되면 Pauli 연산자를 측정하는 것과 동일한 결과 반 공간의 ID를 복구할 수 있습니다.
또한 Z Z 측정이 Z 및$\otimes $\mathbb{1}Z$\otimes를 순차적으로 측정하는 $$\otimes\mathbb{{1}$ 것과 동일하다고 가정할 수 있지만 이 가정은 거짓입니다. 그 이유는 Z Z\otimes$를 측정하면 $양자 상태를 이러한 연산자의 $+1 또는 $-1$$ 고유 상태로 투영하기 때문입니다. $Z\otimes\mathbb{1}$와 $\mathbb{1}\otimes Z$를 차례로 측정하면 양자 상태 벡터를 먼저 $Z\otimes\mathbb{{1}$ 공간의 처음 반에 프로젝션한 다음, $\mathbb{{1}\otimes Z$의 반에 프로젝션합니다. 4개의 계산 기저 벡터가 있으므로 두 측정을 수행하면 상태가 1/4 공간으로 줄어들기 때문에 단일 계산 기저 벡터로 축소됩니다.
큐비트 간의 상관 관계
X X\otimes$ 또는 $Z Z$\otimes와 같은 $Pauli 매트릭스의 텐서 제품을 측정하는 또 다른 방법은 이러한 측정을 통해 두 큐비트 간의 상관 관계에 저장된 정보를 볼 수 있다는 것입니다. X\otimes 1$을 $측정하면 첫 번째 큐비트에 로컬로 저장된 정보를 볼 수 있습니다. 두 가지 유형의 측정은 양자 컴퓨팅에서 똑같이 가치가 있지만, 전자는 양자 컴퓨팅의 힘을 조명합니다. 양자 컴퓨팅에서 학습하려는 정보는 단일 큐비트에 저장되지 않고 모든 큐비트에 로컬로 저장되지 않는 경우가 많으므로 공동 측정(예: $Z Z\otimes$)을 통해서만 이 정보가 매니페스트가 됩니다.
X\otimes Y \otimes Z \otimes\mathbf{1}$ 와 같은 $임의의 Pauli 연산자도 측정할 수 있습니다. Pauli 연산자의 이러한 모든 텐서 제품은 2개의 eigenvalues $\pm 1$ 만 가지고 있으며 두 아이겐스페이스는 전체 벡터 공간의 반 공백을 구성합니다. 따라서 앞에서 설명한 요구 사항과 일치합니다.
에서 Q#이러한 측정값은 측정값이 기호$(-1)^j의 고유 영역에 결과를 생성하는 경우 j$를 반환$합니다$. Pauli 측정을 기본 제공 기능 Q# 으로 사용하는 것은 이러한 연산자를 측정하려면 Z$ 및 1$의 텐서 제품으로 작업을 표현하는 데 필요한 대각선 $U$ 게이트를 설명하기 위해 제어되지 않는 게이트 및 $기본 변환의 $긴 체인이 필요하기 때문에 유용합니다. 이러한 미리 정의된 측정값 중 하나를 수행하도록 지정할 수 있으므로 계산 기준 측정에서 필요한 정보를 제공하도록 기초를 변환하는 방법에 대해 걱정할 필요가 없습니다. Q# 는 자동으로 필요한 모든 기본 변환을 처리합니다.
복제하지 않는 정리
양자 정보는 강력합니다. 이를 통해 가장 잘 알려진 클래식 알고리즘보다 기하급수적으로 빠르게 계수와 같은 놀라운 작업을 수행하거나, 정확하게 시뮬레이션하기 위해 기하급수적으로 비용이 필요한 상관 관계가 있는 전자 시스템을 효율적으로 시뮬레이션할 수 있습니다. 그러나 양자 컴퓨팅의 기능에는 제한이 있습니다. 이러한 제한은 ‘비 복제 정리’를 통해 지정됩니다.
복제하지 않는 정리의 이름은 적절하게 지정됩니다. 양자 컴퓨터에 의한 제네릭 양자 상태 복제를 허용하지 않습니다. 정리의 증명은 매우 간단합니다. 복제되지 않는 정리에 대한 전체 증거는 이 문서에 대해 너무 기술적이지만 추가 보조 큐비트가 없는 경우의 증거는 범위 내에 있습니다.
이러한 양자 컴퓨터의 경우 복제 작업을 단위 행렬로 설명해야 합니다. 양자 측정은 복제할 양자 상태를 손상하기 때문에 허용되지 않습니다. 복제 연산을 시뮬레이션하기 위해 사용되는 유니터리 행렬은 $\ket{\psi}$ 상태에 대해 $$ U \ket{\psi}\ket{{0}=\ket{\psi}\ket{\psi}$$ 속성이 있어야 합니다. 행렬 곱셈의 선형성 속성은 두 번째 양자 상태에 $\ket{\phi}$대해 다음을 의미합니다.
$$\begin{\begin{align}U \left[ \frac{{1}{\sqrt{{2}}\left(\ket{\phi}+\ket{\psi}\right) \right] \ket{{0}& =\frac{1}{\sqrt{2}} U\ket{\phi}\ket{{0} + \frac{1}{\sqrt{{2}} U\ket{\psi}\ket{0}\\& =\frac{1}{\sqrt{2}}\left( \ket{\phi}\ket{\phi} + \ket{\psi}\ket{\psi}\right) \\& \ne\left( \frac{{2}}\left{1}{\sqrt{(\ket{\phi}+\ket{\psi}\right) \right) \otimes\left( \frac{1}{\sqrt{{2}}\left(\ket{\phi}+\ket{\psi}\right) \right). \end{align} $$
이것은 복제 방지 정리의 기본 직관을 제공합니다. 알 수 없는 양자 상태를 복사하는 모든 디바이스는 복사하는 상태 중 적어도 일부에 대한 오류를 유도해야 합니다. 클로너가 입력 상태에서 선형적으로 작동한다는 주요 가정은 보조 큐비트의 추가 및 측정을 통해 위반될 수 있지만, 이러한 상호 작용은 측정 통계를 통해 시스템에 대한 정보도 누출하고 이러한 경우 정확한 복제를 방지합니다.
양자 상태를 저렴하게 복제할 수 있다면 양자 상태에서 배울 수 있는 거의 마법에 가까운 능력을 부여받을 수 있기 때문에 복제 금지 정리는 양자 컴퓨팅을 질적으로 이해하는 데 중요합니다. 사실, 하이젠베르크의 자랑스러운 불확실성 원칙을 위반할 수 있습니다. 또는 최적의 복제기를 사용하여 복잡한 양자 분포에서 단일 샘플을 가져오고 단 하나의 샘플에서 해당 분포에 대해 알아볼 수 있는 모든 사항을 배울 수 있습니다. 이것은 당신이 동전을 뒤집고 머리를 관찰 한 다음 친구에게 그들이 따옴표로 응답&하는 결과에 대해 말할 때와 같습니다. 아, 그 동전의 분포는 p=0.512643\ldots$와 $베르누울리해야합니다!&따옴표; 이러한 문은 한 가지 정보(헤드 결과)가 상당한 사전 정보 없이 배포를 인코딩하는 데 필요한 많은 정보를 제공할 수 없기 때문에 무의미합니다. 마찬가지로, 사전 정보가 없으면 p$를 모르$고 이러한 동전의 앙상블을 준비할 수 없는 것처럼 양자 상태를 완벽하게 복제할 수 없습니다.
정보는 양자 컴퓨팅에서 무료가 아닙니다. 측정된 각 큐비트는 단일 정보를 제공하며, No-Cloning 정리는 시스템에 대해 얻은 정보와 시스템에 대해 호출된 교란 사이의 근본적인 절충을 해결하는 데 악용될 수 있는 백도어가 없음을 보여줍니다.