qre パッケージ

パッケージ

application
interop
models

モジュール

instruction_ids
property_keys

クラス

Application

アプリケーションでは、量子計算の問題のクラスと、特定の問題のインスタンスのトレースを生成するメソッドを定義します。

アプリケーション パラメーターとトレース パラメーターを区別します。 アプリケーション パラメーターは、検討するアプリケーションの特定のインスタンスを定義します。 トレース パラメーターは、トレースを生成する方法を定義します。 問題自体ではなく、問題を解決する具体的な方法が変わります。

たとえば、量子暗号解析では、アプリケーション パラメーターで RSA 素製品のキー サイズを定義できます。一方、トレース パラメーターは、暗号化を中断するために使用するアルゴリズムと、その中のパラメーターを定義します。

Architecture

量子ハードウェア アーキテクチャの抽象基本クラス。

Block
Constraint
ConstraintBound
Encoding
EstimationResult
EstimationTable

量子リソース推定結果の表。

list[EstimationTableEntry]を拡張し、推定データを表示するための構成可能な列を提供します。 既定では、テーブルには 量子ビットランタイム ( pandas.Timedeltaとして表示)、 およびエラー 列が含まれます。 add_columninsert_columnを使用して、追加の列を追加または挿入できます。

既定の列を使用して空の推定テーブルを初期化します。

EstimationTableColumn

EstimationTable内の 1 つの列の定義。

EstimationTableEntry

EstimationTable内の 1 行。

各エントリは、アプリケーション トレースとアーキテクチャ ISA の特定の組み合わせに対する 1 つのパレート最適推定結果を表します。

FactoryResult
ISA
ISAContext

共有状態を保持する列挙を介して渡されるコンテキスト。

特定のアーキテクチャの ISA コンテキストを初期化します。

ISAQuery

ISA 列挙ツリー内のすべてのノードの抽象基本クラス。

列挙ノードは、アーキテクチャから始まり、エラー修正スキームなどの ISA 変換によって変更される ISA の検索空間の構造を定義します。 これらは、 + (sum) や * (product) などの演算子を使用して、複雑な列挙戦略を構築して構成できます。

ISARefNode

列挙コンテキスト内のバインドされた ISA への参照。

このノードは、コンテキストからバインディングを検索し、バインドされた ISA を生成します。

ISARequirements
ISATransform

ISA 間の変換の抽象基本クラス (QEC スキームなど)。

ISA 変換は、必要な入力 ISA (アーキテクチャの制約など) から指定された出力 ISA (論理命令) へのマッピングを定義します。 構成パラメーターの列挙がサポートされています。

InstructionFrontier
InstructionSource
LatticeSurgery

格子手術トレース変換。

トレースを、格子手術ベースのリソース推定に適した形式に変換します。

PSSPC

Pauli ベースの計算トレース変換 (PSSPC)。

回転ゲートと必要に応じて CCX ゲートを、格子手術リソース推定に適した T 状態ベースの操作に変換します。

Trace
TraceQuery

アプリケーションから変換されたトレースを列挙するクエリ。

トレース クエリでは、トレース変換のシーケンスがチェーンされ、それぞれが省略可能なキーワード引数を使用して既定のパラメーター ドメインをオーバーライドします。

TraceTransform

トレース変換の抽象基本クラス。

関数

block_linear_function

block_linear_function(block_size, slope, offset=None)

パラメーター

名前 説明
block_size
必須
slope
必須
offset
規定値: None

constant_function

constant_function(value)

パラメーター

名前 説明
value
必須

constraint

命令制約を作成します。

constraint(id: int, encoding: Encoding = Encoding.PHYSICAL, *, arity: int | None = 1, error_rate: ConstraintBound | None = None, **kwargs: bool) -> Constraint

パラメーター

名前 説明
id
必須
int

命令 ID。

encoding

命令エンコード。 物理 (0) または論理 (1)。

規定値: 0
arity
必須
<xref:Optional>[int]

命令のアリティ。 None の場合、命令には可変アリティがあると見なされます。 既定値は 1 です。

error_rate
必須
<xref:Optional>[<xref:ConstraintBound>]

エラー率の制約。

**kwargs
必須

一致する命令に必要なプロパティ。 有効なプロパティ名: 距離。 プロパティを要求するには、True に設定します。

キーワードのみのパラメーター

名前 説明
arity
規定値: 1
error_rate
規定値: None

返品

説明

命令の制約。

例外

説明

不明なプロパティ名が kwargs で指定されている場合。

estimate

特定のアプリケーション インスタンスとアーキテクチャのリソース要件を見積もる。

アプリケーション インスタンスは、複数のトレースを返す場合があります。 各トレースはトレース クエリによって変換され、複数のトレース変換が順番に適用されます。 各変換は、複数のトレースを返す場合があります。 同様に、アーキテクチャの ISA は ISA クエリによって変換され、複数の ISA 変換が順番に適用され、それぞれが複数の ISA を返す可能性があります。 推定は、変換されたトレースと ISA の組み合わせごとに実行されます。 結果は EstimationTable に収集され、返されます。

