Trong Aaronson và Gottesman, mô phỏng mạch ổn định được cải tiến , người ta đã giải thích cách tính một bảng mô tả các sản phẩm tenxơ Pauli mà X và Z có thể quan sát được của mỗi qubit được ánh xạ như một mạch Clifford hoạt động theo chúng.
Dưới đây là một ví dụ về mạch Clifford:
0: -------@-----------X---
| |
1: ---@---|---@---@---@---
| | | |
2: ---|---|---@---|-------
| | |
3: ---@---@-------Y-------
Và bảng mô tả cách thức hoạt động của nó trên các vật quan sát X và Z của từng qubit:
+---------------------+-
| 0 1 2 3 |
+------+---------------------+-
| 0 | XZ X_ __ Z_ |
| 1 | ZZ YZ Z_ ZZ |
| 2 | __ Z_ XZ __ |
| 3 | Z_ X_ __ XZ |
+------+---------------------+-
| sign | ++ ++ ++ ++ |
+------+---------------------+-
Mỗi cột của bảng mô tả cách thức hoạt động của mạch trên X có thể quan sát được (nửa bên trái của cột) và Z có thể quan sát được (nửa bên phải của cột) của mỗi qubit. Ví dụ, phía bên trái của cột 3 là Z, Z, _, X có nghĩa là một hoạt động X3 (Pauli X trên qubit 3) ở phía bên phải của mạch tương đương với hoạt động Z1 * Z2 * X4 ở bên trái bên của mạch. Hàng 'dấu hiệu' biểu thị dấu hiệu của sản phẩm, điều này rất quan trọng nếu bạn định mô phỏng một phép đo (nó cho bạn biết có nên đảo ngược kết quả hay không).
Bạn cũng có thể tính toán bảng cho nghịch đảo của một mạch. Trong trường hợp ví dụ tôi đã đưa ra, bảng nghịch đảo là:
+---------------------+-
| 0 1 2 3 |
+------+---------------------+-
| 0 | XZ Y_ __ Z_ |
| 1 | _Z YZ Z_ _Z |
| 2 | __ Z_ XZ __ |
| 3 | Z_ Y_ __ XZ |
+------+---------------------+-
| sign | ++ -+ ++ ++ |
+------+---------------------+-
Các bảng trông gần giống nhau nếu bạn hoán chuyển các hàng và cột của chúng. Nhưng các mục không giống hệt nhau. Ngoài việc hoán vị, bạn phải mã hóa các chữ cái thành các bit ( _
= 00, X
= 01, Z
= 10, Y
= 11) sau đó hoán đổi các bit giữa sau đó giải mã. Ví dụ, ZZ mã hóa thành 1010, đổi thành 1100, giải mã thành Y_.
Câu hỏi tôi có là: đó cũng là một quy tắc đơn giản để tính toán các dấu hiệu của bảng nghịch đảo?
Hiện tại tôi đang đảo ngược các bảng này bằng cách phân tách chúng thành các mạch, đảo ngược các mạch, sau đó nhân chúng lại với nhau. Nó cực kỳ kém hiệu quả so với transpose + thay thế, nhưng nếu tôi sẽ sử dụng transpose + thay thế thì tôi cần một quy tắc ký hiệu.