Qamomile

Qamomileドキュメントへようこそ

Qamomileは量子プログラミングSDKです。型付きPython関数で量子回路を記述し、Qiskit・CUDA-Q・QURI Parts・qBraidなどのQuantum SDKで実行できます。また、シンボリックな代数的リソース推定やブラックボックス(オラクル)を含むような実行そのものができない回路のリソース推定も可能です。

注意 Qamomileは現在もアクティブに開発中であり、リリース間で破壊的変更が加わる可能性があります。不具合を見つけた場合は、GitHub Issuesでお知らせいただければ幸いです。

  1. はじめての量子カーネル — カーネルの定義・可視化・実行、アフィンルール
  2. パラメータ付きカーネル — 構造パラメータとランタイムパラメータ、バインド/スイープパターン
  3. リソース推定 — シンボリックなコスト分析、ゲート内訳、スケーリング分析
  4. 実行モデルsample()run()、オブザーバブル、ビット順序
  5. 古典フローパターン — ループ、スパースデータ、条件分岐
  6. 再利用パターン — ヘルパーカーネル、コンポジットゲート、スタブ

VQA

最適化

対応Quantum SDK

Qamomileは複数のQuantum SDKを実行バックエンドとしてサポートしています。Qiskitはデフォルトで含まれており、その他はオプションの追加パッケージです。

Qiskit(デフォルト)

pip install qamomile に含まれています。追加のフラグは不要です。

from qamomile.qiskit import QiskitTranspiler, QiskitExecutor

CUDA-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, CudaqExecutor

QURI Parts(オプション)

pip install "qamomile[quri_parts]"
from qamomile.quri_parts import QuriPartsTranspiler, QuriPartsExecutor

qBraid(オプション)

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

リンク