tequilahub/tequila
A High-Level Abstraction Framework for Quantum Algorithms
Tequila – 変分量子アルゴリズム用のPythonフレームワーク
何であるか – Tequilaは、ハードウェアに依存しない方法で、量子回路を記述・結合・微分・最適化できるPythonライブラリです。変分アルゴリズム(VQE、QAOAなど)に焦点を当てており、量子バックエンド(シミュレータおよび実機)および量子化学パッケージの高レベルな抽象化を提供します。
主なアイデア
- 抽象データ構造 – 回路、ハミルトニアン、期待値、最適化目的はそれぞれオブジェクト(
tq.gates、tq.ExpectationValue、tq.Variable)として表現されます。これにより、特定のシミュレータにハードコードせずに複雑なワークフローを構築できます。 - 自動微分 – ライブラリは期待値の勾配を自動的に計算でき、BFGSなどの勾配ベースの最適化手法を可能にします。
- バックエンドに依存しない実行 – 対応しているバックエンド(Qulacs、Qibo、Qiskit、Cirq、PyQuil、QLM)がインストールされていれば、Tequilaは自動的に検出・使用します。また、量子化学エンジン(Psi4、PySCF、Madness)を接続して、分子構造から量子ハミルトニアンを生成することもできます。
- 化学に特化したユーティリティ – 分子ハミルトニアンの構築、一般的なアンザッツ(UCC、UpCCGSD、SPAなど)の生成、古典的参照法(CISD、FCI)との比較を支援するヘルパー関数が用意されています。
一般的なワークフロー(Hello-World)
import tequila as tq
from math import pi
# 1️⃣ 変分パラメータの定義
θ = tq.Variable('θ')
# 2️⃣ 簡単な回路の構築(qubit 0 への Ry 回転)
U = tq.gates.Ry(angle=θ*pi, target=0)
# 3️⃣ 観測量の選択(qubit 0 への Pauli-X)
H = tq.paulis.X(0)
# 4️⃣ 期待値 ⟨ψ(θ)|H|ψ(θ)⟩ の構築
E = tq.ExpectationValue(H=H, U=U)
# 5️⃣ 最適化 – 期待値の二乗を最小化
result = tq.minimize(method='bfgs', objective=E**2)
# 6️⃣ 結果の確認
print('最適な波動関数:', tq.simulate(U, variables=result.angles))
result.history.plot('energies')
このパターンは化学にも拡張可能:Molecule を定義し、量子ハミルトニアンを生成し、アンザッツを選択して tq.minimize を呼び出します。
インストール
- コアパッケージはPyPI上で
tequila-basicとして配布されています。pip install tequila-basicでインストールできます。 - シミュレータでの最高パフォーマンスを得るには、Qulacsなどの高速バックエンドを追加してください(
pip install qulacs)。 - オプションの化学バックエンド(Psi4、PySCF、Madness)は別途(condaまたはpip)インストールされ、自動検出されます。
- 開発版はGitHubから直接取得できます(
pip install git+https://github.com/tequilahub/tequila.git)。
エコシステムとコミュニティ
- チュートリアルとドキュメント – 基本的な使い方、化学モジュール、高度なトピックをカバーするノートブックを含む専用サイト(
tequilahub.github.io/tequila-tutorials)があります。 - 研究への影響 – READMEには、VQE、基底関数フリー法、量子光学ハードウェア設計、ロバスト性解析などにTequilaが使われた数十の査読付き論文がリストアップされています。多くの論文は
tequila-tutorialsリポジトリに例題ノートブックを提供しています。 - 拡張性 – プルリクエストで新しいバックエンド、アンザッツ、最適化戦略を貢献できます。プロジェクトは標準的なPythonツール(Ruffによるフォーマット、GitHub ActionsによるCI)に従っています。
誰が使うべきか
- 異なるシミュレータや実量子ハードウェア上でVQEを実行したい量子化学研究者。
- 新しい変分アンザッツや勾配ベース最適化スキームをプロトタイピングするアルゴリズム開発者。
- 低レベルのバックエンド詳細を抽象化しつつ、基礎となる回路モデルを露出する教育用ライブラリを探している教育者。
上記のすべての情報はリポジトリのREADMEから直接取得したものであり、追加の機能は推測されていません。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト