QdAnnealingOutput#

class qudas.annealing.output.QdAnnealingOutput(results: Dict[str, QdAnnealingOutputData] | None = None)[source]#

Bases: QdOutputBase

アニーリング系の計算結果を保持するアウトプットクラス。

1 ブロックにつき 1 つの結果辞書を保持し、複数ブロック分を results という大域辞書で管理する設計とする。

Example

>>> results = {
...     "blockA": {
...         "solution": {"x0": 1, "x1": 0},
...         "energy": -1.23,
...         "device": "amplify",
...     },
...     "blockB": {
...         "solution": {"x0": 0, "x1": 1},
...         "energy": -0.98,
...         "device": "dimod",
...     },
... }
>>> qd_out = QdAnnealingOutput(results)
>>> qd_out.get_block_solution("blockA")
{'x0': 1, 'x1': 0}
classmethod from_amplify(result, block_label: str = 'block0') QdAnnealingOutput[source]#
classmethod from_dimod(result, block_label: str = 'block0') QdAnnealingOutput[source]#
classmethod from_pulp(problem, block_label: str = 'block0') QdAnnealingOutput[source]#
classmethod from_scipy(result, block_label: str = 'block0') QdAnnealingOutput[source]#
classmethod from_sdk_format(sdk_obj: Any, target: str) QdAnnealingOutput[source]#

外部ライブラリ向けのフォーマットからインスタンスを生成します。

Parameters:
  • sdk_obj (Any) – 外部ライブラリ向けのフォーマット。

  • target (str) – 外部ライブラリの名前。

Raises:

ValueError – サポートされていない外部ライブラリの場合。

Returns:

インスタンス。

Return type:

QdAnnealingOutput

get_block_solution(block_label: str)[source]#

指定したブロックラベルの solution を取得する。無ければ None。

property last_device: str | None#
property result: Dict[str, Any]#

最初のブロックを {‘variables’, ‘objective’} 形式で返す。

Type:

旧 API 互換

property result_type: str | None#
property solution: Any | None#

最初のブロックの solution を返す(辞書 or None)

to_dict() Dict[str, Dict[str, Any]][source]#

内部保持している結果辞書をそのまま返す。

to_dimod(block_label: str = 'block0')[source]#
to_scipy(block_label: str = 'block0')[source]#
to_sdk_format(target: str) Dict[str, Any][source]#

外部ライブラリ向けのフォーマットに変換します。

Parameters:

target (str) – 外部ライブラリの名前。

Raises:

ValueError – サポートされていない外部ライブラリの場合。

Returns:

外部ライブラリ向けのフォーマット。

Return type:

dict

visualize()[source]#

結果を可視化します。