--- layout: page section: 超密度符号化 title: 超密度符号化回路 description: Qni で超密度符号化回路を動かしてみよう prev: ベル状態の判別 prev_url: ./discriminating_bell_states.html next: テレポーテーション回路 next_url: ./teleportation_circuit.html ---

超密度符号化を Qni で動かしてみましょう。 Qni による超密度符号化回路の実装はほぼアルゴリズムの説明そのままであり、今まで見てきたベル状態やベル回路、ベル測定を理解していれば難しくありません。

{% include mixer_horizontal.svg class="h-4 w-4 text-gray-700" %}

最初のブロックではベル回路によってベルペアを作り、送信者 (回路の上側) と受信者 (回路の下側) にそれぞれ 1 つずつ渡します。

2 つめのブロックでは、送信者が送信する 2 ビットをランダムに作ります。 ここでは H ゲートと MEASUREMENT 命令の組 2 つで実現しています。

3 つめのブロックでは、送信者が先ほど決めたランダムな 2 ビットに対応するベル状態を作ります。 送信ビットのビット 1 とビット 2 に応じて、X ゲートと Z ゲートの ON/OFF を決めます。

- 00 を送るとき

  何もしない

- 01 を送るとき

  Z ゲートを適用する

- 10 を送るとき

  X ゲートを適用する

- 11 を送るとき

  X ゲート + Z ゲート (= Y ゲート) を適用する

最後のブロックでは、受信者が送信者の量子ビットを受け取り自分の量子ビットとあわせてベル測定することで、送信された 2 ビットの情報を読み出します。