Python(Qiskit)について(16)

概要

  • Qiskit について, 学習サイト の サンプルプログラムを動かしてみた.
  • 動作環境は, Google Colaboratory で行った
  • 実行プログラム, 解説は, 下記の参照サイトをご覧ください

感想

  1. 本家のサイトの学習教材が非常に詳しいので, 今後も, 時間を見つけて, 確認していこうと思う.

ドイチ-ジョサ(Deutsch-Jozsa)のアルゴリズム(演習問題)

  • 本家のサイトにある, dj_oracle関数をベースに, 演習問題用のオラクルを実装してみた.
  • 具体的には, n が, 1 ~ 4 で 分布型, 5 で 定値型 となるようにしている.
  • 出力結果(量子回路)については, n = 1 ~ 5 で 同じ内容が出力されたと理解する.
  • グラフ(添付画像)については, n = 1 ~ 4 で ‘1111’ が, 100%, n = 5 で ‘0000’ が 100% だった.


  1. 出力結果(量子回路, n = 1)


  2. 出力結果(量子回路, n = 2)


  3. 出力結果(量子回路, n = 3)


  4. 出力結果(量子回路, n = 4)


  5. 出力結果(量子回路, n = 5)


補足

  • 上記だけだと分かりづらい印象があったため, dj_problem_oracle関数内の量子回路(オラクル)も確認した.

  1. 出力結果(オラクル/量子回路, n = 1)

  2. 出力結果(オラクル/量子回路, n = 2)

  3. 出力結果(オラクル/量子回路, n = 3)

  4. 出力結果(オラクル/量子回路, n = 4)

  5. 出力結果(オラクル/量子回路, n = 5)

参照サイト

Python(Qiskit)について(15)

概要

  • Qiskit について, 学習サイト の サンプルプログラムを動かしてみた.
  • 動作環境は, Google Colaboratory で行った
  • 実行プログラム, 解説は, 下記の参照サイトをご覧ください

感想

  1. 本家のサイトの学習教材が非常に詳しいので, 今後も, 時間を見つけて, 確認していこうと思う.

ドイチ-ジョサ(Deutsch-Jozsa)のアルゴリズム

  1. ドイチ-ジョサ(1-bit/定値型関数)


  2. ドイチ-ジョサ(1-bit/分布型関数)


  3. ドイチ-ジョサ(2-bit/定値型関数)


  4. ドイチ-ジョサ(2-bit/分布型関数)


  5. ドイチ-ジョサ(3-bit/定値型関数)


  6. ドイチ-ジョサ(3-bit/分布型関数)


  7. ドイチ-ジョサ(4-bit/定値型関数)


  8. ドイチ-ジョサ(4-bit/分布型関数)


  9. ドイチ-ジョサ(5-bit/定値型関数)


  10. ドイチ-ジョサ(5-bit/分布型関数)


参照サイト

Python(Qiskit)について(14)

概要

  • Qiskit について, 学習サイト の サンプルプログラムを動かしてみた.
  • 動作環境は, Google Colaboratory で行った
  • 実行プログラム, 解説は, 下記の参照サイトをご覧ください

感想

  1. 本家のサイトの学習教材が非常に詳しいので, 今後も, 時間を見つけて, 確認していこうと思う.

位相キックバック(練習問題含む)

  1. 練習問題 1(Controlled-U)

  2. 練習問題 1(T)

  3. 練習問題 2(Controlled-U)

  4. 練習問題 2(Controlled-Dagger)

  5. 練習問題 3

参照サイト

Python(Qiskit)について(13)

概要

  • Qiskit について, 学習サイト の サンプルプログラムを動かしてみた.
  • 動作環境は, Google Colaboratory で行った
  • 実行プログラム, 解説は, 下記の参照サイトをご覧ください

感想

  1. 本家のサイトの学習教材が非常に詳しいので, 今後も, 時間を見つけて, 確認していこうと思う.

単一量子ビットゲート(練習問題含む)

  1. 演算(X, H, Z)

  2. 演算(X, Y, Z)

  3. 演算(T, X, S, H, Y)

複数量子ビットゲート(練習問題含む)

  1. 演算(CNOT)

  2. 演算(H, CNOT)

  3. ベル状態

  4. ベル状態(続き)

  5. ベル状態(続き)

参照サイト

Python(Qiskit)について(12)

概要

  • Qiskit について, 学習サイト の サンプルプログラムを動かしてみた.
  • 動作環境は, Google Colaboratory で行った
  • 実行プログラム, 解説は, 下記の参照サイトをご覧ください

感想

  1. 本家のサイトの学習教材が非常に詳しいので, 今後も, 時間を見つけて, 確認していこうと思う.

単一量子ビットゲート

  1. 単一量子ビットゲート
  2. ブロッホ球

  3. 単一量子ビットゲート
  4. ブロッホ球

複数量子ビットともつれ状態(練習問題含む)

  1. Statevector(|1>)

  2. Statevector(|+>)

  3. Statevector(|->)

  4. Statevector(|0>|1>)

  5. Statevector(|0>|+>)

  6. Statevector(|+>|1>)

  7. Statevector(|->|+>)

  8. Statevector

  9. 量子ビット(1/√2|00> + i/√2|01>)

