Qamomileは量子プログラミングSDKです。型付きPython関数で量子回路を記述し、Qiskit・CUDA-Q・QURI Parts・qBraidなどのQuantum SDKで実行できます。また、シンボリックな代数的リソース推定やブラックボックス(オラクル)を含むような実行そのものができない回路のリソース推定も可能です。
注意 Qamomileは現在もアクティブに開発中であり、リリース間で破壊的変更が加わる可能性があります。不具合を見つけた場合は、GitHub Issuesでお知らせいただければ幸いです。
はじめての量子カーネル — カーネルの定義・可視化・実行、アフィンルール
パラメータ付きカーネル — 構造パラメータとランタイムパラメータ、バインド/スイープパターン
リソース推定 — シンボリックなコスト分析、ゲート内訳、スケーリング分析
実行モデル —
sample()とrun()、オブザーバブル、ビット順序古典フローパターン — ループ、スパースデータ、条件分岐
再利用パターン — ヘルパーカーネル、コンポジットゲート、スタブ
VQA¶
QAOAでMaxCutを解く — QAOA回路をゼロから構築してMaxCutを解き、組み込みの
qaoa_stateと比較する
最適化¶
QAOAによるグラフ分割 — QAOAでグラフ分割問題をエンドツーエンドで解く
対応Quantum SDK¶
Qamomileは複数のQuantum SDKを実行バックエンドとしてサポートしています。Qiskitはデフォルトで含まれており、その他はオプションの追加パッケージです。
Qiskit(デフォルト)¶
pip install qamomile に含まれています。追加のフラグは不要です。
from qamomile.qiskit import QiskitTranspiler, QiskitExecutorCUDA-Q(オプション)¶
CUDA-QはLinuxおよびmacOS ARM64(Apple Silicon)をサポートしています。使用するCUDAバージョンに合わせてインストールしてください:
pip install "qamomile[cudaq-cu12]" # CUDA 12.x、Linux向け
pip install "qamomile[cudaq-cu13]" # CUDA 13.x、LinuxまたはmacOS ARM64向けfrom qamomile.cudaq import CudaqTranspiler, CudaqExecutorQURI Parts(オプション)¶
pip install "qamomile[quri_parts]"from qamomile.quri_parts import QuriPartsTranspiler, QuriPartsExecutorqBraid(オプション)¶
QiskitのQuantum回路をqBraid対応のデバイスやシミュレータで実行できます。
pip install "qamomile[qbraid]"from qamomile.qbraid import QBraidExecutorインストール¶
pip install qamomileクイック例¶
import qamomile.circuit as qmc
from qamomile.qiskit import QiskitTranspiler
@qmc.qkernel
def bell_state() -> tuple[qmc.Bit, qmc.Bit]:
q0 = qmc.qubit(name="q0")
q1 = qmc.qubit(name="q1")
q0 = qmc.h(q0)
q0, q1 = qmc.cx(q0, q1)
return qmc.measure(q0), qmc.measure(q1)
transpiler = QiskitTranspiler()
exe = transpiler.transpile(bell_state)
result = exe.sample(transpiler.executor(), shots=1000).result()
for outcome, count in result.results:
print(f" {outcome}: {count}")