概要
- Qiskit について, QAOA の サンプルプログラムを動かしてみた.
- 動作環境は, Google Colaboratory で行った
- 実行プログラム, 解説は, 下記の参照サイトをご覧ください
感想
- 本家のサイトが詳しいので, 今後も, どのような機能が利用できるかを, 時間を見つけて, 進めていこうと思う.
QAOA(4頂点)
- グラフ
- グラフ描画
- グラフの分割(Brute Force)
- グラフの分割(QAOA)
- グラフの分割(NumPyMinimumEigensolver)
- グラフの分割(VQE)
1 2 3 4 5 |
[出力結果] [[ 0. -5. -6. 0.] [-5. 0. -2. 5.] [-6. -2. 0. 4.] [ 0. 5. 4. 0.]] |
1 2 |
[出力結果] Objective value computed by the brute-force method is 3 |
1 2 3 |
[出力結果] [1. 0. 1. 0.] Objective value computed by QAOA is 3.0 |
1 2 3 |
[出力結果] [0 0 1 1] Objective value computed by the NumPyMinimumEigensolver is 3 |
1 2 3 |
[出力結果] [0. 1. 0. 1.] Objective value computed by VQE is 3.0 |
QAOA(6頂点)
- グラフ
- グラフ描画
- グラフの分割(Brute Force)
- グラフの分割(QAOA)
- グラフの分割(NumPyMinimumEigensolver)
- グラフの分割(VQE)
1 2 3 4 5 6 7 |
[出力結果] [[ 0. -5. -6. 0. -2. 5.] [-5. 0. 4. 5. -9. 7.] [-6. 4. 0. 5. -6. 0.] [ 0. 5. 5. 0. 4. 0.] [-2. -9. -6. 4. 0. 3.] [ 5. 7. 0. 0. 3. 0.]] |
1 2 |
[出力結果] Objective value computed by the brute-force method is 6 |
1 2 3 |
[出力結果] [1. 0. 0. 0. 1. 1.] Objective value computed by QAOA is 6.0 |
1 2 3 |
[出力結果] [0 0 1 1 1 0] Objective value computed by the NumPyMinimumEigensolver is 6 |
1 2 3 |
[出力結果] [1. 0. 0. 0. 1. 1.] Objective value computed by VQE is 6.0 |
QAOA(8頂点)
- グラフ
- グラフ描画
- グラフの分割(Brute Force)
- グラフの分割(QAOA)
- グラフの分割(NumPyMinimumEigensolver)
- グラフの分割(VQE)
1 2 3 4 5 6 7 8 9 |
[出力結果] [[ 0. -7. -9. 0. -2. 8. 6. 7.] [ -7. 0. -14. 10. 8. -10. 0. 6.] [ -9. -14. 0. 0. 4. -2. 0. 12.] [ 0. 10. 0. 0. 8. 9. 14. -14.] [ -2. 8. 4. 8. 0. -10. -6. 0.] [ 8. -10. -2. 9. -10. 0. 0. 13.] [ 6. 0. 0. 14. -6. 0. 0. -2.] [ 7. 6. 12. -14. 0. 13. -2. 0.]] |
1 2 |
[出力結果] Objective value computed by the brute-force method is 11 |
1 2 3 |
[出力結果] [1. 1. 1. 0. 0. 1. 0. 1.] Objective value computed by QAOA is 9.0 |
1 2 3 |
[出力結果] [1 1 1 0 0 0 0 1] Objective value computed by the NumPyMinimumEigensolver is 11 |
1 2 3 |
[出力結果] [1. 0. 1. 0. 1. 1. 0. 0.] Objective value computed by VQE is 11.0 |
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 |