次の方法で共有


単一量子ビットおよびマルチ量子ビットパウリ測定

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]を使用できます。

パウリ測定の考え方について詳しく説明する前に、量子コンピューター内の 1 つの量子ビットを測定すると量子状態に対して何が行うかを考えると便利です。 $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$$、$\ket{0}$ と $\ket{1}$の 2 つの固有ベクトルがあることがわかります。 したがって、量子ビットの測定値が Zero (状態 $\ket{0}$に対応する) の場合、量子ビットの状態は、$Z$ 演算子の固有状態$$+1 であることが知られています。 同様に、結果が One場合、量子ビットの状態は、$Z$の $-1$ 固有状態であることが知られています。 このプロセスは、Pauli 測定の言語では "Pauli &Z$ の測定" と呼ばれ、計算基底の測定を行うことと完全に同等です。

$2\times 2$ 行列が $Z$ のユニタリ変換である場合も、この条件を満たします。 つまり、A=U^\dagger Z U$$行列を使用することもできます。ここで、$U$ は他のユニタリ 行列であり、その $\pm 1$ 固有ベクトルで測定の 2 つの結果を定義する行列を指定できます。 パウリ測定の表記は、量子ビットから情報を得るために実行できる同等の測定値として、$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 {
        result = M(q);
    }
    return result;
}

その後、$SH$ を量子状態ベクトルに適用することで、計算基底に戻すことによって正しい状態が見つかります。コードスニペットでは、within … apply ブロックを使って計算基底への変換が自動的に処理されます。

Q#結果、つまり状態の操作から抽出された従来の情報は、Result 値 $j \in \{\texttt{Zero}, \texttt{One}\}$ という表記を使用して与えられます。この表記は、その結果が、測定された Pauli 演算子の $(-1)^j$ 固有空間内に存在するかどうかを示します。

複数量子ビット測定

複数量子ビット 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 量子ビットパウリ測定は、$U^\dagger (Z\otimes 1) U$$4\times 4$ ユニタリ 行列 $U$として書き込むことができます。 これらの変換が次の表に列挙されています。

注記

この表で、$\operatorname{SWAP}$ は、$$固有の演算をシミュレートするために使用される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} を示すために使用されています。

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\otimes Z$ に相当します。 各計算基底ベクトルを構成する量子ビットのパリティのみに依存するのは、$Z\otimesZ$の固有値です。制御NOT演算は、このパリティを計算して最初のビットに格納する役割を果たします。 その後、最初のビットが測定されると、結果の半空間の ID を回復できます。これは Pauli 演算子の測定と同等です。

また、$Z\otimes Z$ の測定が、$Z\otimes\mathbb{{1}$ を順番に測定してから $\mathbb{1}\otimes Z$#A10 を測定するのと同じであると考えがちですが、この仮定は誤りです。 その理由は、$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$など) を測定するもう 1 つの方法は、2 つの量子ビット間の相関関係に格納されている情報を確認できることです。 $X\otimes 1$ を測定すると、最初の量子ビットにローカルに格納されている情報を確認できます。 どちらの種類の測定も量子コンピューティングでは同じように有益ですが、前者は量子コンピューティングの能力に焦点を当てています。 量子コンピューティングでは、多くの場合、学習する情報は単一の量子ビットに格納されず、一度にすべての量子ビットに非ローカルに格納されるため、結合測定 (Z $\otimes Z$など) を通じてのみ、この情報がマニフェストになります。

$X\otimes Y \otimes Z \otimes\mathbf{1}$などの任意のパウリ演算子も測定できます。 このような Pauli 演算子のすべてのテンソル積が 2 つの $\pm 1$ 固有値しか持っておらず、両方の固有空間がベクトル空間全体の半空間を構成します。 したがって、これらは前述の要件と一致します。

Q# で、このような測定が $j$ を返すのは、測定によって記号 $(-1)^j$ の固有空間で結果が得られた場合です。 Q#にパウリ測定が組み込み機能として備わっていることは役立ちます。というのは、そのような演算子を測定するには、制御-NOTゲートと基礎変換の長いチェーンを使って、操作を$Z$と$1$のテンソル積として表現するために必要な対角化$U$ゲートを記述する必要があるからです。 これらの定義済みの測定の一方を実行したいと指定できることで、基底を変換して計算基底測定によって必要な情報が得られるようにする方法について気にする必要がなくなります。 Q# が、必要なすべての基底変換を自動的に処理します。

量子複製不可能定理

量子情報は強力です。 これにより、最もよく知られている古典的アルゴリズムよりも指数関数的に因子数などの驚くべきことを行ったり、正確にシミュレートするために指数関数的なコストを必要とする相関電子システムを効率的にシミュレートしたりできます。 しかし、量子コンピューティングの能力には制限があります。 そうした制限の 1 つは "量子複製不可能定理" に由来します。

量子複製不可能定理は、その名のとおりです。 これは、量子コンピューターによる一般的な量子状態の複製を不可能とするものです。 この定理の証明は、非常に明快です。 この記事では、非複製定理の完全な証明は技術的すぎますが、追加の補助量子ビットがない場合の証拠はスコープ内にあります。

このような量子コンピューターの場合、複製操作はユニタリ 行列で記述する必要があります。 量子の測定を禁じているのは、これにより複製する量子状態が破損してしまうからです。 複製演算をシミュレートするには、使用されるユニタリ行列に、任意の状態 $$ に対して \ket{\psi} U \ket{{0}=\ket{\psi}\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 ビットの情報を提供し、No-Cloning 定理は、システムに関して得られた情報と呼び出された障害との基本的なトレードオフを回避するために利用できるバックドアがないことを示しています。