Bipartite entanglement¶
One of the basic concepts in quantum information is entanglement. It is a property of quantum states that is not shared by classical states. One key problem is to determine whether a given quantum state is entangled or not. This is a NP problem in general, but there are some useful criteria to detect entanglement. In this tutorial, we will introduce some basic concepts about bipartite entanglement, which means we only care about the entanglement between two different parties.
import numpy as np
import matplotlib.pyplot as plt
try:
import numqi
except ImportError:
%pip install numqi
import numqi
Pure state¶
Consider a Hilbert space H=H1⊗H2, a pure state |ψ⟩∈H is separable iff |ψ⟩=|ϕ1⟩⊗|ϕ2⟩ for some pure states |ϕi⟩∈Hi; otherwise it is called entangled.
A useful tool for the characterization of bipartite entanglement is the Schmidt decomposition: any |ψ⟩∈H can be written as
Some famous entangled states are Bell states wiki-link, GHZ states wiki-link, W state wiki-link, etc.
(not normalized for conciseness). Below we can calculate the Schmidt rank (number of nonzero singular values) of these states (for three partite state, we simply divide into the first party and the others).
state00 = np.array([1,0,0,0], dtype=np.float64)
state_bell = numqi.state.Bell()
state_ghz = numqi.state.GHZ()
state_w = numqi.state.W(3)
for state in [state00, state_bell, state_ghz, state_w]:
singular_value = np.linalg.svd(state.reshape(2,-1), compute_uv=False)
tmp0 = 'entangled' if singular_value[1] > 1e-7 else 'separable'
print(f'[{tmp0}] singular value: {singular_value}')
[separable] singular value: [1. 0.] [entangled] singular value: [0.70710678 0.70710678] [entangled] singular value: [0.70710678 0.70710678] [entangled] singular value: [0.81649658 0.57735027]
Equivalently, one can check the purity of the reduced density matrix (RDM), if the purity of the RDM is less than one, then the state is entangled. The purity of a density matrix ρ is defined as wiki-link)
Let's verify this criterion for the above states numerically.
for state in [state00, state_bell, state_ghz, state_w]:
tmp0 = state.reshape(2, -1)
rdm = tmp0 @ tmp0.T.conj()
purity = numqi.utils.get_purity(rdm)
tmp0 = 'entangled' if (1-purity>1e-7) else 'separable'
print(f'[{tmp0}] purity: {purity}')
[separable] purity: 1.0 [entangled] purity: 0.4999999999999998 [entangled] purity: 0.4999999999999998 [entangled] purity: 0.5555555555555556
Quantum subspace¶
Given a subspace S spanned by a set of bipartite states {|ψ1⟩,|ψ2⟩,…,|ψm⟩}, we define the minimal rank of S as the following:
Since a bipartite state is equivalent to a matrix, the separability problem in a bipartite quantum subspace is strongly related to the problem discussed in doc-link. Interested readers can check it for more details and examples.
Mixed state¶
Let Dd be the collection of all density matrices of a d-dimensional quantum system.
For a bipartite quantum system AB, all separable density matrix (SEP) is the convex hull (conv) of the product density matrix:
In other words, for any separable density matrix ρAB∈SEP, it can be decomposed as
where the number of summation terms N is finite, and arxiv-link proves that N≤d2Ad2B according to Carathéodory theorem. As a finite convex combination, SEP is a convex compact closed set in the space of density matrices. The complement of SEP is the set of entangled states, which we will call it ENT.
Apparently, the maximally mixed state is a separable state
PPT criterion¶
However, determine whether a mixed state is entangled or not is a NP-hard problem. There are some criteria that can be used to detect entanglement, e.g. PPT criterion wiki-link. The PPT criteria is based on the fact that the partial transpose of a separable state is still a positive semidefinite matrix , while the partial transpose of an entangled state may not. The partial transpose Γ of a matrix ρ is defined as
where we denote it with ρΓ. To check whether a matrix is positive semidefinite, we can check whether all its eigenvalues are nonnegative.
Let's check the partial transpose of the separable states
where conj() denotes the complex conjugate. It is easy to see that the partial transpose of a separable state is still a positive semidefinite matrix. For the entangled states, Let's explicitly calculate the partial transpose of the Bell state
and its partial transpose is
with a negative eigenvalue −1/2. Therefore, the Bell state is entangled.
Let's check the above states with PPT criterion.
for state in [state00, state_bell, state_ghz, state_w]:
dimA = 2
dimB = state.size//dimA
dm = state.reshape(-1,1) * state.reshape(-1).conj()
tmp0 = 'separable' if numqi.entangle.is_ppt(dm, (dimA,dimB)) else 'entangled'
print(f'[{tmp0}]')
[separable] [entangled] [entangled] [entangled]
Let's define the set of PPT states as all states that satisfy the PPT criterion, and its complement is the set of NPT states.
The PPT set is also convex, closed subset of DdAdB. Apparently, SEP set is a subset of PPT set
When dimension is less or equal than six dAdB≤6, PPT=SEP.
In previous tutorial doc-link, we introduce numerical range for visualizing the geometry of the density matrix by projecting all density matrix into a two dimensional plane. We can also do this for PPT set. Let's visualize the PPT set for two qubits with operators
op0 = np.kron(numqi.gate.X, numqi.gate.X)
op1 = np.kron(numqi.gate.Z, numqi.gate.Z)
# op1 = np.kron(numqi.gate.Z, numqi.gate.I) + np.kron(numqi.gate.I, numqi.gate.Z)
theta_list = np.linspace(0, 2*np.pi, 400)
direction = np.stack([np.cos(theta_list), np.sin(theta_list)], axis=1)
beta_dm = numqi.matrix_space.get_joint_algebraic_numerical_range([op0,op1], direction)
nr_dm = beta_dm.reshape(-1,1)*direction
beta_ppt = numqi.entangle.get_ppt_numerical_range([op0, op1], direction, dim=(2,2))
nr_ppt = beta_ppt.reshape(-1,1)*direction
fig,ax = plt.subplots(figsize=(8,6))
ax.plot(nr_dm[:,0], nr_dm[:,1], label='DM') #density matrix
ax.plot(nr_ppt[:,0], nr_ppt[:,1], label='PPT')
ax.legend()
ax.set_label('$O_0$')
ax.set_label('$O_1$')
Apparently, the PPT set is within density matrix set (labeled "DM" in the figure). And for this two-qubits Hilbert space, the PPT set is equavalent to the SEP set. One can check that the PPT vertex (0,±1) corresponds to the density matrix
Task: can you figure out the density matrix corresponds to the other two vertices (±1,0)?
Task: What about the numerical range with respect to the operators O1=X⊗X,O2=Z⊗I+I⊗Z
For larger dimension dAdB>6(dA≥2,dB≥2), the PPT criterion is a necessary condition for separability, but not sufficient, and there is PPT state which is not separable (bounded entanglement wiki-link).
Below, we give an example of PPT but not separable state, called Tiles UPB/BES (Bounded Entangled state from Unextendible Product States) in two-qutrits system H3⊗H3. But this state can be detected by so-called generalized PPT criteria from paper "The generalized partial transposition criterion for separability of multipartite quantum states" link. In the later tutorials, we will introduce more advanced entanglement detection criteria.
upb_list, rho_bes = numqi.entangle.load_upb('tiles', return_bes=True)
print('satisfy PPT criterion:', numqi.entangle.is_ppt(rho_bes, dim=(3,3)))
print('satisfy generalized PPT criterion:', numqi.entangle.is_generalized_ppt(rho_bes, dim=(3,3)))
satisfy PPT criterion: True satisfy generalized PPT criterion: False
Further reading¶
Some good references for entanglement detection criteria see
- arxiv-link Separability criterion and inseparable mixed states with positive partial transposition, by Pawel Horodecki