Nobisuke
Dekisugi
RAG
Privacy policy
2021/01/31 06:20
こんにちは。量子コンピュータってなんかよくわからないよねっていう人多いですよね。しかしツールがどんどん進化して少しずつ誰でも使える環境ができてきてます。
今回はまだちょっと難しいですが、作った量子回路のユニタリ行列と呼ばれる、全体回路の数学的な表現を取れる機能が量子コンピュータソフトウェア開発キットのblueqatにあります。これによってデバッグが楽になります。
早速使ってみましょう。
早速sympyを読み込み、やってみます。
Copy from sympy import pi from blueqat import Circuit Circuit().rx(pi / 2)[0].cx[0, 1].run(backend="sympy_unitary")
Matrix([
[ sqrt(2)/2, -sqrt(2)*I/2, 0, 0],
[ 0, 0, -sqrt(2)*I/2, sqrt(2)/2],
[ 0, 0, sqrt(2)/2, -sqrt(2)*I/2],
[-sqrt(2)*I/2, sqrt(2)/2, 0, 0]])
⎡ √2 -√2⋅ⅈ ⎤
⎢ ── ────── 0 0 ⎥
⎢ 2 2 ⎥
⎢ ⎥
⎢-√2⋅ⅈ √2 ⎥
⎢────── ── 0 0 ⎥
⎢ 2 2 ⎥
⎢ ⎥
⎢ -√2⋅ⅈ √2 ⎥
⎢ 0 0 ────── ── ⎥
⎢ 2 2 ⎥
⎢ ⎥
⎢ √2 -√2⋅ⅈ ⎥
⎢ 0 0 ── ──────⎥
⎣ 2 2 ⎦
できました。行列表現で自分の作った回路が確認できます。素敵ですね。
Copy Circuit().rx(pi / 2)[0].cx[0, 1].run(backend="sympy_unitary")
Matrix([
[ sqrt(2)/2, -sqrt(2)*I/2, 0, 0],
[ 0, 0, -sqrt(2)*I/2, sqrt(2)/2],
[ 0, 0, sqrt(2)/2, -sqrt(2)*I/2],
[-sqrt(2)*I/2, sqrt(2)/2, 0, 0]])
基本はこんな感じです。
N=4の量子フーリエ変換を見てみます。
--H--Rz2--Rz3--Rz4--------------------------
-----*----|----|----H--Rz2--Rz3-------------
----------*----|-------*----|----H--Rz2-----
---------------*------------*-------*----H--
こんな回路です。
Copy from sympy import * from blueqat import Circuit init_printing() Circuit().x[:].h[0].rz(pi/4)[0].cx[1,0].rz(-pi/4)[0].cx[1,0].rz(pi/8)[0].cx[2,0].rz(-pi/8)[0].cx[2,0].rz(pi/16)[0].cx[3,0].rz(-pi/16)[0].cx[3,0].h[1].rz(pi/4)[1].cx[2,1].rz(-pi/4)[1].cx[2,1].rz(pi/8)[1].cx[3,1].rz(-pi/8)[1].cx[3,1].h[2].rz(pi/4)[2].cx[3,2].rz(-pi/4)[2].cx[3,2].h[3].run(backend="sympy_unitary")
⎡ 15⋅ⅈ⋅π 15⋅ⅈ⋅π -5⋅ⅈ⋅π -5⋅ⅈ⋅π -11⋅ⅈ⋅π -11⋅ⅈ⋅π
⎢ ────── ────── ─────── ─────── ──────── ────────
⎢ 16 16 16 16 16 16
⎢ ℯ ℯ -ⅈ⋅ℯ -ⅈ⋅ℯ ℯ ℯ
⎢ ─────── ─────── ──────────── ──────────── ───────── ─────────
⎢ 4 4 4 4 4 4
⎢
⎢ -3⋅ⅈ⋅π -3⋅ⅈ⋅π -7⋅ⅈ⋅π -7⋅ⅈ⋅π -ⅈ⋅π -ⅈ⋅π
⎢ ─────── ─────── ─────── ─────── ───── ─────
⎢ 16 16 16 16 16 16
⎢-ℯ ℯ -ℯ ℯ -ℯ ℯ
⎢────────── ──────── ────────── ──────── ──────── ──────
⎢ 4 4 4 4 4 4
⎢
⎢ -5⋅ⅈ⋅π -5⋅ⅈ⋅π -ⅈ⋅π -ⅈ⋅π -7⋅ⅈ⋅π -7⋅ⅈ⋅π
⎢ ─────── ─────── ───── ───── ─────── ───────
⎢ 16 16 16 16 16 16
⎢-ℯ -ℯ ℯ ℯ -ℯ -ℯ
⎢────────── ────────── ────── ────── ────────── ──────────
⎢ 4 4 4 4 4 4
⎢
⎢ 9⋅ⅈ⋅π 9⋅ⅈ⋅π -3⋅ⅈ⋅π -3⋅ⅈ⋅π 3⋅ⅈ⋅π 3⋅ⅈ⋅π
⎢ ───── ───── ─────── ─────── ───── ─────
⎢ 16 16 16 16 16 16
⎢ ℯ -ℯ -ⅈ⋅ℯ ⅈ⋅ℯ ℯ -ℯ
⎢ ────── ──────── ──────────── ────────── ────── ────────
⎢ 4 4 4 4 4 4
⎢
⎢ -9⋅ⅈ⋅π -9⋅ⅈ⋅π 3⋅ⅈ⋅π 3⋅ⅈ⋅π -3⋅ⅈ⋅π -3⋅ⅈ⋅π
⎢ ─────── ─────── ───── ───── ─────── ───────
⎢ 16 16 16 16 16 16
⎢-ℯ -ℯ ⅈ⋅ℯ ⅈ⋅ℯ ℯ ℯ
⎢────────── ────────── ──────── ──────── ──────── ────────
⎢ 4 4 4 4 4 4
⎢
⎢ 5⋅ⅈ⋅π 5⋅ⅈ⋅π ⅈ⋅π ⅈ⋅π 7⋅ⅈ⋅π 7⋅ⅈ⋅π
⎢ ───── ───── ─── ─── ───── ─────
⎢ 16 16 16 16 16 16
⎢ ℯ -ℯ ℯ -ℯ -ℯ ℯ
⎢ ────── ──────── ──── ────── ──────── ──────
⎢ 4 4 4 4 4 4
⎢
⎢ 3⋅ⅈ⋅π 3⋅ⅈ⋅π 7⋅ⅈ⋅π 7⋅ⅈ⋅π ⅈ⋅π ⅈ⋅π
⎢ ───── ───── ───── ───── ─── ───
⎢ 16 16 16 16 16 16
⎢ ℯ ℯ -ℯ -ℯ -ℯ -ℯ
⎢ ────── ────── ──────── ──────── ────── ──────
⎢ 4 4 4 4 4 4
⎢
⎢ -15⋅ⅈ⋅π -15⋅ⅈ⋅π 5⋅ⅈ⋅π 5⋅ⅈ⋅π 11⋅ⅈ⋅π 11⋅ⅈ⋅π
⎢ ──────── ──────── ───── ───── ────── ──────
⎢ 16 16 16 16 16 16
⎢-ℯ ℯ ⅈ⋅ℯ -ⅈ⋅ℯ ℯ -ℯ
⎢─────────── ───────── ──────── ────────── ─────── ─────────
⎢ 4 4 4 4 4 4
⎢
⎢ 15⋅ⅈ⋅π 15⋅ⅈ⋅π -5⋅ⅈ⋅π -5⋅ⅈ⋅π -11⋅ⅈ⋅π -11⋅ⅈ⋅π
⎢ ────── ────── ─────── ─────── ──────── ────────
⎢ 16 16 16 16 16 16
⎢ -ℯ -ℯ ⅈ⋅ℯ ⅈ⋅ℯ -ℯ -ℯ
⎢ ───────── ───────── ────────── ────────── ─────────── ──────────
⎢ 4 4 4 4 4 4
⎢
⎢ -3⋅ⅈ⋅π -3⋅ⅈ⋅π -7⋅ⅈ⋅π -7⋅ⅈ⋅π -ⅈ⋅π -ⅈ⋅π
⎢ ─────── ─────── ─────── ─────── ───── ─────
⎢ 16 16 16 16 16 16
⎢ ℯ -ℯ ℯ -ℯ ℯ -ℯ
⎢ ──────── ────────── ──────── ────────── ────── ────────
⎢ 4 4 4 4 4 4
⎢
⎢ -5⋅ⅈ⋅π -5⋅ⅈ⋅π -ⅈ⋅π -ⅈ⋅π -7⋅ⅈ⋅π -7⋅ⅈ⋅π
⎢ ─────── ─────── ───── ───── ─────── ───────
⎢ 16 16 16 16 16 16
⎢ ℯ ℯ -ℯ -ℯ ℯ ℯ
⎢ ──────── ──────── ──────── ──────── ──────── ────────
⎢ 4 4 4 4 4 4
⎢
⎢ 9⋅ⅈ⋅π 9⋅ⅈ⋅π -3⋅ⅈ⋅π -3⋅ⅈ⋅π 3⋅ⅈ⋅π 3⋅ⅈ⋅π
⎢ ───── ───── ─────── ─────── ───── ─────
⎢ 16 16 16 16 16 16
⎢ -ℯ ℯ ⅈ⋅ℯ -ⅈ⋅ℯ -ℯ ℯ
⎢ ──────── ────── ────────── ──────────── ──────── ──────
⎢ 4 4 4 4 4 4
⎢
⎢ -9⋅ⅈ⋅π -9⋅ⅈ⋅π 3⋅ⅈ⋅π 3⋅ⅈ⋅π -3⋅ⅈ⋅π -3⋅ⅈ⋅π
⎢ ─────── ─────── ───── ───── ─────── ───────
⎢ 16 16 16 16 16 16
⎢ ℯ ℯ -ⅈ⋅ℯ -ⅈ⋅ℯ -ℯ -ℯ
⎢ ──────── ──────── ────────── ────────── ────────── ──────────
⎢ 4 4 4 4 4 4
⎢
⎢ 5⋅ⅈ⋅π 5⋅ⅈ⋅π ⅈ⋅π ⅈ⋅π 7⋅ⅈ⋅π 7⋅ⅈ⋅π
⎢ ───── ───── ─── ─── ───── ─────
⎢ 16 16 16 16 16 16
⎢ -ℯ ℯ -ℯ ℯ ℯ -ℯ
⎢ ──────── ────── ────── ──── ────── ────────
⎢ 4 4 4 4 4 4
⎢
⎢ 3⋅ⅈ⋅π 3⋅ⅈ⋅π 7⋅ⅈ⋅π 7⋅ⅈ⋅π ⅈ⋅π ⅈ⋅π
⎢ ───── ───── ───── ───── ─── ───
⎢ 16 16 16 16 16 16
⎢ -ℯ -ℯ ℯ ℯ ℯ ℯ
⎢ ──────── ──────── ────── ────── ──── ────
⎢ 4 4 4 4 4 4
⎢
⎢ -15⋅ⅈ⋅π -15⋅ⅈ⋅π 5⋅ⅈ⋅π 5⋅ⅈ⋅π 11⋅ⅈ⋅π 11⋅ⅈ⋅π
⎢ ──────── ──────── ───── ───── ────── ──────
⎢ 16 16 16 16 16 16
⎢ ℯ -ℯ -ⅈ⋅ℯ ⅈ⋅ℯ -ℯ ℯ
⎢ ───────── ─────────── ────────── ──────── ───────── ───────
⎣ 4 4 4 4 4 4
-7⋅ⅈ⋅π -7⋅ⅈ⋅π -ⅈ⋅π -ⅈ⋅π ⅈ⋅π ⅈ⋅π -
─────── ─────── ───── ───── ─── ─── ─
16 16 8 8 8 8
ℯ ℯ -ⅈ⋅ℯ -ⅈ⋅ℯ -ⅈ⋅ℯ -ⅈ⋅ℯ ℯ
──────── ──────── ────────── ────────── ──────── ──────── ──
4 4 4 4 4 4
-5⋅ⅈ⋅π -5⋅ⅈ⋅π ⅈ⋅π ⅈ⋅π -ⅈ⋅π -ⅈ⋅π
─────── ─────── ─── ─── ───── ─────
16 16 8 8 8 8
-ℯ ℯ -ℯ ℯ -ℯ ℯ -ℯ
────────── ──────── ────── ──── ──────── ────── ──
4 4 4 4 4 4
-3⋅ⅈ⋅π -3⋅ⅈ⋅π -ⅈ⋅π -ⅈ⋅π ⅈ⋅π ⅈ⋅π -
─────── ─────── ───── ───── ─── ─── ─
16 16 8 8 8 8
ℯ ℯ -ℯ -ℯ ℯ ℯ -ℯ
──────── ──────── ──────── ──────── ──── ──── ───
4 4 4 4 4 4
-ⅈ⋅π -ⅈ⋅π ⅈ⋅π ⅈ⋅π 3⋅ⅈ⋅π 3⋅ⅈ⋅π
───── ───── ─── ─── ───── ─────
16 16 8 8 8 8
-ℯ ℯ ⅈ⋅ℯ -ⅈ⋅ℯ -ℯ ℯ ℯ
──────── ────── ────── ──────── ──────── ────── ─
4 4 4 4 4 4
ⅈ⋅π ⅈ⋅π -ⅈ⋅π -ⅈ⋅π -3⋅ⅈ⋅π -3⋅ⅈ⋅π -
─── ─── ───── ───── ─────── ─────── ─
16 16 8 8 8 8
ℯ ℯ ⅈ⋅ℯ ⅈ⋅ℯ -ℯ -ℯ ℯ
──── ──── ──────── ──────── ────────── ────────── ──
4 4 4 4 4 4
3⋅ⅈ⋅π 3⋅ⅈ⋅π ⅈ⋅π ⅈ⋅π -ⅈ⋅π -ⅈ⋅π
───── ───── ─── ─── ───── ─────
16 16 8 8 8 8
-ℯ ℯ ℯ -ℯ ℯ -ℯ -ℯ
──────── ────── ──── ────── ────── ──────── ──
4 4 4 4 4 4
5⋅ⅈ⋅π 5⋅ⅈ⋅π -ⅈ⋅π -ⅈ⋅π ⅈ⋅π ⅈ⋅π -
───── ───── ───── ───── ─── ─── ─
16 16 8 8 8 8
ℯ ℯ ℯ ℯ -ℯ -ℯ -ℯ
────── ────── ────── ────── ────── ────── ───
4 4 4 4 4 4
7⋅ⅈ⋅π 7⋅ⅈ⋅π ⅈ⋅π ⅈ⋅π -ⅈ⋅π -ⅈ⋅π
───── ───── ─── ─── ───── ─────
16 16 8 8 8 8
-ℯ ℯ -ⅈ⋅ℯ ⅈ⋅ℯ ⅈ⋅ℯ -ⅈ⋅ℯ ℯ
──────── ────── ──────── ────── ──────── ────────── ─
4 4 4 4 4 4
-7⋅ⅈ⋅π -7⋅ⅈ⋅π -ⅈ⋅π -ⅈ⋅π ⅈ⋅π ⅈ⋅π -
─────── ─────── ───── ───── ─── ─── ─
16 16 8 8 8 8
-ℯ -ℯ -ⅈ⋅ℯ -ⅈ⋅ℯ -ⅈ⋅ℯ -ⅈ⋅ℯ ℯ
─ ────────── ────────── ────────── ────────── ──────── ──────── ──
4 4 4 4 4 4
-5⋅ⅈ⋅π -5⋅ⅈ⋅π ⅈ⋅π ⅈ⋅π -ⅈ⋅π -ⅈ⋅π
─────── ─────── ─── ─── ───── ─────
16 16 8 8 8 8
ℯ -ℯ -ℯ ℯ -ℯ ℯ -ℯ
──────── ────────── ────── ──── ──────── ────── ──
4 4 4 4 4 4
-3⋅ⅈ⋅π -3⋅ⅈ⋅π -ⅈ⋅π -ⅈ⋅π ⅈ⋅π ⅈ⋅π -
─────── ─────── ───── ───── ─── ─── ─
16 16 8 8 8 8
-ℯ -ℯ -ℯ -ℯ ℯ ℯ -ℯ
────────── ────────── ──────── ──────── ──── ──── ───
4 4 4 4 4 4
-ⅈ⋅π -ⅈ⋅π ⅈ⋅π ⅈ⋅π 3⋅ⅈ⋅π 3⋅ⅈ⋅π
───── ───── ─── ─── ───── ─────
16 16 8 8 8 8
ℯ -ℯ ⅈ⋅ℯ -ⅈ⋅ℯ -ℯ ℯ ℯ
────── ──────── ────── ──────── ──────── ────── ─
4 4 4 4 4 4
ⅈ⋅π ⅈ⋅π -ⅈ⋅π -ⅈ⋅π -3⋅ⅈ⋅π -3⋅ⅈ⋅π -
─── ─── ───── ───── ─────── ─────── ─
16 16 8 8 8 8
-ℯ -ℯ ⅈ⋅ℯ ⅈ⋅ℯ -ℯ -ℯ ℯ
────── ────── ──────── ──────── ────────── ────────── ──
4 4 4 4 4 4
3⋅ⅈ⋅π 3⋅ⅈ⋅π ⅈ⋅π ⅈ⋅π -ⅈ⋅π -ⅈ⋅π
───── ───── ─── ─── ───── ─────
16 16 8 8 8 8
ℯ -ℯ ℯ -ℯ ℯ -ℯ -ℯ
────── ──────── ──── ────── ────── ──────── ──
4 4 4 4 4 4
5⋅ⅈ⋅π 5⋅ⅈ⋅π -ⅈ⋅π -ⅈ⋅π ⅈ⋅π ⅈ⋅π -
───── ───── ───── ───── ─── ─── ─
16 16 8 8 8 8
-ℯ -ℯ ℯ ℯ -ℯ -ℯ -ℯ
──────── ──────── ────── ────── ────── ────── ───
4 4 4 4 4 4
7⋅ⅈ⋅π 7⋅ⅈ⋅π ⅈ⋅π ⅈ⋅π -ⅈ⋅π -ⅈ⋅π
───── ───── ─── ─── ───── ─────
16 16 8 8 8 8
ℯ -ℯ -ⅈ⋅ℯ ⅈ⋅ℯ ⅈ⋅ℯ -ⅈ⋅ℯ ℯ
────── ──────── ──────── ────── ──────── ────────── ─
4 4 4 4 4 4
ⅈ⋅π -ⅈ⋅π ⎤
──── ───── ⎥
4 4 ⎥
ℯ ⎥
──── ────── 1/4 1/4⎥
4 4 ⎥
⎥
ⅈ⋅π ⅈ⋅π ⎥
─── ─── ⎥
4 4 ⎥
ℯ ⎥
──── ──── -1/4 1/4⎥
4 4 ⎥
⎥
ⅈ⋅π -ⅈ⋅π ⎥
──── ───── ⎥
4 4 ⎥
-ℯ ⎥
───── ──────── 1/4 1/4⎥
4 4 ⎥
⎥
ⅈ⋅π ⅈ⋅π ⎥
─── ─── ⎥
4 4 ⎥
-ℯ ⎥
─── ────── -1/4 1/4⎥
4 4 ⎥
⎥
ⅈ⋅π -ⅈ⋅π ⎥
──── ───── ⎥
4 4 ⎥
ℯ ⎥
──── ────── 1/4 1/4⎥
4 4 ⎥
⎥
ⅈ⋅π ⅈ⋅π ⎥
─── ─── ⎥
4 4 ⎥
ℯ ⎥
──── ──── -1/4 1/4⎥
4 4 ⎥
⎥
ⅈ⋅π -ⅈ⋅π ⎥
──── ───── ⎥
4 4 ⎥
-ℯ ⎥
───── ──────── 1/4 1/4⎥
4 4 ⎥
⎥
ⅈ⋅π ⅈ⋅π ⎥
─── ─── ⎥
4 4 ⎥
-ℯ ⎥
─── ────── -1/4 1/4⎥
4 4 ⎥
⎥
ⅈ⋅π -ⅈ⋅π ⎥
──── ───── ⎥
4 4 ⎥
ℯ ⎥
──── ────── 1/4 1/4⎥
4 4 ⎥
⎥
ⅈ⋅π ⅈ⋅π ⎥
─── ─── ⎥
4 4 ⎥
ℯ ⎥
──── ──── -1/4 1/4⎥
4 4 ⎥
⎥
ⅈ⋅π -ⅈ⋅π ⎥
──── ───── ⎥
4 4 ⎥
-ℯ ⎥
───── ──────── 1/4 1/4⎥
4 4 ⎥
⎥
ⅈ⋅π ⅈ⋅π ⎥
─── ─── ⎥
4 4 ⎥
-ℯ ⎥
─── ────── -1/4 1/4⎥
4 4 ⎥
⎥
ⅈ⋅π -ⅈ⋅π ⎥
──── ───── ⎥
4 4 ⎥
ℯ ⎥
──── ────── 1/4 1/4⎥
4 4 ⎥
⎥
ⅈ⋅π ⅈ⋅π ⎥
─── ─── ⎥
4 4 ⎥
ℯ ⎥
──── ──── -1/4 1/4⎥
4 4 ⎥
⎥
ⅈ⋅π -ⅈ⋅π ⎥
──── ───── ⎥
4 4 ⎥
-ℯ ⎥
───── ──────── 1/4 1/4⎥
4 4 ⎥
⎥
ⅈ⋅π ⅈ⋅π ⎥
─── ─── ⎥
4 4 ⎥
-ℯ ⎥
─── ────── -1/4 1/4⎥
4 4 ⎦
でました!
中は大変なことになってたんですね。。。勉強になりました!みなさんもつかってみてくださいませ。以上です。
Copy
© 2024, blueqat Inc. All rights reserved