2024年6月8日土曜日

量子コンピュータBlueqat

Blueqatインストールと実行テストです
読み方はブルーキャットだそうです
catの cの代わりに quantum(量子)の qを当てたのでしょう

無料の量子コンピューター用シミュレーションソフトです
blueqat.jpg






■インストール(実行エラーになります)
Python312でインストールを行いました
Pythonの実行環境にパスが張られていれば
コマンドプロンプトで下記を実行するだけです
pip install blueqat

最新の blueqatと numpy. scipyもインストールされます

結果は、、、
Successfully installed autoray-0.6.11 blueqat-2.0.4 colorama-0.4.6 contourpy-1.2.1
cycler-0.12.1 cytoolz-0.12.3 fonttools-4.51.0 kiwisolver-1.4.5 llvmlite-0.42.0 matp
lotlib-3.8.4 networkx-3.3 numba-0.59.1 numpy-1.26.4 opt-einsum-3.3.0 packaging-24.0
 pillow-10.3.0 psutil-5.9.8 pyparsing-3.1.2 python-dateutil-2.9.0.post0 quimb-1.4.0
 scipy-1.13.0 six-1.16.0 toolz-0.12.1 tqdm-4.66.4



■バージョン(実行エラーになります)
blueqat-2.0.4  日付は 2023.04.02でした
numpy-1.26.4
scipy-1.13.0




■実行エラー
簡単なテスト
from blueqat import Circuit
Circuit().h[0,1].m[:].run(shots=100)

エラーです
Traceback (most recent call last):
File "<pyshell#6>", line 1, in <module>
Circuit().h[0].h[1].m[:].run(shots=100)
File "F:\Python312\Lib\site-packages\blueqat\circuit.py", line 157, in run
return backend.run(self.ops, self.n_qubits, *args, **kwargs)
File "F:\Python312\Lib\site-packages\blueqat\backends\backendbase.py", line 91, in run
return self._run(gates, n_qubits, args, kwargs)
File "F:\Python312\Lib\site-packages\blueqat\backends\backendbase.py", line 78, in _run
gates, ctx = self._preprocess_run(gates, n_qubits, args, kwargs)
File "F:\Python312\Lib\site-packages\blueqat\backends\quimb.py", line 11, in _preprocess_run
import quimb.tensor as qtn
File "F:\Python312\Lib\site-packages\quimb\__init__.py", line 10, in <module>
from .core import (
File "F:\Python312\Lib\site-packages\quimb\core.py", line 2152, in <module>
sp.csr_matrix._mul_vector = csr_mulvec_wrap(sp.csr_matrix._mul_vector)
AttributeError: type object 'csr_matrix' has no attribute '_mul_vector'. Did you mean: '_matmul_vector'?

バージョン毎の整合性が取れてないよう?
その他
quimb-1.4.0
quimb 1.8.1 も同様でした


■アンインストール
pip uninstall blueqat



■安定バージョン
安定バージョンは 1.0.4だそうです
pip install blueqat==1.0.4



■実行
やっと動きました
from blueqat import Circuit
Circuit().h[0,1].m[:].run(shots=100)

3回実行した結果
→  Counter({'01': 33, '11': 25, '10': 21, '00': 21})
→  Counter({'00': 33, '11': 27, '01': 22, '10': 18})
→  Counter({'10': 31, '01': 25, '11': 22, '00': 22})



■感想
残念ながら blueqatのサポートは終わっているようです
ですが、簡単なシミュレーションには向いていると思います
無料というのもありがたいですね
少し遊んでから、、、Qiskit, SymPy, Q#などを検討します

0 件のコメント:

コメントを投稿

ヒヤッ!としたこと

 昨年に車を運転していてヒヤッ!としたことを書き留めます 反省を込めて下記4つです ・バックするつもりがDに入っていたこと ・思いがけない段差がありアクセルを踏んでしまったこと ・右折時に後から自転車が来ていたこと ・右折時に後から車が来ていたこと 「いらすとや」より