ColibriTD QUICK-PDE API リファレンス
Qiskit Functions — パートナー組織によって開発された既成のツール — ソフトウェア開発ワークフローの一部を抽象化することで、ユーティリティ規模でのアルゴリズムの発見とアプリケーション開発を簡素化し、加速させます。 このQiskit関数のガイドを表示するには、ここをクリックしてください。
QUICK-PDE Qiskit 関数ガイド
入力
use_case
タイプ: `Literal['MD', 'CFD']`
解決する微分方程式系を選択するには、切り替えボタンをクリックしてください
- ユースケース固有:いいえ
- 例:
"CFD"
parameters
タイプ: `dict[str, Any]`
微分方程式のパラメータ(物理パラメータおよび境界条件)は、以下の形式に従う必要があります:
ユース・ケース | キー | 値タイプ | 説明 | 例 |
|---|---|---|---|---|
| CFD | a | float | の初期値の係数 | 1.0 |
| CFD | b | float | の初期値のオフセット | 1.0 |
| MD | t | float | 表面応力 | 12.0 |
| MD | K | float | 体積弾性率 | 100.0 |
| MD | n | int | べき乗則 | 4.0 |
| MD | b | float | 単位質量あたりの力 | 10.0 |
| MD | epsilon_0 | float | 比例応力限界 | 0.1 |
| MD | sigma_0 | float | 比例ひずみ限界 | 5.0 |
- ユースケース固有:いいえ
- 例:
{"a": 1.0, "b": 1.0}
nb_qubits
タイプ: `Optional[dict[str, dict[str, int]]]`
関数ごとおよび変数ごとの量子ビット数。 最適化された値は関数によって自動的に選択されますが、より良い組み合わせを見つけたい場合は、デフォルト値を上書きすることができます。
- ユースケース固有:いいえ
- 例:
{"u": {"x": 1, "t":3}}
depth
タイプ: `Optional[dict[str, int]]`
関数ごとのアンザッツの深さ。 最適化された値は関数によって自動的に選択されますが、より良い組み合わせを見つけたい場合は、デフォルト値を上書きすることができます。
- ユースケース固有:いいえ
- 例:
{"u": 4}
optimizer
タイプ: `Optional[list[str]]`
使用する最適化アルゴリズムは、 Python cma ライブラリの「CMAES」か、 scipyの最適化アルゴリズムのいずれかです
- ユースケース別:MD
- 例:
"SLSQP"
shots
タイプ: `Optional[list[int]]`
各回路の実行に使用されたショット数。 いくつかの最適化ステップが必要となるため、リストの長さは使用する最適化アルゴリズムの数(CFDの場合は4つ)と等しくする必要があります。 デフォルトでは、MD [50_000] * nb_optimizers の場合は、CFD [5_00, 2_000, 5_000, 10_000] の場合は。
- ユースケース固有:いいえ
- 例:
[15_000, 30_000]
optimizer_options
タイプ: `Optional[dict[str, Any]]`
オプティマイザに渡すオプション。 この入力の詳細は、使用するオプティマイザによって異なります。具体的な内容については、使用するオプティマイザのドキュメントを参照してください。
- ユースケース別:MD
- 例:
{"maxiter": 50 }
initialization
タイプ: `Optional[Literal['RANDOM', 'PHYSICALLY_INFORMED']]`
デフォルト値: `PHYSICALLY_INFORMED`
ランダムな角度から始めるか、それとも適切に選ばれた角度から始めるか。 巧みに選んだアプローチが、必ずしも100%のケースでうまくいくとは限らないことに注意してください。
- ユースケース固有:いいえ
- 例:
"RANDOM"
backend_name
タイプ: `Optional[str]`
使用するバックエンド名。
- ユースケース固有:いいえ
- 例:
ibm_torino
mode
タイプ: `Optional[Literal['job', 'session', 'batch']]`
デフォルト値: `job`
使用する実行モード。
- ユースケース固有:いいえ
- 例:
"job"
出力
出力は、サンプル点のリストと、それらの各点における関数の値を含む辞書となります:
from numpy import arraysolution = {
"functions": {
"u": array(
[
[0.01, 0.1, 1],
[0.02, 0.2, 2],
[0.03, 0.3, 3],
[0.04, 0.4, 4],
]
),
},
"samples": {
"t": array([0.1, 0.2, 0.3, 0.4]),
"x": array([0.5, 0.6, 0.7]),
},
}解の配列の形状は、変数のサンプルによって決まります:
assert len(solution["functions"]["u"].shape) == len(solution["samples"])
for col_size, samples in zip(
solution["functions"]["u"].shape, solution["samples"].values()
):
assert col_size == len(samples)関数変数のサンプル点と解の配列の次元との対応付けは、変数名の英数字順に行われます。 例えば、変数が と "t" である "x"場合、 の行は固定された solution["functions"]["u"] に対する "t"解の値を表し、 の列は固定された solution["functions"]["u"]``"x" に対する解の値を表します。