量子コンピューティングにおける T ゲートと T ファクトリの役割
この記事では、フォールト トレラント量子コンピューティングにおける T ゲートと T ファクトリの役割について説明します。 量子アルゴリズムを提供すると、T ゲートと T ファクトリを実行するために必要なリソースの推定が、アルゴリズムの実現可能性を判断するために不可欠になります。 Azure Quantum Resource Estimator は、アルゴリズムの実行に必要な T 状態の数、1 つの T ファクトリの物理量子ビットの数、および T ファクトリのランタイムを計算します。
量子ゲートのユニバーサル セット
DiVincenzo の基準によるとスケーラブルな量子コンピューターは、一意の量子ゲート セットを実装できる必要があります。 ユニバース セットには、量子計算を実行するために必要なすべてのゲートが含まれています。つまり、すべての計算をユニバーサル ゲートの有限シーケンスに分解する必要があります。 少なくとも、量子コンピューターは、(単一量子ビット ゲートを使用して) Bloch Sphere 上の任意の位置に単一量子ビットを移動できる必要があります。また、マルチ量子ビット ゲートを必要とするシステムにエンタングルメントを導入する必要があります。
古典的コンピューターでは、1 ビットを 1 ビットにマップする関数は 4 つしかありません。 対照的に、量子コンピューターでは、単一量子ビットに対するユニタリ変換の数は無限です。 したがって、プリミティブ量子演算やゲートの有限のセットは、量子コンピューティングで許可される無限のユニタリ変換セットを正確にレプリケートできません。 これは、古典的コンピューティングとは異なり、量子コンピューターでは、限られた数のゲートを使用して、考えられるすべての量子プログラムを正確に実装することはできません。 そのため量子コンピューターは、古典的コンピューターと同じ意味では普遍的になりえません。 結果として、一連のゲートが量子コンピューティングで "普遍的" であると言うときには、実際には、古典的コンピューティングの場合よりも少し普遍性が弱いものを意味しています。
ユニバーサル性のためには、量子コンピューターが有限長ゲート シーケンスを使用して有限誤差内のすべてのユニタリ 行列を だけ する必要があります。
言い換えると、一連のゲートは、このセットからのゲートの積として、任意のユニタリ変換が近似的に記述可能である場合に、ユニバーサル ゲート セットとなります。 規定されたエラーバインドには、ゲートセットから $G_{1}ゲート、G_{2}、\ldots、G_N$ が存在することが必要です。
$$ G_N G_{N-1}\cdots G_2 G_1 \approx U. $$
行列乗算の規則は、このシーケンスの最初のゲート演算を右から左に乗算するため、 $G_N$、実際には量子状態ベクトルに適用される最後のゲート演算です。 より正式に言えば、そのようなゲート セットは、すべての誤差許容 $\epsilon>0$ について、$G_N\ldots G_1$ と $U$ との間の距離が最大で $\epsilon$ であるような $G_1,\ldots, G_N$ が存在する場合に普遍的であると表現します。 理想的には、この距離 $\epsilon$ に達するために必要な $N$ の値は、$1/\epsilon$ で多対数的にスケーリングする必要があります。
たとえば、Hadmard、CNOT、および T ゲートによって形成されるセットは、任意の数の量子計算 (任意の数の量子ビット) を生成できるユニバーサル セットです。 Hadmard と T ゲート セットは、任意の単一量子ビット ゲートを生成します。
$$ H=\frac{1}{\sqrt{{2}}\begin{bmatrix} 1 & 1 \\ 1 &-1 \end{bmatrix}, \qquad T=\begin{bmatrix} 1 & 0 \\ 0 & e^{i\pi/4}\end{bmatrix}. $$
量子コンピューターでは、量子ゲートは、クリフォード ゲートと非クリフォード ゲート (この場合は T ゲート) の 2 つのカテゴリに分類できます。 クリフォード ゲートのみで作成された量子プログラムは、従来のコンピューターを使用して効率的にシミュレートできるため、量子上の利点を得るために、非クリフォード ゲートが必要です。 多くの量子エラー修正 (QEC) スキームでは、いわゆるクリフォード ゲートを簡単に実装できます。つまり、フォールト トレラントに実装するために操作と量子ビットの点で必要なリソースが非常に少ないのに対し、非クリフォード ゲートはフォールト トレランスを必要とする場合に非常にコストがかかります。 ユニバーサル量子ゲートセットでは、Tゲートは一般的に非クリフォードゲートとして使用されます。
Q#に既定で含まれる単一量子ビットのクリフォード ゲートの標準セットには、次のものが含まれます。
$$ H=\frac{{1}{\sqrt{{2}}\begin{bmatrix} 1 & 1 \\ 1 &-1 \end{bmatrix} , \qquad S =\begin{bmatrix} 1 & 0 \\ 0 & i \end{bmatrix}= T^2, \qquad X=\begin{bmatrix} 0 &1 \\ 1& 0 \end{bmatrix}= HT^4H, $$
$$ Y =\begin{bmatrix} 0 & -i \\ i & 0 \end{bmatrix}=T^2HT^4 HT^6, \qquad Z=\begin{bmatrix}1&0\\ 0&-1 \end{bmatrix}=T^4。 $$
非クリフォードゲート(Tゲート)と共に、これらの演算は、単一量子ビット上の任意のユニタリ変換を近似するように構成することができます。
Azure Quantum リソース推定器の T ファクトリ
他の量子ゲートは、ユニバーサル量子計算には十分ではないため、非クリフォード T ゲートの準備は非常に重要です。 実用的な規模のアルゴリズムに対して非クリフォード演算を実装するには、低誤差率の T ゲート (または T 状態) が必要です。 ただし、論理量子ビットに直接実装することは困難であり、一部の物理量子ビットでは困難な場合もあります。
フォールト トレラントな量子コンピューターでは、T 状態蒸留ファクトリまたは略して T ファクトリを使用して、必要な低誤差率 T 状態が生成されます。 通常、これらの T ファクトリには一連の蒸留が含まれます。各ラウンドでは、より小さな距離コードでエンコードされた多くのノイズの多い T 状態が取り込まれ、蒸留単位を使用して処理され、出力されるノイズの少ない T 状態は、より大きな距離コードでエンコードされ、ラウンド数、蒸留単位数、距離はすべて変化できるパラメーターです。 このプロシージャは反復処理され、1 つのラウンドの出力 T 状態が入力として次のラウンドに送られます。
T ファクトリの期間に基づいて、 Azure Quantum Resource Estimator は、T ファクトリがアルゴリズムの総実行時間を超える前に呼び出すことができる頻度と、アルゴリズムの実行時に生成できる T 状態の数を決定します。 通常、アルゴリズムの実行時に 1 つの T ファクトリの呼び出し内で生成できる T 状態よりも多くの T 状態が必要です。 より多くの T 状態を生成するために、Resource Estimator は T ファクトリのコピーを使用します。
T ファクトリの物理的な推定
Resource Estimator は、アルゴリズムの実行に必要な T 状態の合計数と、1 つの T ファクトリとそのランタイムの物理量子ビットの数を計算します。
目標は、可能な限り少ない T ファクトリ コピーを使用して、アルゴリズム ランタイム内のすべての T 状態を生成することです。 次の図は、アルゴリズムのランタイムと 1 つの T ファクトリのランタイムの例を示しています。 T ファクトリのランタイムがアルゴリズムのランタイムよりも短いことがわかります。 この例では、1 つの T ファクトリで 1 つの T 状態を蒸留できます。 次の 2 つの質問が発生します。
- アルゴリズムの終了前に T ファクトリを呼び出すことができる頻度はどのくらいですか?
- アルゴリズムの実行時に必要な T 状態の数を作成するには、T ファクトリ蒸留ラウンドのコピーがいくつ必要ですか?
![アルゴリズムのランタイム (赤) と 1 つの T ファクトリのランタイム (青) を示す図。アルゴリズムが終了する前に、T ファクトリは 8 回実行できます。30 個の T 状態が必要で、T ファクトリが実行時に 8 回実行できる場合は、30 個の T 状態を蒸留するために並列で実行される T ファクトリのコピーが 4 つ必要です。](media/resource-estimator-tfactory-plot.png)
アルゴリズムが終了する前に、T ファクトリを 8 回呼び出すことができます。これは蒸留ラウンドと呼ばれます。 たとえば、30 個の T 状態が必要な場合、アルゴリズムの実行時に 1 つの T ファクトリが 8 回呼び出されるため、8 つの T 状態が作成されます。 その後、必要な30 T状態を蒸留するために並行して実行されるT工場蒸留ラウンドの4つのコピーが必要です。
Note
T ファクトリ のコピーと T ファクトリの呼び出しは同じではありません。
T状態蒸留工場は一連のラウンドで実装され、各ラウンドは並行して実行される蒸留ユニットのセットで構成されます。 Resource Estimator は、1 つの T ファクトリを実行するために必要な物理量子ビットの数と、T ファクトリの実行時間 (その他の必須パラメーター) を計算します。
T ファクトリの完全な呼び出しのみを実行できます。 そのため、すべての T ファクトリ呼び出しの累積ランタイムがアルゴリズム ランタイムよりも小さい場合があります。 量子ビットは異なるラウンドで再利用されるため、1 つの T ファクトリの物理量子ビットの数は、1 つのラウンドに使用される物理量子ビットの最大数です。 T ファクトリのランタイムは、すべてのラウンドのランタイムの合計です。
Note
物理 T ゲートエラー率が必要な論理 T 状態エラー率より低い場合、リソース推定機能は適切なリソース推定を実行できません。 リソース見積もりジョブを送信すると、必要な論理 T 状態エラー率が低すぎるか高すぎるため、T ファクトリが見つからない場合があります。
詳細については、実用的な量子の利点にスケーリングするための Assessing 要件の付録 C を参照してください。