qre パッケージ
パッケージ
| application | |
| interop | |
| models |
モジュール
| instruction_ids | |
| property_keys |
クラス
| Application |
アプリケーションでは、量子計算の問題のクラスと、特定の問題のインスタンスのトレースを生成するメソッドを定義します。 アプリケーション パラメーターとトレース パラメーターを区別します。 アプリケーション パラメーターは、検討するアプリケーションの特定のインスタンスを定義します。 トレース パラメーターは、トレースを生成する方法を定義します。 問題自体ではなく、問題を解決する具体的な方法が変わります。 たとえば、量子暗号解析では、アプリケーション パラメーターで RSA 素製品のキー サイズを定義できます。一方、トレース パラメーターは、暗号化を中断するために使用するアルゴリズムと、その中のパラメーターを定義します。 |
| Architecture |
量子ハードウェア アーキテクチャの抽象基本クラス。 |
| Block | |
| Constraint | |
| ConstraintBound | |
| Encoding | |
| EstimationResult | |
| EstimationTable |
量子リソース推定結果の表。
既定の列を使用して空の推定テーブルを初期化します。 |
| EstimationTableColumn |
|
| EstimationTableEntry |
各エントリは、アプリケーション トレースとアーキテクチャ ISA の特定の組み合わせに対する 1 つのパレート最適推定結果を表します。 |
| FactoryResult | |
| ISA | |
| ISAContext |
共有状態を保持する列挙を介して渡されるコンテキスト。 特定のアーキテクチャの ISA コンテキストを初期化します。 |
| ISAQuery |
ISA 列挙ツリー内のすべてのノードの抽象基本クラス。 列挙ノードは、アーキテクチャから始まり、エラー修正スキームなどの ISA 変換によって変更される ISA の検索空間の構造を定義します。 これらは、 |
| 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
必須
|
命令 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_unitがNone (既定値) の場合、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
必須
|
|
|
scatter_args
必須
|
ポイントをプロットするときに |
キーワードのみのパラメーター
| 名前 | 説明 |
|---|---|
|
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
必須
|
|