Qiskit Textbook 複数システムの量子情報 の解説

みなさんこんにちは。
今回は、Qiskit Textbook 量子情報の基礎 複数システム第2章に沿って、複数システムの量子状態、特に量子ビットの特性・演算について解説します。

## 複数システムの系とは
##### 複数システムの量子状態は、ユークリッドノルム1の列ベクトルで表される。それぞれのシステムの古典状態の集合のデカルト積である。
今回考える複数システムとは、複数の量子状態をまとめたシステム。2つの量子ビットで考えると、取りうる値は 0,1 × 0,1 のデカルト積。

例として、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3322756/f9d4466e-e3f3-7709-adfc-626d40ad431e.png)
また、これをベクトル表記すると
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3322756/16cf149a-f9d4-c987-799c-414dcf6bd9e3.png)
となる。これらはすべて同じ状態を表している。

#### 量子状態ベクトルのテンソル積も量子状態ベクトルであり、それらのシステム間の独立性を示す。
システムX： ❘𝜓〉, Y： ❘𝜙〉 , テンソル積： ❘𝜓〉 ⊗❘𝜙〉 について考える。2つシステムのテンソル積の量子状態のユークリッドノルムは、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3322756/72279f38-1ef5-fb89-8f76-df536ff7f82c.png)

ここで、それぞれのシステムのユークリッドノルムで書き表される形になっており、= ||❘𝜓〉|| ||❘𝜙〉|| = 1であり、量子ベクトルであると分かる。これは3つ以上の状態ベクトルからなるシステムの場合も同様。

#### いくつかのシステムの積状態ではない量子状態ベクトルもあり、それをエンタングル状態と呼ぶ。

例として、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3322756/30227780-0675-6e9e-5c37-4a14738ab43e.png)
を考える。

これがもし積状態であれば、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3322756/e3e670ea-d0d1-545d-35de-9b341a89c900.png)
が存在することになる。しかし、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3322756/6f5a8bdb-7b56-ed02-64d5-43b41c4eff89.png)
となるので、どちらかの項が少なくとも1つは0となる。しかしこれは、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3322756/937d358c-6b83-801a-a80a-c39f5d829999.png)
と矛盾する。
この状態をエンタングル状態と呼ぶ。

#### エンタングル状態のうち、ベル状態と呼ばれる4つの状態を確認する。

これらのベル状態の線形結合で、2量子ビットの任意の状態を表すことが可能。ベル基底と呼ばれる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3322756/2b02041a-e0d1-c282-3004-3683c8926feb.png)
そのためこれらはベル基底と呼ばれる。

## 量子演算はどのように行われるか
システムX,Yからなる複数システムの量子状態について、測定をしてみる

① X,Y両方測定
② Xだけ測定
③ Xだけ測定した後にYを測定

X,YはそれぞれA,Bの古典状態の集合を持ち、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3322756/1e97e6ab-1068-b015-466b-dd7473fd59d5.png)
であるとする。これは単位ベクトルで、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3322756/f1466fe8-bc15-71d6-ad2d-35a25de192ff.png)
であるとする。

#### ① X,Y両方測定した時に、それぞれあるa,bの状態である確率

古典状態Aを持つ量子状態ベクトルXを測定する時、aを観測する確率は
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3322756/2a98d7a5-01aa-df63-b12c-26799e231a5e.png)
である。これを2量子状態ベクトルに応用し、(a,b)が測定される確率は、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3322756/d4fd78bc-65be-1040-1c10-cfd6e2c8d53c.png)
である。

#### Xだけ測定する
Xだけ測定する時、Yはまだ全ての可能性を保持しているので、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3322756/8af689d5-1868-44f6-4b05-e4e340f81c68.png)
となる。これは、Xを測定した時にaが観測される確率は、Yが測定されたかに依らないということを示している。
#### Xを測定した後にYを測定する
Xの測定結果がaと仮定して
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3322756/87f57996-cd36-2cc2-5c46-dc242ba35397.png)
とすると、あるaのときに
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3322756/c003cb50-a8f1-f1d5-57d6-516846b68f0b.png)
であるので、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3322756/c769275d-4290-360b-2aca-292dd3638cd4.png)

と書ける。Xの状態がaである確率はbによらず
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3322756/ffca7861-797b-a09a-a679-83ff2a2dc317.png)

だったので、あるaに対して(X,Y)の状態はユークリッドノルム‖|𝜙_𝑎⟩‖で規格化して
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3322756/1c87cd34-18b9-a7f4-3d54-833c9a6e97c7.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3322756/3b852a6e-91d7-b669-4436-395cc3b0551d.png)
と、量子状態ベクトルである。2つのシステムからなる状態のうち、Xの結果に必要な範囲だけが崩壊している。

## 部分測定の計算例(2量子ビット)
ここで、QiskitTextbookで紹介されている部分測定の計算例を見てみる。
量子ビットの場合を考え、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3322756/c8a81eb5-ffd2-52a1-0d1b-8f3fccdecb48.png)
を測定する。1つ目のシステムの状態ごとに分けて書くと、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3322756/4399d828-3099-e94f-cd58-3ea517d53a8c.png)
となる。

ここで1つ目だけ測定した際に0が観測される確率は、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3322756/54775394-07d0-2d9e-54ec-243113bc413e.png)
より、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3322756/79927ae3-5558-0b71-0a50-3f7dd96924e7.png)
である。先ほど確認した、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3322756/a6c5f824-6893-c9fc-4e05-e0c5caea6272.png)
の形で表すと、X,Yの状態は
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3322756/9021a685-89f7-0976-e2ad-8793e27601f4.png)
である。

## ユニタリー演算の例
古典状態A×Bの集合である量子状態に対して、この形に対応するユニタリー 行列であれば実行できる。
#### SWAP演算
2つのシステムを交換する演算で、それらをa,bを持つシステムX,Yとすると
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3322756/84ba97e7-4196-bcc2-935c-41f4b11e9b32.png)
となる。これは、ユニタリー行列
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3322756/247d3a29-cbee-7de7-6dff-721a9f2519d9.png)
を作用することで、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3322756/9d9de380-2369-aceb-33bd-8a2503937cad.png)
を行っていることになるのでユニタリー演算の定義通りの動き。
#### 制御ユニタリー演算
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3322756/5c3f2258-e5b0-1496-dcec-3a6f0ee19b4e.png)
もう一つユニタリー演算を紹介する。
制御ユニタリー演算は、1つ目のシステムの状態が1の時のみ、2つ目のシステムに演算を行う。
演算子の形としては、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3322756/90fdac15-153c-7334-c4f5-58fa94a3f0fc.png)
であり、ここで、演算子𝑈がパウリX演算子だとすると
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3322756/be00d2bb-ca83-1823-1cb7-5aee07a5f64c.png)
という形になる。