コレクションには、量子ビットの合計数と合計ランタイムに関して最適な結果のみが含まれます。

Note

use_graphが True (既定値) に設定されている場合に使用される排除戦略

は、命令ごとのスペース、時間、〗を比較して ISA 命令をフィルター処理します。

とエラーを個別に返します。 ただし、結果の合計量子ビット数

は、ファクトリ空間とランタイム間の相互作用によって異なります。

factory_qubits = コピーが決定× factory_spaceコピー

by count.div_ceil(runtime / factory_time). このため、ISA は

命令ごとのメトリックに支配されている命令は、引き続き

グローバルにパレート最適な結果(例えば、工場と

より長い時間は、より少ないコピーを必要とする可能性があり、その結果、合計量子ビット数が少なくなります)。 次のように

結果、use_graph=True の場合、一部の結果が見逃される可能性があります。

use_graph=False が見つかります。 の完了時に use_graph=False を使用する

パレートフロンティアが必要です。

estimate(application: Application, architecture: Architecture, isa_query: ISAQuery, trace_query: TraceQuery | None = None, *, max_error: float = 1.0, post_process: bool = False, use_graph: bool = True, name: str | None = None) -> EstimationTable

パラメーター

名前 説明
application
必須

推定される量子アプリケーション。

architecture
必須

ターゲット量子アーキテクチャ。

isa_query
必須

アーキテクチャから ISA を列挙する ISA クエリ。

trace_query

アプリケーションからトレースを列挙するトレース クエリ。

規定値: None
max_error
必須

推定結果で許容される最大エラー。

post_process
必須

True の場合は、(将来の後処理ロジックを目的とした) Pythonスレッド推定パスを使用します。 False (既定値) の場合は、Rust 並列推定パスを使用します。

use_graph
必須

True (既定値) の場合は、ISA のグラフを作成し、推定時に最適でない ISA を排除する Rust 推定パスを使用します。 False の場合は、排除を実行せず、各トレースのすべての ISA を列挙する Rust 推定パスを使用します。

name
必須
<xref:Optional>[str]

推定の省略可能な名前。 指定した場合、これはすべてのエントリの結果テーブルに最初の列として追加されます。

キーワードのみのパラメーター

名前 説明
max_error
規定値: 1.0
post_process
規定値: False
use_graph
規定値: True
name
規定値: None

返品

説明

最適な推定結果を含むテーブル。

generic_function

generic_function(func)

パラメーター

名前 説明
func
必須

instruction_name

instruction_name(id)

パラメーター

名前 説明
id
必須

linear_function

linear_function(slope)

パラメーター

名前 説明
slope
必須

plot_estimates

量子ビットとランタイムを表示する推定結果をプロットします。

x 軸に合計実行時間が表示され、y 軸に物理量子ビットの合計数が表示されるログ ログ散布図を作成します。

データ は、単一の EstimationTable またはテーブルの iterable である場合があります。 複数のテーブルを指定すると、それぞれが個別の系列としてプロットされます。 テーブルにEstimationTable.nameがある場合 (estimate パラメーターを使用して設定)、その系列の凡例ラベルとして使用されます。

runtime_unitNone (既定値) の場合、x 軸では、ナノ秒から世紀に及ぶ人間が判読できる時間単位の目盛りラベルが使用されます。 単位文字列が指定されると (たとえば、 "hours")、すべてのランタイムがその単位にスケーリングされ、x 軸ラベルには単位が含まれますが、ティックは単純な数値です。

サポートされている runtime_unit 値: "ns""µs" (または "us")、 "ms""s""min""hours""days""weeks""months""years"

plot_estimates(data: EstimationTable | Iterable[EstimationTable], *, runtime_unit: str | None = None, figsize: tuple[float, float] = (15, 8), scatter_args: dict[str, Any] = {'marker': 'x'})

パラメーター

名前 説明
data
必須

プロットする 1 つの EstimationTable オブジェクトまたは EstimationTable オブジェクトの iterable。

runtime_unit
必須

x 軸をスケールする時間単位 (省略可能)。

figsize
必須

(width, height)としてインチ単位で寸法を表示します。

scatter_args
必須

ポイントをプロットするときに matplotlib.axes.Axes.scatter に渡す追加のキーワード引数。

キーワードのみのパラメーター

名前 説明
runtime_unit
規定値: None
figsize
規定値: (15, 8)
scatter_args
規定値: {'marker': 'x'}

返品

説明
<xref:matplotlib.figure.Figure>

プロットを含む図。

例外

説明

matplotlib がインストールされていない場合。

すべてのテーブルが空の場合、または runtime_unit が認識されない場合。

property_name

property_name(id)

パラメーター

名前 説明
id
必須

property_name_to_key

property_name_to_key(name)

パラメーター

名前 説明
name
必須