で安定回路の改善されたシミュレーションアーロンソン及びGottesmanによって、クリフォード回路がそれらに作用するようにそれぞれの観察X及びZは、にマッピング取得キュビットたパウリテンソル製品記述したテーブルを計算する方法を説明します。
以下はクリフォード回路の例です。
0: -------@-----------X---
| |
1: ---@---|---@---@---@---
| | | |
2: ---|---|---@---|-------
| | |
3: ---@---@-------Y-------
そして、それが各キュービットのXおよびZオブザーバブルにどのように作用するかを説明する表:
+---------------------+-
| 0 1 2 3 |
+------+---------------------+-
| 0 | XZ X_ __ Z_ |
| 1 | ZZ YZ Z_ ZZ |
| 2 | __ Z_ XZ __ |
| 3 | Z_ X_ __ XZ |
+------+---------------------+-
| sign | ++ ++ ++ ++ |
+------+---------------------+-
表の各列は、回路が各キュービットのX観測可能(列の左半分)およびZ観測可能(列の右半分)にどのように作用するかを示しています。たとえば、列3の左側はZ、Z、_、Xであり、回路の右側のX3演算(量子ビット3のパウリX)は左側のZ1 * Z2 * X4演算と同等です。回路の側面。「sign」行は製品の符号を示します。これは、測定をシミュレートする場合に重要です(結果を反転するかどうかを示します)。
回路の逆のテーブルを計算することもできます。私が与えた例の場合、逆の表はこれです:
+---------------------+-
| 0 1 2 3 |
+------+---------------------+-
| 0 | XZ Y_ __ Z_ |
| 1 | _Z YZ Z_ _Z |
| 2 | __ Z_ XZ __ |
| 3 | Z_ Y_ __ XZ |
+------+---------------------+-
| sign | ++ -+ ++ ++ |
+------+---------------------+-
行と列を入れ替えても、テーブルはほとんど同じに見えます。ただし、エントリは完全に同一ではありません。転置に加えて、文字をビット(_
= 00、X
= 01、Z
= 10、Y
= 11)にエンコードしてから、中央のビットを入れ替えてデコードする必要があります。たとえば、ZZは1010にエンコードされ、1100にスワップされてY_にデコードされます。
私が持っている質問は、逆テーブルの符号を計算するための簡単なルールもあるのですか?
現在、私はこれらのテーブルを回路に分解して反転し、回路を反転してから乗算して戻します。これは、transpose + replaceに比べて非常に非効率的ですが、transpose + replaceを使用する場合は、署名ルールが必要です。