RoundBasedFactory クラス

ラウンドベースの蒸留パイプラインを使用して T ゲート命令を生成するマジック ステート ファクトリ。

この工場では、蒸留ユニット ("15 対 1 RM の準備" や "15 対 1 のスペース効率" など) の組み合わせを調べて、目標誤差率を達成しながら時間とスペースを最小限に抑える最適な構成を見つけます。 物理レベルの蒸留 (入力 T ゲートが物理的にエンコードされている場合) と論理レベルの蒸留 (表面コードによる格子手術を使用) の両方をサポートします。

蒸留ラウンドの成功確率を考慮するために、ファクトリは、各ラウンドが満たす必要がある失敗確率要件 (既定値は 1%) を使用してパイプラインをモデル化します。 ラウンドあたりの蒸留ユニット数は、この要件を満たすように調整され、全体的な空間要件に影響します。

領域の要件は、ユーザーが指定した関数を使用して計算されます。この関数は、ラウンドごとのスペース (合計や最大値など) を集計します。 sum関数は、量子ビットがラウンド間で再利用されないケースをモデル化しますが、max関数は、量子ビットがラウンド間で再利用されるケースをモデル化します。

論理レベルの蒸留ユニットの列挙では、ファクトリはユーザーが指定した ISAQuery (既定では SurfaceCode.q()) に依存して、さまざまなサーフェス コード構成とそれに対応する格子手術命令を調べることができます。 これらはユーザーが提供する必要があり、指定された実装 ISA から自動的に派生することはできません。必要な命令のサブセットのみを含めることができるからです。 ユーザーは、指定されたクエリが、このファクトリが使用されているアーキテクチャと一致していることを確認する必要があります。

効率を高めるために、結果はディスクにキャッシュされます。

参考資料:

  • Sergei Bravyi, Alexei Kitaev: 理想的なクリフォード ゲートとノイズの多いアンシラを使用したユニバーサル量子計算, arXiv:quant-ph/0403025

  • Michael E. Beverland、Prakash Murali、Matthias Troyer、Krysta M. Svore、Torsten Hoefler、Vadym Kliuchnikov、Guang Hao Low、Mathias Soeken、Aarthi Sundaram、Alexander Vaschillo: 実用的な量子利点にスケーリングするための要件の評価、 arXiv:2211.07629

コンストラクター

RoundBasedFactory(code_query: ~qdk.qre._isa_enumeration.ISAQuery = <factory>, physical_qubit_calculation: ~typing.Callable[[~typing.Iterable], int] = <built-in function sum>, cache_dir: ~pathlib.Path = WindowsPath('C:/Users/cloudtest/.cache/re3/round_based'), use_cache: bool = True)

パラメーター

名前 説明
code_query
規定値: <factory>
physical_qubit_calculation
規定値: <built-in function sum>
cache_dir
規定値: C:\Users\cloudtest\.cache\re3\round_based
use_cache
規定値: True

メソッド

provided_isa
required_isa

provided_isa

provided_isa(impl_isa: ISA, ctx: ISAContext) -> Generator[ISA, None, None]

パラメーター

名前 説明
impl_isa
必須
ctx
必須

required_isa

static required_isa() -> ISARequirements

属性

physical_qubit_calculation

Callable[[Iterable], int] 合計や最大値など、ラウンドごとの空間要件から物理量子ビットの合計を計算する関数。既定値は合計です。

位置指定のみのパラメーター

名前 説明
iterable

パラメーター

名前 説明
start
規定値: 0

code_query

論理蒸留単位の QEC コードを列挙する ISAQuery クエリ。 既定値は SurfaceCode.q()。

code_query: ISAQuery

cache_dir

計算済みファクトリ構成をキャッシュするためのパス ディレクトリ。 既定値は ~/.cache/re3/round_basedです。

cache_dir: Path = WindowsPath('C:/Users/cloudtest/.cache/re3/round_based')

use_cache

bool キャッシュされた結果を使用するかどうか。 既定値は True です。

use_cache: bool = True