Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

インテグレーション

Qamomileを外部ライブラリや量子プラットフォームと組み合わせて使うときのノートです。

タグで探す

このセクション: integration optimization variational

他のセクション: algorithm chemistry encoding error-correction finance machine-learning oracle-based primitive resource-estimation sample-based simulation tutorial usage

Amazon Braketサポート

Braketネイティブ回路へトランスパイルし、ローカルまたはAWS上で実行します。

CUDA-Qサポート

MaxCut QAOAをCUDA-Qへトランスパイルし、サンプリングと期待値計算を実行します。

OMMX Quantum Benchmarksの活用: Qamomileによる量子アルゴリズムの実装とベンチマーク

OMMX Quantum Benchmarksから取得したLABSインスタンス上でQAOAを動かし、SCIPと比較します。

qBraid サポート

qBraid対応デバイスでQiskit回路を実行します。

Qiskit サポート

Qiskitへトランスパイルし、ローカルシミュレータで実行し、Qiskitネイティブ回路機能を確認します。

QURI Parts サポート

QURI Partsへトランスパイルし、Qulacs状態ベクトルシミュレータで実行します。

HUGRで量子整数を測定する

hugr extraをインストールすると、HugrTranspilerで幅が0〜64ビットに確定したレジスタのqmc.measure(qmc.cast(register, qmc.QInt))を扱えます。QIntレジスタは、量子カーネルを直接呼び出す際の引数や戻り値にも使えます。HugrTranspiler().transpile(kernel, bindings=...)でrun()とsample()を備えたHugrExecutableを取得し、HugrExecutor(target="selene")でローカル実行します。HUGRグラフと入出力情報をCompiledProgramとして取得する場合は、compile()を使います。

測定はレジスタを消費してUIntを返します。ビット0が最下位ビットで、整数値はbit[i] * 2**iの総和です。スライスでは先頭の量子ビットがビット0になります。run()はPythonのintを返し、sample()は復元した整数の出現回数を集計します。対応するタプルや辞書の戻り値でも整数型を維持します。空のレジスタの値は0です。整数への復元にはHUGRグラフ内の整数演算を使い、Floatへの変換を介さずにビット63や2**64 - 1を含む64ビットすべてを保持します。

レジスタ幅を決める引数は、トランスパイル時のbindingsで指定してください。bindingsの指定前にプログラムをシリアライズすることもできます。未確定の幅と引数の対応は量子カーネルの直接呼び出しを通じて保持され、復元したプログラムのトランスパイル時に幅が確定します。