Qunova HI-VQE ケミストリー API リファレンス
Qiskit Functions — パートナー組織によって開発された既製のツール — ソフトウェア開発ワークフローの一部を抽象化することで、ユーティリティ規模でのアルゴリズムの発見とアプリケーション開発を簡素化し、加速させます。 このQiskit関数のガイドを表示するには、ここをクリックしてください。
HI-VQE Chemistry Qiskit 関数ガイド
入力
geometry
タイプ: `Union[List[List[Union[str, Tuple[float, float, float]]]], str]`
これは、文字列、または原子と座標のペアを含む構造化リストのいずれかです。 これが文字列として指定される場合、デカルト座標形式の分子構造でなければなりません。 これをリストとして指定する場合は、それぞれ原子文字列と座標のタプルを含むリストのリストとして指定する必要があります。
- 必須:はい
- 例:
[['O', (0, 0, 0)], ['H', (0, 1, 0)], ['H', (0, 0, 1)]]または"O 0 0 0; H 0 1 0; H 0 0 1"
backend_name
タイプ: `str`
クエリを実行するバックエンドの名前。
- 必須:はい
- 例:
ibm_fez
max_states
タイプ: `int`
対角化における最大部分空間次元。 その数が完全な平方数でない場合、使用される州の数は少なくなります。
- 必須:はい
- 例:
100
max_expansion_states
タイプ: `int`
各反復処理に含める、古典的に生成されたCI状態の最大数。
- 必須:はい
- 例:
10
molecule_options
タイプ: `dict`
HI-VQEの入力として使用される分子に関連するオプション。
以下のリストには、この molecule_options 辞書に設定可能なすべてのキーと値、およびそれらのデータ型とデフォルト値が記載されています。 すべてのキーは任意です。
charge
タイプ: `int`
デフォルト値: `0`
分子系の総正味電荷を示す整数。 デフォルト値は 0 ですが、任意の整数に設定できます。
- 有効範囲:各種
basis
タイプ: `str`
デフォルト値: `'sto-3g'`
基底型を指定する文字列。これらはpyscfに渡されます。 例えば: "sto-3g", "3-21g", "6-31g", "cc-pvdz"
- 有効範囲:各種
active_orbitals
タイプ: `List[int]`
デフォルト値: Every orbital index
問題で使用される量子ビット数 n について、区間 [0, n) における有効な軌道インデックスの一覧。 これを指定する場合は、frozen_orbitals 引数も指定する必要があります。
- 有効範囲:この問題に対して有効な空間軌道指数
frozen_orbitals
タイプ: `List[int]`
デフォルト値: `No indices`
active_orbitals と同じ範囲にある凍結軌道指数のリスト。 指定する場合は、active_orbitals も指定する必要があります。 凍結するのは占有軌道のみであることに注意してください。凍結された占有軌道1つにつき、活性電子の数が2つ減少するからです。
- 有効範囲:当該問題において有効な空間軌道指数(活性軌道を除く)
orbital_coeffs
タイプ: `List[List[float]]`
デフォルト値: `Hartree-Fock molecular orbitals`
系における電子反発積分の計算に使用される空間軌道係数。 代表的な例としては、ハートリー・フォック分子軌道、自然軌道、およびAVAS軌道が挙げられる。
- 有効範囲:各種
symmetry
タイプ: `Union[str, bool]`
デフォルト値: `False`
初期の分子計算において、対称適応軌道基底を構築するために点群対称性を適用するために使用される。 これらの対称性適応軌道は、以降のSCF計算における基底関数として用いられる。 デフォルト値は False です。True に設定すると、この機能が呼び出され、任意のポイントグループが自動的に検出・使用されます。 特定の対称性が指定されている場合(例:symmetry = “Dooh”)、分子の幾何構造がこの指定された対称性を満たしていないと、エラーが発生します。
- 有効範囲:
TrueまたはFalse
symmetry_subgroup
タイプ: `Optional[str]`
デフォルト値: `None`
検出した対称性の部分群を生成するために使用できます。 symmetry キーワード引数を使用して対称性が指定されている場合、これは効果を持ちません。
- 有効範囲: pyscfのドキュメントを参照してください
unit
タイプ: `str`
デフォルト値: `angstrom`
原子座標および距離に使用する測定単位を指定します。 デフォルトでは、オングストローム単位が使用されます。
- 有効範囲: pyscfのドキュメントを参照してください
nucmod
タイプ: `Optional[Union[dict, str]]`
デフォルト値: `None`
使用する原子核モデルを指定します。 デフォルトでは点核モデルが使用されますが、他の値を設定するとガウス核モデルが有効になります。 関数が指定された場合、その関数はガウス核モデルとともに使用され、核電荷分布値「zeta」が生成されます。
- 有効範囲: pyscfのドキュメントを参照してください
pseudo
タイプ: `Optional[Union[dict, str]]`
デフォルト値: `None`
分子内の原子に対する擬ポテンシャルを指定します。 デフォルトでは「None」となっており、これは擬ポテンシャルが適用されず、すべての電子が計算に明示的に含まれることを示しています。
- 有効範囲: pyscfのドキュメントを参照してください
cart
タイプ: `bool`
デフォルト値: `False`
計算において、角運動量の基底関数としてデカルトGTOを使用するかどうかを指定します。 デフォルト値の False を指定すると、球面 GTO が使用されます。
- 有効範囲: pyscfのドキュメントを参照してください
magmom
タイプ: `(`Optional[List[Union[int, float]]]`
デフォルト値: `1_000`
各原子の同軸スピン磁気モーメントを設定します。 デフォルトでは、これは None であり、各原子はスピンが 0 の状態で初期化されます。
- 有効範囲: pyscfのドキュメントを参照してください
avas_aolabels
タイプ: `Optional[List[str]]`
デフォルト値: `None`
これにより、AVASスキームに含める原子軌道が定義されます。 AVASのドキュメントを参照してください。
- 有効範囲:例: [「H 1s 」、「O 2p 」] (H O)
avas_threshold
タイプ: `float`
デフォルト値: `0.2`
これは、アクティブ空間にどの原子軌道(AO)を残すかを決定するために使用される閾値を指定します。
- 有効範囲: 0.0 から 2.0 まで
noons_level
タイプ: `Optional[str]`
デフォルト値: `None`
ここでは、自然軌道(Natural Orbitals)を構築し、自然軌道占有数(NOONs)スキームに基づいて活性軌道を選択するための理論的アプローチを定義する。 NOONsのドキュメントを参照してください。 軌道数(および量子ビット数)を制御するには、アクティブな軌道インデックスと凍結された軌道インデックスの両方を指定する必要があります。
- 有効範囲:
"mp2"または"ccsd"
- 必須:いいえ
- 例:
{"basis": "sto3g", "unit": "angstrom" }
hivqe_options
タイプ: `dict`
HI-VQEアルゴリズムの動作を制御するオプション。
以下のリストには、この hivqe_options 辞書に設定可能なすべてのキーと値、およびそれらのデータ型とデフォルト値が記載されています。 すべてのキーは任意です。
shots
タイプ: `int`
デフォルト値: `1_000`
1回の反復ごとに量子デバイスで使用するショット数。
- 有効範囲:1 から 10,000
max_iter
タイプ: `int`
デフォルト値: `25`
仮説を最適化するために実行する反復の最大回数。 収束が早期に達成された場合、アルゴリズムはより少ない反復回数で済むことがある。
- 有効範囲:1~50
initial_basis_states
タイプ: `List[str]`
デフォルト値: The Hartree-Fock state
以前の結果から得られた古典的な状態を用いて、アルゴリズムを再実行するために使用できます。
- 有効な範囲:問題に必要な量子ビット数とビット数が一致するバイナリ文字列。
ansatz
タイプ: `str`
デフォルト値: `epa`
これは、新しい状態を生成するために最適化する量子アンザッツを指定します。 "epa" 励起を保存する仮定を選択する。 "hea" ハードウェア効率に優れたアプローチを選択します。 "lucj" 局所一様クラスター・ジャストロウのアンザッツを選択する。
- 有効な範囲:
"epa"、"hea"、または"lucj"
convergence_count
タイプ: `int`
デフォルト値: `3`
アルゴリズムが収束したとみなされるまでに経過すべき、計算されたエネルギーに有意な変化が見られない反復回数。
- 少なくとも2
convergence_abstol
タイプ: `float`
デフォルト値: `1e-4`
収束チェックの目的において、有意であるとみなされる計算エネルギーの変化量。
- 有効な範囲:0より大きく、かつ1以下
reset_convergence_count
タイプ: `bool`
デフォルト値: `True`
収束とみなされるためには True、反復 convergence_count 処理の間に、収束を妨げるような重大な変化が生じてはならない。 もし False、であれば、最適化プロセスのいずれかの反復でわずかな変化しか生じなかった場合、アルゴリズム convergence_count は の後に終了する。
- 有効範囲:
TrueまたはFalse
configuration_recovery
タイプ: `bool`
デフォルト値: `True`
パッケージ recoveryqiskit-addon-sqd の設定を使用するかどうか。 Trueの場合、量子デバイスからサンプリングされた無効な状態は、古典的に補正される。 falseの場合、それらは破棄されます。
- 有効範囲:
TrueまたはFalse
ansatz_entanglement
タイプ: `str`
デフォルト値: `circular`
これは、 LUCJアンザッツに関する Qiskitおよびffsimの一般的な規約に従い、量子回路内で使用すべきエンタングルメント方式を指定するものです。
- 有効な範囲:、
"reverse_linear"、"pairwise"、"circular"、"full"、"linear"または のいずれ"sca"か。 この"lucj"アプローチを使用する場合、これも選択肢"lucj_default"の一つとなります。
ansatz_reps
タイプ: `int`
デフォルト値: `2`
量子回路の各層における反復回数。
- 有効範囲:0より大きい
amplitude_screening_tolerance
タイプ: `Union[float,int]`
デフォルト値: `0`
対角化後にどの状態を部分空間から除外するかを決定するための許容値。 これは、計算された振幅に基づいて、部分空間の状態の包含閾値を指定するものである。
- 有効な範囲:0以上、かつ1未満
overlap_screening_tolerance
タイプ: `float`
デフォルト値: `1e-2`
対角化の前に、部分空間から除外すべき状態を予測するための許容誤差。 これは各状態の予測振幅の精度を制御するもので、値が小さいほど予測の精度が高くなります。
- 有効範囲:~
1e-4の間(1e-1端数を含む)
- 必須:いいえ
- 例:
{"shots": 10_000, "max_iter": 10 }
出力
この関数は、4つのキーと値を持つ辞書を返します。 キーと値については、以下の表にまとめられています:
キー | 値タイプ | 説明 |
|---|---|---|
"energy" | float | その分子のおおよその基底状態エネルギー。 |
"states" | List[str] | エネルギーを算出するために用いられる部分空間を構成する、選択された決定因子。 これらはアルファ・ベータ形式で交互に並んでいます。 |
"eigenvector" | List[float] | で構成される部分空間の基底状態 "states"に対応する固有ベクトル。 |
"energy_variance" | float | で構成される部分空間の基底 "states"状態のエネルギー分散は、解の質を示す指標となる。 この値は非負であり、値が小さいほど、その部分空間の基底状態が系のハミルトニアンの固有状態により近似されることを意味する。 |
"energy_history" | List[float] | ハイブリッド最適化プロセスにおいて、各反復ごとに計算されたエネルギーを、計算された順序通りに表示します。 SPSA最適化プロセスの一環として、1回の反復ごとに2つのエネルギーが計算されます。 |