Skip to main content
IBM Quantum Platform

ColibriTD QUICK-PDE API リファレンス

  • Qiskit Functions

    Qiskit Functions — パートナー組織によって開発された既成のツール — ソフトウェア開発ワークフローの一部を抽象化することで、ユーティリティ規模でのアルゴリズムの発見とアプリケーション開発を簡素化し、加速させます。 このQiskit関数のガイドを表示するには、ここをクリックしてください。


入力

use_case

タイプ: `Literal['MD', 'CFD']`

解決する微分方程式系を選択するには、切り替えボタンをクリックしてください

  • ユースケース固有:いいえ
  • 例: "CFD"

parameters

タイプ: `dict[str, Any]`

微分方程式のパラメータ(物理パラメータおよび境界条件)は、以下の形式に従う必要があります:

ユース・ケース
キー
値タイプ
説明
CFDafloatuu の初期値の係数1.0
CFDbfloatuu の初期値のオフセット1.0
MDtfloat表面応力12.0
MDKfloat体積弾性率100.0
MDnintべき乗則4.0
MDbfloat単位質量あたりの力10.0
MDepsilon_0float比例応力限界0.1
MDsigma_0float比例ひずみ限界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 array
solution = {
    "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" に対する解の値を表します。

このページは役に立ちましたか?
バグや誤字の報告、またはコンテンツの要求はGitHubで行ってください。