CHA model
Convex Hull Approximation (CHA)
Accessible in both numqi.entangle
(recommended) and numqi.entangle.cha
numqi.entangle.CHABoundaryBagging
Convex Hull Approximation with Bagging
Separability-entanglement classifier via machine learning doi-link
__init__(dim, num_state=None, solver=None)
initialize the model
Parameters:
Name | Type | Description | Default |
---|---|---|---|
dim
|
tuple[int]
|
dimension of the bipartite system, len(dim) must be 2 |
required |
num_state
|
int
|
number of states in the convex hull, default to 2(dim[0]dim[1])**2 |
None
|
solve(dm, maxiter=150, norm2_init=1, decay_rate=0.97, threshold=1e-07, num_init_retry=10, use_tqdm=False, return_info=False, seed=None)
solve the convex hull approximation
Parameters:
Name | Type | Description | Default |
---|---|---|---|
dm
|
ndarray
|
target density matrix |
required |
maxiter
|
int
|
maximum number of iterations, default to 150 |
150
|
norm2_init
|
float
|
initial norm2 bound, default to 1 |
1
|
decay_rate
|
float
|
decay rate of the norm2 bound, default to 0.97 |
0.97
|
threshold
|
float
|
threshold for the probability, default to 1e-7. if |
1e-07
|
num_init_retry
|
int
|
number of retries for the initial state, default to 10 |
10
|
use_tqdm
|
bool
|
use tqdm, default to False |
False
|
return_info
|
bool
|
return the information of the optimization, default to False |
False
|
seed
|
int
|
random seed, default to None |
None
|
Returns:
Name | Type | Description |
---|---|---|
beta |
float
|
the optimal beta, boundary length |
info |
tuple[ndarray, ndarray, ndarray, ndarray]
|
the information of the optimization |
numqi.entangle.AutodiffCHAREE
Bases: Module
Gradient descent model for convex hull approximation to separable states
__init__(dim, num_state=None, distance_kind='ree')
initialize the model
Parameters:
Name | Type | Description | Default |
---|---|---|---|
dim
|
tuple[int]
|
dimension of the bipartite system, len(dim) must be 2 |
required |
num_state
|
int
|
number of states in the convex hull, default to 2dim0dim1 (seems to work well) |
None
|
distance_kind
|
str
|
'gellmann' or 'ree', default to 'ree' |
'ree'
|
get_boundary(dm0, xtol=0.0001, converge_tol=1e-10, threshold=1e-07, num_repeat=1, use_tqdm=True, return_info=False, seed=None)
get the boundary of the convex hull approximation
Parameters:
Name | Type | Description | Default |
---|---|---|---|
dm0
|
ndarray
|
initial density matrix |
required |
xtol
|
float
|
tolerance for the bisection, default to 1e-4 |
0.0001
|
converge_tol
|
float
|
tolerance for the optimization, default to 1e-10 |
1e-10
|
threshold
|
float
|
threshold for the probability, default to 1e-7 |
1e-07
|
num_repeat
|
int
|
number of repeats for the optimization, default to 1 |
1
|
use_tqdm
|
bool
|
use tqdm, default to True |
True
|
return_info
|
bool
|
return the information of the optimization, default to False |
False
|
seed
|
int
|
random seed, default to None |
None
|
Returns:
Name | Type | Description |
---|---|---|
beta |
float
|
the optimal beta, boundary length |
info |
ndarray
|
the information of the optimization |
get_numerical_range(op0, op1, num_theta=400, converge_tol=1e-05, num_repeat=1, use_tqdm=True, seed=None)
get the numerical range of the two Hermitian operators
Parameters:
Name | Type | Description | Default |
---|---|---|---|
op0
|
ndarray
|
the first Hermitian operator |
required |
op1
|
ndarray
|
the second Hermitian operator |
required |
num_theta
|
int
|
number of theta, default to 400 |
400
|
converge_tol
|
float
|
tolerance for the optimization, default to 1e-5 |
1e-05
|
num_repeat
|
int
|
number of repeats for the optimization, default to 1 |
1
|
use_tqdm
|
bool
|
use tqdm, default to True |
True
|
seed
|
int
|
random seed, default to None |
None
|
Returns:
Name | Type | Description |
---|---|---|
ret |
ndarray
|
the numerical range of the two Hermitian operators, |
set_dm_target(rho)
set the target density matrix
Parameters:
Name | Type | Description | Default |
---|---|---|---|
rho
|
ndarray
|
target density matrix |
required |
set_expectation_op(op)
set the expectation operator
Parameters:
Name | Type | Description | Default |
---|---|---|---|
op
|
ndarray
|
the expectation operator |
required |