参照サイト

Python(Qiskit)について(11)

概要

  • Qiskit について, 学習サイト の サンプルプログラムを動かしてみた.
  • 動作環境は, Google Colaboratory で行った
  • 実行プログラム, 解説は, 下記の参照サイトをご覧ください

感想

  1. 本家のサイトの学習教材が非常に詳しいので, 今後も, 時間を見つけて, 確認していこうと思う.

ブロッホ球(練習問題含む)

  1. 状態|+>

  2. 状態|0>

  3. 状態|1>

  4. 状態(|0> + |1>) / √2

  5. 状態(|0> – i * |1>) / √2

  6. 状態 [i, 1] / √2

参照サイト

Python(Qiskit)について(10)

概要

  • Qiskit について, 学習サイト の サンプルプログラムを動かしてみた.
  • 動作環境は, Google Colaboratory で行った
  • 実行プログラム, 解説は, 下記の参照サイトをご覧ください

感想

  1. 本家のサイトの学習教材が非常に詳しいので, 今後も, 時間を見つけて, 確認していこうと思う.

量子ビット状態を表現する(練習問題(パターン①))

  1. 量子回路
  2. |0>, |1> カウント

量子ビット状態を表現する(練習問題(パターン②))

  1. 量子回路
  2. |0>, |1> カウント

量子ビット状態を表現する(練習問題(パターン③))

  1. 量子回路
  2. |0>, |1> カウント

量子ビット状態を表現する(練習問題(パターン④))

  1. 量子回路
  2. |0>, |1> カウント

量子ビット状態を表現する(練習問題(パターン⑤))

  1. 量子回路
  2. |0>, |1> カウント

参照サイト

Python(Qiskit)について(9)

概要

  • Qiskit について, QAOA の サンプルプログラムを動かしてみた.
  • 動作環境は, Google Colaboratory で行った
  • 実行プログラム, 解説は, 下記の参照サイトをご覧ください

感想

  1. 本家のサイトが詳しいので, 今後も, どのような機能が利用できるかを, 時間を見つけて, 進めていこうと思う.

QAOA(4頂点)

  1. グラフ
  2. グラフ描画

  3. グラフの分割(Brute Force)

  4. グラフの分割(QAOA)

  5. グラフの分割(NumPyMinimumEigensolver)

  6. グラフの分割(VQE)

QAOA(6頂点)

  1. グラフ
  2. グラフ描画

  3. グラフの分割(Brute Force)

  4. グラフの分割(QAOA)

  5. グラフの分割(NumPyMinimumEigensolver)

  6. グラフの分割(VQE)

QAOA(8頂点)

  1. グラフ
  2. グラフ描画

  3. グラフの分割(Brute Force)

  4. グラフの分割(QAOA)

  5. グラフの分割(NumPyMinimumEigensolver)

  6. グラフの分割(VQE)

Brute Force QAOA NumPyMinimumEigensolver VQE
4頂点 コスト: 3 分割結果: [1. 0. 1. 0.]
コスト: 3.0
分割結果: [0 0 1 1]
コスト: 3
分割結果: [0. 1. 0. 1.]
コスト: 3.0
6頂点 コスト: 6 分割結果: [1. 0. 0. 0. 1. 1.]
コスト: 6.0
分割結果: [0 0 1 1 1 0]
コスト: 6
分割結果: [1. 0. 0. 0. 1. 1.]
コスト: 6.0
8頂点 コスト: 11 分割結果: [1. 1. 1. 0. 0. 1. 0. 1.]
コスト: 9.0 (※分割に失敗しているように見える)
分割結果: [1 1 1 0 0 0 0 1]
コスト: 11
分割結果: [1. 0. 1. 0. 1. 1. 0. 0.]
コスト: 11.0

参照サイト

Python(Qiskit)について(8)

概要

  • Qiskit について, サンプルプログラムを動かしてみた.
  • 動作環境は, Google Colaboratory で行った
  • 実行プログラム, 解説は, 下記の参照サイトをご覧ください

感想

  1. 本家のサイトが詳しいので, 今後も, どのような機能が利用できるかを, 時間を見つけて, 進めていこうと思う.

PrimitiveOps

  1. operators etc

  2. Bell-State

  3. 3-Qubit GHZ-State

  4. 5-Qubit GHZ-State

参照サイト

Python(Qiskit)について(7)

概要

  • Qiskit について, サンプルプログラムを動かしてみた.
  • 動作環境は, Google Colaboratory で行った
  • 実行プログラム, 解説は, 下記の参照サイトをご覧ください

感想

  1. 本家のサイトが詳しいので, 今後も, どのような機能が利用できるかを, 時間を見つけて, 進めていこうと思う.

Algebraic operations and predicates

  1. to_matrix_op etc
  2. StateFn etc

PrimitiveOps

  1. Pauli Gates

  2. CX Gates etc