BellInequalityMaxQubits
BellInequalityMaxQubits | |
Approximates the optimal value of a Bell inequality in qubit (i.e., 2-dimensional quantum) settings | |
Other toolboxes required | CVX |
---|---|
Related functions | BellInequalityMax NonlocalGameValue XORGameValue |
Function category | Nonlocality and Bell inequalities |
Usable within CVX? | no |
BellInequalityMaxQubits is a function that computes an upper bound for the maximum possible value of a given Bell inequality in a quantum mechanical setting where the two parties each have access to qubits (i.e., 2-dimensional quantum systems). This bound is computed using the method presented in [1].
Contents
Syntax
- BMAX = BellInequalityMaxQubits(JOINT_COE,A_COE,B_COE,A_VAL,B_VAL)
- [BMAX,RHO] = BellInequalityMaxQubits(JOINT_COE,A_COE,B_COE,A_VAL,B_VAL)
Argument descriptions
Input arguments
- JOINT_COE: A matrix whose $(i,j)$-entry gives the coefficient of $\langle A_i B_j \rangle$ in the Bell inequality.
- A_COE: A vector whose $i$-th entry gives the coefficient of $\langle A_i \rangle$ in the Bell inequality.
- B_COE: A vector whose $i$-th entry gives the coefficient of $\langle B_i \rangle$ in the Bell inequality.
- A_VAL: A vector whose $i$-th entry gives the value of the $i$-th measurement result on Alice's side.
- B_VAL: A vector whose $i$-th entry gives the value of the $i$-th measurement result on Bob's side.
Output arguments
- BMAX: An upper bound on the qubit value of the Bell inequality.
- RHO: A many-qubit quantum state that acts as a witness that verifies the bound provided by BMAX. This is the positive-partial-transpose (PPT) state described by [1].
Examples
The I3322 inequality
The I3322 inequality[2][3] is a Bell inequality that says that if $\{A_1,A_2,A_3\}$ and $\{B_1,B_2,B_3\}$ are $\{0,1\}$-valued measurement settings, then in classical physics the following inequality holds: \[\langle A_1 B_1 \rangle + \langle A_1 B_2 \rangle - \langle A_1 B_3 \rangle + \langle A_2 B_1 \rangle + \langle A_2 B_2 \rangle + \langle A_2 B_3 \rangle - \langle A_3 B_1 \rangle + \langle A_3 B_2 \rangle - \langle A_2 \rangle - \langle B_1 \rangle - 2\langle B_2 \rangle \leq 0.\] It is straightforward to check that a 2-qubit maximally-entangled Bell state allows for a value of $1/4$ in this Bell inequality. The following code verifies that it is not possible to get a value of larger than $1/4$ using $2$-dimensional systems:
>> BellInequalityMaxQubits([1 1 -1;1 1 1;-1 1 0], [0 -1 0], [-1 -2 0], [0 1], [0 1]) ans = 0.2500
It is worth taking a look at the $I_{3322}$ example at the BellInequalityMax page to compare the computations provided there.
Source code
Click on "expand" to the right to view the MATLAB source code for this function.
%% BELLINEQUALITYMAXQUBITS Approximates the optimal value of a 2-outcome Bell inequality in qubit (i.e., 2-dimensional quantum) settings
% This function has five required input arguments:
% JOINT_COE: A matrix whose (i,j)-entry is the coefficient of the term
% <A_iB_j> in the Bell inequality.
% A_COE: A vector whose i-th entry is the coefficient of the term <A_i>
% in the Bell inequality.
% B_COE: A vector whose i-th entry is the coefficient of the term <B_i>
% in the Bell inequality.
% A_VAL: A vector whose i-th entry is the value of the i-th measurement
% outcome on Alice's system. Must have exactly 2 entries.
% B_VAL: A vector whose i-th entry is the value of the i-th measurement
% outcome on Bob's system. Must have exactly 2 entries.
%
% BMAX = BellInequalityMaxQubits(JOINT_COE,A_COE,B_COE,A_VAL,B_VAL) is an
% upper bound on the maximum value that the specified Bell inequality can
% take on in 2-dimensional quantum settings (i.e., when the two parties
% have access to qubits). This bound is computed using the method of
% arXiv:1308.3410
%
% This function has now optional input arguments.
%
% URL: http://www.qetlab.com/BellInequalityMaxQubits
% requires: CVX (http://cvxr.com/cvx/), PartialTranspose.m,
% PermutationOperator.m, Swap.m
%
% author: Nathaniel Johnston (nathaniel@njohnston.ca)
% package: QETLAB
% last updated: April 13, 2015
function [bmax,rho] = BellInequalityMaxQubits(joint_coe,a_coe,b_coe,a_val,b_val)
% Get some basic values and make sure that the input vectors are column
% vectors.
[ma,mb] = size(joint_coe);
oa = length(a_val);
ob = length(b_val);
a_val = a_val(:); b_val = b_val(:);
a_coe = a_coe(:); b_coe = b_coe(:);
if(length(a_val) ~= 2 || length(b_val) ~= 2)
error('BellInequalityMaxQubits:InvalidInequality','This script is only capable of handling Bell inequalities with two outcomes.');
end
m = ma;
tot_dim = 2^(2*m+2);
obj_mat = sparse(tot_dim,tot_dim);
for a = 0:1
for b = 0:1
for x = 1:m
for y = 1:m
b_coeff = joint_coe(x,y)*a_val(a+1)*b_val(b+1);
if(y==1)
b_coeff = b_coeff + a_coe(x)*a_val(a+1);
end
if(x==1)
b_coeff = b_coeff + b_coe(y)*b_val(b+1);
end
obj_mat = obj_mat + b_coeff*kron(MN_matrix(m,a,x),MN_matrix(m,b,y));
end
end
end
end
obj_mat = (obj_mat+obj_mat')/2; % avoids some numerical problems in CVX
aux_mat = [1,0,0,0; 0,0,0,0; 0,0,0,0; 0,0,0,0];
% Now construct the SDP that does the separability (really PPT)
% optimization
cvx_begin sdp quiet
variable W(2^(2*m),2^(2*m)) hermitian;
maximize trace(Swap(Swap(kron(Swap(W,[2,m+1],2*ones(1,2*m)),aux_mat),[m+1,2*m+1],2*ones(1,2*m+2)),[m+2,2*m+1],2*ones(1,2*m+2)) * obj_mat)
subject to
trace(W) == 1;
W >= 0;
% Now construct all of the different possible PPT constraints
for sz = 1:(m-1)
ppt_partitions = nchoosek(1:(2*m-1),sz);
for j = 1:size(ppt_partitions,1)
PartialTranspose(W, ppt_partitions(j,:), [4,2*ones(1,2*(m-1))]) >= 0;
end
end
cvx_end
rho = W;
bmax = cvx_optval;
% Deal with error messages.
if(strcmpi(cvx_status,'Inaccurate/Solved'))
warning('BellInequalityMaxQubits:NumericalProblems','Minor numerical problems encountered by CVX. Consider adjusting the tolerance level TOL and re-running the script.');
elseif(strcmpi(cvx_status,'Inaccurate/Infeasible'))
warning('BellInequalityMaxQubits:NumericalProblems','Minor numerical problems encountered by CVX. Consider adjusting the tolerance level TOL and re-running the script.');
elseif(strcmpi(cvx_status,'Unbounded') || strcmpi(cvx_status,'Inaccurate/Unbounded') || strcmpi(cvx_status,'Failed'))
error('BellInequalityMaxQubits:NumericalProblems',strcat('Numerical problems encountered (CVX status: ',cvx_status,'). Please try adjusting the tolerance level TOL.'));
end
end
% This function computes the matrices M_a^x and N_b^y. Input arguments:
% M: the number of measurement settings for Alice and Bob
function MN = MN_matrix(m,a,x)
perm = 1:(m+1);
perm(1) = x+1;
perm(x+1) = 1;
MN = a*speye(2^(m+1)) + ((-1)^a)*PermutationOperator(2*ones(1,m+1), perm, 0, 1);
end
References
- ↑ 1.0 1.1 M. Navascués, G. de la Torre, and T. Vértesi. Characterization of quantum correlations with local dimension constraints and its device-independent applications. Phys. Rev. X, 4:011011, 2014. E-print: arXiv:1308.3410 [quant-ph]
- ↑ M. Froissart. Constructive generalization of Bell's inequalities. Nuov. Cim. B, 64:241, 1981
- ↑ D. Collins and N. Gisin. A relevant two qubit Bell inequality inequivalent to the CHSH inequality. J. Phys. A: Math. Gen., 37(5):1175, 2004. E-print: arXiv:quant-ph/0306129