Skip to content

Entanglement Measure via Seesaw Optimization

Accessible in both numqi.entangle (recommended) and numqi.entangle.measure_seesaw

numqi.entangle.get_GME_pure_seesaw(np0, converge_eps=1e-07, num_repeat=1, maxiter=1000, psi_list=None, seed=None)

Get the Geometric Measure of Entanglement (GME) of a pure state using the seesaw algorithm.

reference: Simple algorithm for computing the geometric measure of entanglement doi-link

Parameters:

Name Type Description Default
np0 ndarray

pure state, shape=(d1,d2,...,dN)

required
converge_eps float

convergence threshold

1e-07
num_repeat int

number of repeat to get the best result

1
maxiter int

maximum number of iterations

1000
psi_list list

initial states, len(psi_list)==N, psi_list[ind0].shape==(dim_list[ind0],). If None, random initial states will be used. When num_repeat>1, psi_list must be None.

None
seed (int, None)

random seed

None

Returns:

Name Type Description
GME float

non-negative number, the Geometric Measure of Entanglement

psi_list list

final states, len(psi_list)==N, psi_list[ind0].shape==(dim_list[ind0],)

numqi.entangle.get_GME_subspace_seesaw(np0, converge_eps=1e-07, num_repeat=1, maxiter=1000, psi_list=None, seed=None)

Get the Geometric Measure of Entanglement (GME) of a subspace using the seesaw algorithm.

reference: Simple algorithm for computing the geometric measure of entanglement doi-link

Parameters:

Name Type Description Default
np0 ndarray

pure state, shape=(N,d1,d2,...,dN)

required
converge_eps float

convergence threshold

1e-07
num_repeat int

number of repeat to get the best result

1
maxiter int

maximum number of iterations

1000
psi_list list

initial states, len(psi_list)==N, psi_list[ind0].shape==(dim_list[ind0],). If None, random initial states will be used. When num_repeat>1, psi_list must be None.

None
seed (int, None)

random seed

None

Returns:

Name Type Description
GME float

non-negative number, the Geometric Measure of Entanglement

psi_list list

final states, len(psi_list)==N, psi_list[ind0].shape==(dim_list[ind0],)

numqi.entangle.get_GME_seesaw(rho, dim_list, maxiter=1000, init_coeffq=None, init_phi_list=None, num_state=None, converge_eps=1e-10, num_repeat=1, maxiter_inner=100, converge_eps_inner=1e-07, zero_eps=1e-10, return_info=False, seed=None)

Get the Geometric Measure of Entanglement (GME) of a density matrix using the seesaw algorithm.

reference: Simple algorithm for computing the geometric measure of entanglement doi-link

Parameters:

Name Type Description Default
rho ndarray

density matrix, shape=(d1*d2*...*dN,d1*d2*...*dN)

required
dim_list tuple[int]

dimension list, len(dim_list)==N, dim_list[ind0] is the dimension of the ind0-th party

required
maxiter int

maximum number of iterations

1000
init_coeffq (ndarray, None)

initial probability distribution, shape=(num_state,)

None
init_phi_list (list, None)

initial states, len(init_phi_list)==N, init_phi_list[ind0].shape==(num_state,dim_list[ind0])

None
num_state (int, None)

number of states, default is 2*dim_total

None
converge_eps float

convergence threshold

1e-10
num_repeat int

number of repeat to get the best result

1
maxiter_inner int

maximum number of iterations for inner loop

100
converge_eps_inner float

convergence threshold for inner loop

1e-07
zero_eps float

zero threshold

1e-10
return_info bool

return additional information

False
seed (int, None)

random seed

None

Returns:

Name Type Description
GME float

non-negative number, the Geometric Measure of Entanglement

info dict

additional information, if return_info==True