Ký hiệu bit so với {0,1} bit
Bước đầu tiên là tạo ra cái mà đôi khi được gọi là 'sự dịch chuyển công chứng tuyệt vời' và nghĩ về các bit (thậm chí là các bit cổ điển) như được mã hóa trong các dấu hiệu. Điều này rất hữu ích để làm nếu điều mà bạn quan tâm nhất là tính chẵn lẻ của chuỗi bit, bởi vì bit-flips và dấu hiệu lật về cơ bản hoạt động theo cùng một cách. Chúng tôi vạch 0↦+1 và 1↦−1 , do đó ví dụ chuỗi các bit (0,0,1,0,1) sẽ được đại diện bởi một chuỗi các dấu hiệu (+1,+1,−1,+1,−1) .
Chẵn lẻ các chuỗi bit sau đó tương ứng với các sản phẩm của chuỗi các dấu hiệu. Ví dụ, giống như chúng ta có thể nhận ra 0⊕0⊕1⊕0⊕1=0 là một tính chẵn lẻ, chúng tôi có thể nhận ra (+1)⋅(+1)⋅(−1)⋅(+1)⋅(−1)=+1 là đại diện cho cùng tính chẵn lẻ theo quy ước dấu.
Tập thể dục.Tính 'chẵn lẻ' của (−1,−1,+1,−1) và của (+1,−1,+1,+1) . Những cái này có giống nhau không?
Kiểm tra chẵn lẻ bằng cách sử dụng các bit dấu
Trong quy ước {0,1}, kiểm tra chẵn lẻ có một biểu diễn đẹp như một sản phẩm chấm của hai vectơ boolean, để chúng ta có thể nhận ra các phép tính chẵn lẻ phức tạp như các phép biến đổi tuyến tính. Bằng cách chuyển sang ký-bit, chúng tôi đã không tránh khỏi mất kết nối với đại số tuyến tính trên một ký hiệu mức độ, bởi vì chúng tôi đang dùng sản phẩm thay vì tiền. Ở cấp độ tính toán, vì đây chỉ là một sự thay đổi trong ký hiệu, chúng tôi thực sự không phải lo lắng quá nhiều. Nhưng ở cấp độ toán học thuần túy, bây giờ chúng ta phải suy nghĩ lại một chút về những gì chúng ta đang làm với ma trận kiểm tra chẵn lẻ.
Khi chúng tôi sử dụng các bit ký hiệu, chúng tôi vẫn có thể biểu thị một 'ma trận kiểm tra chẵn lẻ' dưới dạng ma trận 0 và 1, thay vì các dấu hiệu 1. Tại sao? Một câu trả lời là một vectơ hàng mô tả kiểm tra chẵn lẻ các bit thuộc loại khác với trình tự các bit: nó mô tả một hàm trên dữ liệu, chứ không phải chính dữ liệu. Mảng 0 và 1 bây giờ chỉ cần một cách hiểu khác - thay vì các hệ số tuyến tính trong một tổng, chúng tương ứng với số mũ trong một sản phẩm. Nếu chúng ta có bit dấu (s1,s2,…,sn)∈{−1,+1}n, and we want to compute a parity check given by a row-vector (b1,b2,…,bn)∈{0,1}, the parity check is then computed by
(s1)b1⋅(s2)b2⋅[⋯]⋅(sn)bn∈{−1,+1},
where recall that s0=1 for all s.
As with {0,1}-bits, you can think of the row (b1,b2,…,bn) as just representing a 'mask' which determines which bits sj make a non-trivial contribution to the parity computation.
Exercise. Compute the result of the parity check (0,1,0,1,0,1,0) on (+1,−1,−1,−1,−1,+1,−1).
Eigenvalues as parities.
The reason why we would want to encode bits in signs in quantum information theory is because of the way that information is stored in quantum states — or more to the point, the way that we can describe accessing that information. Specifically, we may talk a lot about the standard basis, but the reason why it is meaningful is because we can extract that information by measurement of an observable.
This observable could just be the projector |1⟩⟨1|, where |0⟩ has eigenvalue 0 and |1⟩ has eigenvalue 1, but it is often helpful to prefer to describe things in terms of the Pauli matrices.
In this case, we would talk about the standard basis as the eigenbasis of the Z operator, in which case we have |0⟩ as the +1-eigenvector of Z and |1⟩ as the −1-eigenvector of Z.
So: we have the emergence of sign-bits (in this case, eigenvalues) as representing the information stored in a qubit. And better still, we can do this in a way which is not specific to the standard basis: we can talk about information stored in the 'conjugate' basis, just by considering whether the state is an eigenstate of X, and what eigenvalue it has. But more than this, we can talk about the eigenvalues of a multi-qubit Pauli operator as encoding parities of multiple bits — the tensor product Z⊗Z represents a way of accessing the product of the sign-bits, that is to say the parity, of two qubits in the standard basis.
In this sense, the eigenvalue of a state with respect to a multi-qubit Pauli operator — if that eigenvalue is defined (i.e. in the case that the state is an eigenvalue of the Pauli operator) — is in effect the outcome of a parity calculation of information stored in some choice of basis for each of the qubits.
Exercise. What is the parity of the state |11⟩ with respect to Z⊗Z? Does this state have a well-defined parity with respect to X⊗X?
Exercise. What is the parity of the state |+−⟩ with respect to X⊗X? Does this state have a well-defined parity with respect to Z⊗Z?
Exercise. What is the parity of |Φ+⟩=12√(|00⟩+|11⟩) with respect to Z⊗Z and X⊗X?
Stabiliser generators as parity checks.
We are now in a position to appreciate the role of stabiliser generators as being analogous to a parity check matrix.
Consider the case of the 7-qubit CSS code, with generators
Generatorg1g2g3g4g5g61XZ2XZ3XXZZTensor factors4XZ5XXZZ6XXZZ7XXXZZZ
I've omitted the identity tensor factors above, as one might sometimes omit the 0s from a {0,1} matrix, and for the same reason: in a given stabiliser operator, the identity matrix corresponds to a tensor factor which is not included in the 'mask' of qubits for which we are computing the parity. For each generator, we are only interested in those tensor factors which are being acted on somehow, because those contribute to the parity outcome.
Now, the 'codewords' (the encoded standard basis states) of the 7-qubit CSS code are given by
|0L⟩∝|1L⟩∝|0000000⟩+|0001111⟩+|0110011⟩+|0111100⟩+|1010101⟩+|1011010⟩+|1100110⟩+|1101001⟩=∑y∈C|y⟩,|1111111⟩+|1110000⟩+|1001100⟩+|1000011⟩+|0101010⟩+|0100101⟩+|0011001⟩+|0010110⟩=∑y∈C|y⊕1111111⟩,
where C is the code generated by the bit-strings 0001111, 0110011, and 1010101. Notably, these bit-strings correspond to the positions of the X operators in the generators g1, g2, and g3. While those are stabilisers of the code (and represent parity checks as I've suggested above), we can also consider their action as operators which permute the standard basis. In particular, they will permute the elements of the code C, so that the terms involved in |0L⟩ and |1L⟩ will just be shuffled around.
The generators g4, g5, and g6 above are all describing the parities of information encoded in standard basis states.
The encoded basis states you are given are superpositions of codewords drawn from a linear code, and those codewords all have even parity with respect to the parity-check matrix from that code.
As g4 through g6 just describe those same parity checks, it follows that the eigenvalue of the encoded basis states is +1 (corresponding to even parity).
This is the way in which
'with the observation about the similarities between the parity check matrix and the generator the exercise is "self evident"'
— because the stabilisers either manifestly permute the standard basis terms in the two 'codewords', or manifestly are testing parity properties which by construction the codewords will have.
Moving beyond codewords
The list of generators in the table you provide represent the first steps in a powerful technique, known as the stabiliser formalism, in which states are described using no more or less than the parity properties which are known to hold of them.
Some states, such as standard basis states, conjugate basis states, and the perfectly entangled states |Φ+⟩∝|00⟩+|11⟩ and |Ψ−⟩∝|01⟩−|10⟩ can be completely characterised by their parity properties. (The state |Φ+⟩ is the only one which is a +1-eigenvector of X⊗X and Z⊗Z; the state |Ψ−⟩ is the only one which is a −1-eigenvector of both these operators.) These are known as stabiliser states, and one can consider how they are affected by unitary transformations and measurements by tracking how the parity properties themselves transform. For instance, a state which is stabilised by X⊗X before applying a Hadamard on qubit 1, will be stabilised by Z⊗X afterwards, because (H⊗I)(X⊗X)(H⊗I)=Z⊗X.
Rather than transform the state, we transform the parity property which we know to hold of that state.
You can use this also to characterise how subspaces characterised by these parity properties will transform.
For instance, given an unknown state in the 7-qubit CSS code, I don't know enough about the state to tell you what state you will get if you apply Hadamards on all of the qubits, but I can tell you that it is stabilised by the generators g′j=(H⊗7)gj(H⊗7), which consist of
Generatorg′1g′2g′3g′4g′5g′61ZX2ZX3ZZXXTensor factors4ZX5ZZXX6ZZXX7ZZZXXX
This is just a permutation of the generators of the 7-qubit CSS code, so I can conclude that the result is also a state in that same code.
There is one thing about the stabiliser formalism which might seem mysterious at first: you aren't really dealing with information about the states that tells you anything about how they expand as superpositions of the standard basis. You're just dealing abstractly with the generators. And in fact, this is the point: you don't really want to spend your life writing out exponentially long superpositions all day, do you? What you really want are tools to allow you to reason about quantum states which require you to write things out as linear combinations as rarely as possible, because any time you write something as a linear combination, you are (a) making a lot of work for yourself, and (b) preferring some basis in a way which might prevent you from noticing some useful property which you can access using a different basis.
Still: it is sometimes useful to reason about 'encoded states' in error correcting codes — for instance, in order to see what effect an operation such as H⊗7 might have on the codespace of the 7-qubit code. What should one do instead of writing out superpositions?
The answer is to describe these states in terms of observables — in terms of parity properties — to fix those states. For instance, just as |0⟩ is the +1-eigenstate of Z, we can characterise the logical state |0L⟩ of the 7-qubit CSS code as the +1-eigenstate of
ZL=Z⊗Z⊗Z⊗Z⊗Z⊗Z⊗Z
and similarly, |1L⟩ as the −1-eigenstate of ZL.
(It is important that ZL=Z⊗7 commutes with the generators {g1,…,g6}, so that it is possible to be a +1-eigenstate of ZL at the same time as having the parity properties described by those generators.)
This also allows us to move swiftly beyond the standard basis: using the fact that X⊗7 anti commutes with Z⊗7 the same way that X anti commutes with Z, and also as X⊗7 commutes with the generators gi, we can describe |+L⟩ as being the +1-eigenstate of
XL=X⊗X⊗X⊗X⊗X⊗X⊗X,
and similarly, |−L⟩ as the −1-eigenstate of XL.
We may say that the encoded standard basis is, in particular, encoded in the parities of all of the qubits with respect to Z operators; and the encoded 'conjugate' basis is encoded in the parities of all of the qubits with respect to X operators.
By fixing a notion of encoded operators, and using this to indirectly represent encoded states, we may observe that
(H⊗7)XL(H⊗7)=ZL,(H⊗7)ZL(H⊗7)=XL,
which is the same relation as obtains between X and Z with respect to conjugation by Hadamards; which allows us to conclude that for this encoding of information in the 7-qubit CSS code, H⊗7 not only preserves the codespace but is an encoded Hadamard operation.
Thus we see that the idea of observables as a way of describing information about a quantum states in the form of sign bits — and in particular tensor products as a way of representing information about parities of bits — plays a central role in describing how the CSS code generators represent parity checks, and also in how we can describe properties of error correcting codes without reference to basis states.