単一量子ビットおよびマルチ量子ビットパウリ測定
Q#を使用すると、Pauli 測定が一般的な測定の種類であることがわかります。 Pauli の測定値は、計算基準の測定値を一般化して、他の基底の測定値と、異なる量子ビット間のパリティを含めます。 このような場合、パウリ演算子 ( $X、Y、Z、$ Z、 $ \otimes Z、X\otimes X、X\otimes Y$ などの演算子) の測定について説明するのが一般的です。 量子測定の基本については、「 量子ビット と マルチプル量子ビット」を参照してください。
パウリ演算子の観点から測定を議論することは、量子誤差補正のサブフィールドで一般的です。
Q# ガイドでは、同様のやり方に従います。この記事では、この測定の別の見方について説明します。
ヒント
Q#では、多量子ビットパウリ演算子は、通常、Pauli[]
型の配列で表されます。
たとえば、 $X \otimes Z \otimes Y$を表すには、配列 [PauliX, PauliZ, PauliY]
を使用できます。
Pauli 測定の考え方を詳しく検討する前に、量子コンピューター内の単一量子ビットを測定することで量子の状態がどうなるかについて考えることをお勧めします。 $n$-量子ビットの量子状態を想像してみましょう。1 つの量子ビットを測定することで、すぐに、その状態が取り得る $2^n$ 個の可能性の半分が排除されます。 言い換えると、測定することで、量子状態は 2 つの半空間のうちの一方に投影されます。 測定に関する考え方を一般化して、この直感を反映させることができます。
これらのサブ空間を簡潔に特定するためには、それらを説明するための言語が必要です。 2 つのサブ空間を記述する 1 つの方法が、これらを指定する際に一意の固有値を 2 つだけ持つ行列を使用する方法です。固有値は、慣例によって、$\pm 1$ とします。 サブ空間をこのようにして記述する簡単な例として、$Z$ を考えてみましょう。
$$\begin{\begin{align} Z & =\begin{bmatrix} 1 & 0 \\ 0 & -1 \end{bmatrix}。 \end{align} $$
Pauli $Z$ 行列の対角線成分を読み取ることによって、$Z$ には、対応する固有値 $\pm 1$ を持つ 2 つの固有ベクトル $\ket{0}$ と $\ket{1}$ があることを確認できます。
したがって、量子ビットの測定結果がZero
(状態$\ket{0}$に対応する) 場合、量子ビットの状態は、$Z$ 演算子の$+1$固有状態であることが知られています。
同様に、結果が One
場合、量子ビットの状態は $-1$ 固有状態の $Z$ であることが知られています。
このプロセスは、Pauli 測定の言語では "Pauli $Z$ の測定" と呼ばれ、計算基底の測定を行うことと完全に同等です。
$2\times 2$ 行列が $Z$ のユニタリ変換である場合も、この条件を満たします。 つまり、行列 $A=U^\dagger Z U$ ($U$ が他のユニタリ行列) を使用して、測定の 2 つの結果をその $\pm 1$ 固有ベクトルで定義する行列を提供することもできます。 Pauli 測定の表記は、このユニタリ等価性を参照する際に、$X,Y,Z$ 測定を、量子ビットから情報を得るために行うことができる同等の測定であると見なします。 これらの測定値は、便宜上ここで提供されています。
Pauli 測定 | ユニタリ変換 |
---|---|
$Z$ | $\mathbf{1}$ |
$X$ | $H$ |
$Y$ | $HS^{\dagger}$ |
つまり、この言語を使用して、 &引用します。measure $Y$" は、 $HS^\dagger$ を適用し、計算ベースで測定することと同じです。ここで、 S
は &クォートと呼ばれる組み込みの量子演算です。位相ゲート、&クォート。ユニタリ行列を使用してシミュレートできます。
$$\begin{\begin{align} S =\begin{bmatrix} 1 & 0 \\ 0 & i \end{bmatrix}。 \end{align} $$
これは、$HS^\dagger$ を量子状態ベクトルに適用してから $Z$ を測定して、次の演算が Measure([PauliY], [q])
と等しくなるようにすることとも同じです。
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#、結果------状態との対話から抽出された古典的な情報は---結果が測定された Pauli 演算子の Result
$(-1)^j}$固有空間にあるかどうかを示す$j \inj \\texttt{ {\texttt{Zero}\}$ を使用して与えられます。
複数量子ビット測定
複数量子ビット Pauli 演算子の測定も、以下のように同様に定義されています。
$$ Z\otimes Z =\begin{bmatrix}1 &0 &0&0\\ 0&-1&0&0\\ 0&0&-1&0\\ 0&0&0&1\end{bmatrix}。 $$
したがって、2 つの Pauli-$Z$ 演算子のテンソル積が形成する行列は、$+1$ と $-1$ の固有値からなる 2 つの空間で構成されます。 単一量子ビットの場合と同様に、どちらも半空間を占めており、アクセス可能なベクトル空間の半分が $+1$ 固有空間に属し、残りの半分が $-1$ 固有空間に属していることを意味します。 一般に、テンソル積の定義から、Pauli-$Z$ 演算子と恒等式のテンソル積もこれに従うことが容易にわかります。 たとえば、 にします。
$$\begin{align} Z \otimes\mathbf{{1}=\begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & -1 & 0 \\ 0 & 0 & 0 & -1 \end{bmatrix}。 \end{align} $$
以前と同様に、このような行列のユニタリ変換でも、 $\pm 1$ 固有値でラベル付けされた 2 つの半空間が記述されます。 たとえば、$X\otimes X = H\otimes H(Z\otimes Z)H\otimes H$ は $Z=HXH$ という恒等式から得られます。 1 量子ビットの場合と同様に、すべての 2 量子ビットパウリ測定は、$4\times 4 $ユニタリ 行列 $U$ の $U^\dagger (Z\otimes 1) U$ として書き込まれます。 これらの変換が次の表に列挙されています。
Note
この表では、 $\operatorname{SWAP}$ を使用して、マトリックス $$\begin{align}\operatorname{SWAP}& を示します =\left(\begin{matrix} 1 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 1 \end{matrix}\right) \end{align}$$ 組み込み演算 SWAP
をシミュレートするために使用されます。
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{SWAP}$ |
$\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}$行列を含まない各パウリ測定は、前の推論によって$Z\otimesZ$までのユニタリに相当します。
固有値の $Z\otimes Z$ が唯一依存する量子ビットのパリティは各計算基底 ベクトルで構成され、制御 NOT 演算はこのパリティを計算して最初のビットに格納する役割をします。
次に、最初のビットを測定した後、結果としての半空間の同一性を回復することができ、これは Pauli 演算子の測定と等しくなります。
また、$Z\otimes Z$ の測定は、$Z\otimes\mathbb{{1}$を順次測定してから Z$ を$\mathbb{1}\otimesするのと同じであると考えるのも魅力的ですが、この前提は誤りです。 その理由は、$Z\otimes Z$ を測定すると、量子状態は、これらの演算子の $+1$ と $-1$ のどちらかの固有状態に投影されるからです。 $Z\otimes\mathbb{1}$ を測定してから $\mathbb{1}\otimes Z$ を測定すると、量子状態ベクトルがまず $Z\otimes\mathbb{{1}$ の半空間に投影されてから、$\mathbb{{1}\otimes Z$ の半空間に投影されます。 計算基底ベクトルは 4 つあるため、両方の測定を実行すると状態が 4 分の 1 空間に縮小され、それにより計算基底ベクトルが 1 つに減ります。
量子ビット間の相関関係
$X\otimes X$ や $Z\otimes Z$ のような Pauli 行列のテンソル積を測定することは、これらの測定を使用して 2 つの量子ビットの相関関係に格納された情報を見ることができるという見方もできます。 $X\otimes 1$ を測定すると、最初の量子ビットにローカルに格納されている情報を確認できます。 どちらの種類の測定も量子コンピューティングでは同じように有益ですが、前者は量子コンピューティングの能力に焦点を当てています。 量子コンピューティングでは、あなたが知りたいと望む情報は 1 つの量子ビットに格納されているのではなく、すべての量子ビットに非局所的に同時に格納されていることが多く、合同測定 (たとえば $Z\otimes Z$) によって初めてその情報が明らかになることがわかります。
$X\otimes Y \otimes Z \otimes\mathbf{1}$などの任意のパウリ演算子も測定できます。 このような Pauli 演算子のすべてのテンソル積が 2 つの $\pm 1$ 固有値しか持っておらず、両方の固有空間がベクトル空間全体の半空間を構成します。 したがって、これらは前述の要件と一致します。
Q# で、このような測定が $j$ を返すのは、測定によって記号 $(-1)^j$ の固有空間で結果が得られた場合です。 このような演算子を測定するには、$Z$と$1のテンソル積として操作を表現するために必要な対角化$U$ゲートを記述するために、制御されていないゲートと基礎変換の長いチェーンが必要であるため、Q#の組み込み機能としてパウリ測定が役立ちます$。 これらの定義済みの測定の一方を実行したいと指定できることで、基底を変換して計算基底測定によって必要な情報が得られるようにする方法について気にする必要がなくなります。 Q# が、必要なすべての基底変換を自動的に処理します。
量子複製不可能定理
量子情報は強力です。 これにより、最もよく知られている古典的アルゴリズムよりも指数関数的に因子数などの驚くべきことを行ったり、正確にシミュレートするために指数関数的なコストを必要とする相関電子システムを効率的にシミュレートしたりできます。 しかし、量子コンピューティングの能力には制限があります。 そうした制限の 1 つは "量子複製不可能定理" に由来します。
量子複製不可能定理は、その名のとおりです。 これは、量子コンピューターによる一般的な量子状態の複製を不可能とするものです。 この定理の証明は、非常に明快です。 この記事では、非複製定理の完全な証明は技術的すぎますが、追加の補助量子ビットがない場合の証拠はスコープ内にあります。
このような量子コンピューターの場合、複製操作はユニタリ 行列で記述する必要があります。 量子の測定を禁じているのは、これにより複製する量子状態が破損してしまうからです。 複製演算をシミュレートするには、使用されるユニタリ行列に、任意の状態 $\ket{\psi}$ に対して $$ U \ket{\psi}\ket{{0}=\ket{\psi}\ket{\psi}$$ とするプロパティを設定する必要があります。 行列乗算の線形性の特性が次に示すのは、2 番目のあらゆる量子状態 $\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{{1}{\sqrt{{2}}\left(\ket{\phi}+\ket{\psi}\right) \right) \otimes\left( \frac{1}{\sqrt{{2}}\left(\ket{\phi}+\ket{\psi}\right) \right)。 \end{align} $$
これにより、量子複製不可能定理の背後にある基本的な直観が示されます。つまり、不明な量子状態をコピーするあらゆるデバイスが、コピーする状態の少なくともいくつかで必ずエラーを誘発するということです。 複製側が入力状態で線形的に影響するという重要な前提は補助量子ビットの追加と測定によって破られることがありますが、そうした相互作用によって、システムに関する情報が測定統計を通じて漏出することになり、そうした場合にも正確な複製ができなくなります。
量子複製不可能定理は、量子コンピューティングの定性的な理解にとって重要です。その理由は、量子状態の複製が安価にできてしまうと、量子状態から魔法のように知ることができしまうからです。 実際に、ハイゼンベルグの有名な不確定性原理を破る可能性があります。 また、最適な複製作成を使用して、複雑な量子分布からサンプルを 1 つだけ取り出して、そのサンプルからその分布について知りうるすべてのことを知ることもできます。 これは、あなたがコインをひっくり返して頭を観察し、友人に彼らが &答える結果について話した時のようなものです。そのコインの分布は、 $p=0.512643\ldots$!"このようなステートメントは、1 ビットの情報 (ヘッドの結果) が、分布のエンコードに必要な多くのビットの情報を、大量の事前情報なしで提供できないため、意味がありません。 同様に、事前情報がなければ、量子状態を完全に複製することができないのは、$p$ を知ることなくそうしたコインのアンサンブルを準備できないのと同じです。
量子コンピューティングでは、情報は自由ではありません。 量子ビットが測定されるごとに 1 ビットの情報が得られ、量子複製不可能定理は、システムに関して得られる情報と、その際に起こる混乱との間の根本的なトレードオフを回避するために利用できるバックドアがないことを示しています。