【新機能】Blueqatに回路のユニタリ行列が確認できる機能が追加


はじめに

こんにちは。量子コンピュータってなんかよくわからないよねっていう人多いですよね。しかしツールがどんどん進化して少しずつ誰でも使える環境ができてきてます。

今回はまだちょっと難しいですが、作った量子回路のユニタリ行列と呼ばれる、全体回路の数学的な表現を取れる機能が量子コンピュータソフトウェア開発キットのBlueqatに搭載されました。これによってデバッグが楽になります。

早速使ってみましょう。


インストールとアップデート

まだ使ったことない人は新規インストールをして、使ったことある人はアップデートをしましょう。

pip install -U blueqat

numpy, scipy, sympy (こちらはoptional)も入ってない方はいれてみてください。

pip install numpy scipy sympy


早速例題

早速sympyを読み込み、やってみます。

from sympy import pi

from blueqat import Circuit

Circuit().rx(pi / 2)[0].cx[0, 1].run(backend="sympy_unitary")

2 -2⋅ⅈ
── ────── 0 0
2 2

-2⋅ⅈ 2
⎢────── ── 0 0
2 2

-2⋅ⅈ 2
0 0 ────── ──
2 2

2 -2⋅ⅈ
0 0 ── ──────⎥
2 2

できました。行列表現で自分の作った回路が確認できます。こちらはみんなのお力添えで早速できました。

JupyternotebookやGoogle colabだとさらに便利に

jupyternotebookだとlatex形式で数式出力ができます。

Untitled4-ipynb-Colaboratory-1024x427.png

素敵ですね。

from sympy import *

from blueqat import Circuit
init_printing()

Circuit().rx(pi / 2)[0].cx[0, 1].run(backend="sympy_unitary")

基本はこんな感じです。


GoogleColab

GoogleColabの場合には、!マークをつけて

!pip install blueqat

してからの、まずは出力結果をmathjaxで出力できるように設定します。

from google.colab.output._publish import javascript

javascript(url="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.3/latest.js?config=default")```

それから、

```python
from sympy import *
from blueqat import Circuit
init_printing()

Circuit().rx(pi / 2)[0].cx[0, 1].run(backend="sympy_unitary")

こんな形で行間に数式が出ます。とても便利です。

Untitled4-ipynb-Colaboratory-1024x427.png


量子フーリエ変換やってみる

N=4の量子フーリエ変換を見てみます。

--H--Rz2--Rz3--Rz4--------------------------

-----*----|----|----H--Rz2--Rz3-------------
----------*----|-------*----|----H--Rz2-----
---------------*------------*-------*----H--

こんな回路です。

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")

なんかうまく出力されないのでコピペでgoogle colabのテキスト欄に張り付けましたら、、、

Untitled4-ipynb-Colaboratory-1.png

でました!中は大変なことになってたんですね。。。勉強になりました!みなさんもつかってみてくださいませ。以上です。