QuantumClifford.jl
QuantumClifford.jl copied to clipboard
improvements to `GeneralizedStabilizer` API
There are a few interfaces not yet supported for GeneralizedStabilizer but which are easy to add. Here are operations which we can and can not do -- the goal is to have all of them implemented.
- [X]
sm = GeneralizedStabilizer(S"-X") - [ ]
sm⊗sm - [ ]
sm⊗S"X" - [ ]
pcT*sm - [ ]
tHadamard*sm - [ ]
pcT⊗tId1 - [ ]
pcT⊗P"X" - [ ]
embed(..., sm) - [ ]
copy(sm)
@hongyehu pinging just for reference as this is related to #259
For documentation of Generalized Stabilizer, the paper by ted yoder can be helpful. I will be to work on this documentation as well.
''" The generalized stabilizer representation of an arbitrary state τ is a two-tuple (χ, B(S, D)). Here χ is a density matrix and B(S, D) = B(T ) is the basis in which χ is expressed. A generalized stabilizer (χ, B(T )), in some sense, separates the “classical” part of the quantum state from the quantum. The quasi-classical tableau T updates through Clifford gates and measurements, while the the χ-matrix is updated by non-Clifford operations.""
Is implementation inspired from this paper (A generalization of the stabilizer formalism for simulating arbitrary quantum circuits) while building generalized stabilizer ?
Non-clifford and non-stabilizer/non-stabilizerness mean the same thing right?
Hi Feroz, Yes, it is largely inspired by Ted’s paper.Hong-Ye Hu, Ph.D.Department of Physics,Harvard University, Cambridge, MAOn Jun 21, 2024, at 9:55 AM, Feroz @.***> wrote: For documentation of Generalized Stabilizer, the paper by ted yoder can be helpful. I will be to work on this documentation as well. ''" The generalized stabilizer representation of an arbitrary state τ is a two-tuple (χ, B(S, D)). Here χ is a density matrix and B(S, D) = B(T ) is the basis in which χ is expressed. A generalized stabilizer (χ, B(T )), in some sense, separates the “classical” part of the quantum state from the quantum. The quasi-classical tableau T updates through Clifford gates and measurements, while the the χ-matrix is updated by non-Clifford operations."" Is implementation inspired from this paper (A generalization of the stabilizer formalism for simulating arbitrary quantum circuits) while building generalized stabilizer ? Non-clifford and non-stabilizer/non-stabilizerness mean the same thing right?
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: @.***>
@Krastanov, Would it be better to implement these tasks as separate PRs as that would make review easier? Completed sm⊗sm, should I submit a PR about this second task for review? I would value your input before proceeding.
julia> sm1 = GeneralizedStabilizer(S"X")
A mixture ∑ ϕᵢⱼ Pᵢ ρ Pⱼ† where ρ is
𝒟ℯ𝓈𝓉𝒶𝒷
+ Z
𝒮𝓉𝒶𝒷
+ X
with ϕᵢⱼ | Pᵢ | Pⱼ:
1.0+0.0im | + _ | + _
julia> sm2 = GeneralizedStabilizer(S"-Z")
A mixture ∑ ϕᵢⱼ Pᵢ ρ Pⱼ† where ρ is
𝒟ℯ𝓈𝓉𝒶𝒷
+ X
𝒮𝓉𝒶𝒷
- Z
with ϕᵢⱼ | Pᵢ | Pⱼ:
1.0+0.0im | + _ | + _
julia> sm1 ⊗ sm2
A mixture ∑ ϕᵢⱼ Pᵢ ρ Pⱼ† where ρ is
𝒟ℯ𝓈𝓉𝒶𝒷
+ Z_
+ _X
𝒮𝓉𝒶𝒷
+ X_
- _Z
with ϕᵢⱼ | Pᵢ | Pⱼ:
1.0+0.0im | + __ | + __
julia> sm1 ⊗ sm2 ⊗ sm1
A mixture ∑ ϕᵢⱼ Pᵢ ρ Pⱼ† where ρ is
𝒟ℯ𝓈𝓉𝒶𝒷
+ Z__
+ _X_
+ __Z
𝒮𝓉𝒶𝒷━
+ X__
- _Z_
+ __X
with ϕᵢⱼ | Pᵢ | Pⱼ:
1.0+0.0im | + ___ | + ___
P.S: some time later: After spending some time on this, 5/8 of these tasks are completed. It appears that one PR on these 5 tasks will be fine. I will rewire the current open noncliff pr to address these tasks first and focus on latter part later. Sorry for the ping!
Edit: The tensor product is implemented in #345 so closing this comment as resolved! ✨
This interface can also be added as we can do this operation as well!
- [ ]
P"-Y" * sm
julia> sm = GeneralizedStabilizer(S"-X")
A mixture ∑ ϕᵢⱼ Pᵢ ρ Pⱼ† where ρ is
𝒟ℯ𝓈𝓉𝒶𝒷
+ Z
𝒮𝓉𝒶𝒷
- X
with ϕᵢⱼ | Pᵢ | Pⱼ:
1.0+0.0im | + _ | + _
julia> P"-Y" * sm
A mixture ∑ ϕᵢⱼ Pᵢ ρ Pⱼ† where ρ is
𝒟ℯ𝓈𝓉𝒶𝒷
- Z
𝒮𝓉𝒶𝒷
+ X
with ϕᵢⱼ | Pᵢ | Pⱼ:
1.0+0.0im | + _ | + _
Inner product between generalized stabilizers (Section V of Ted's paper):
- [ ]
dot(sm1, sm2)
- [ ] Stabilizer Union
UofT' = (S', D'), andT = (S, D)(Theorem 16, Page 11)
Edit: Theorem 16: The stabilizer union U of two tableaus T ′ = (S′, D′) and T = (S, D) can be calculated in $O(n^3)$ time. stabilizer union is utilized in inner product of generalized stabilizer on page 12 of this paper.