Antidistinguishability of Circulant States and the Eigenvalue Criterion

In this tutorial, we investigate the antidistinguishability of a special class of quantum states known as circulant states. We will numerically verify a necessary and sufficient condition based on the eigenvalues of the states’ Gram matrix, as presented in the paper by Johnston et al. [1].

This tutorial builds upon the concepts introduced in the Quantum state exclusion tutorial.

Eigenvalue Criterion for Circulant States

A set of \(n\) pure states is called circulant if its Gram matrix is circulant. A matrix is circulant if each of its rows is a cyclic shift of the row above it. Such sets of states have a high degree of symmetry and appear in various quantum information contexts.

A key result from (Theorem 5.1) [1] provides a simple and exact criterion for determining if a circulant set is antidistinguishable, based solely on the eigenvalues of its Gram matrix.

The theorem states that a set of \(n\) states with a circulant Gram matrix \(G\) is antidistinguishable if and only if its eigenvalues \(\lambda_0 \ge \lambda_1 \ge \cdots \ge \lambda_{n-1}\) satisfy the following inequality:

\[\sqrt{\lambda_0} \le \sum_{j=1}^{n-1} \sqrt{\lambda_j}\]

This gives us a direct analytical test that is much more efficient than solving a full semidefinite program (SDP). We can use |toqito⟩ to verify this equivalence.

Numerical Verification

Our plan to verify this theorem is as follows:

  1. Generate a random circulant Gram matrix \(G\) using random_circulant_gram_matrix().

  2. Compute its eigenvalues and perform the analytical check using the inequality from the theorem.

  3. Generate the corresponding set of state vectors from \(G\) using vectors_from_gram_matrix().

  4. Perform a numerical check by calling the high-level function is_antidistinguishable() to directly verify the property.

  5. Confirm that the analytical and numerical checks yield the same conclusion.

 55 import numpy as np
 56
 57 from toqito.matrix_ops import vectors_from_gram_matrix
 58 from toqito.rand import random_circulant_gram_matrix
 59 from toqito.state_props import is_antidistinguishable
 60
 61 # 1. Define parameters and generate a random circulant Gram matrix.
 62 n = 5
 63 # Use a seed for reproducibility.
 64 seed = 42
 65
 66 print(f"Generating a random {n}x{n} circulant Gram matrix (seed={seed})...")
 67 gram_matrix = random_circulant_gram_matrix(n, seed=seed)
 68
 69 # 2. Perform the analytical check based on the eigenvalue criterion.
 70 # Use 'eigvalsh' for Hermitian matrices; it's faster and returns real eigenvalues.
 71 eigenvalues = np.linalg.eigvalsh(gram_matrix)
 72 # Sort eigenvalues in descending order.
 73 eigenvalues = np.sort(eigenvalues)[::-1]
 74 lambda_0 = eigenvalues[0]
 75 other_lambdas = eigenvalues[1:]
 76
 77 # The analytical check from the theorem:
 78 lhs = np.sqrt(lambda_0)
 79 # The sum of the square roots of the other eigenvalues.
 80 # Use np.maximum to avoid numerical precision errors leading to sqrt of tiny negative numbers.
 81 rhs = np.sum(np.sqrt(np.maximum(0, other_lambdas)))
 82 analytical_is_ad = lhs <= rhs
 83
 84 print("\nANALYTICAL CHECK (from Theorem 5.1 of Johnston et al.):")
 85 print(f"  sqrt(λ₀) = {lhs:.4f}")
 86 print(f"  Σ sqrt(λⱼ) for j>0 = {rhs:.4f}")
 87 print(f"  Is sqrt(λ₀) <= Σ sqrt(λⱼ)? {analytical_is_ad}")
 88 print(f"  Conclusion: The set SHOULD BE antidistinguishable: {analytical_is_ad}")
 89
 90 # 3. Generate states from the Gram matrix for the numerical check.
 91 states = vectors_from_gram_matrix(gram_matrix)
 92
 93 # 4. Perform the numerical check using |toqito⟩'s high-level function.
 94 numerical_is_ad = is_antidistinguishable(states)
 95
 96 print("\nNUMERICAL CHECK (via is_antidistinguishable function):")
 97 print(f"  Conclusion: The set IS antidistinguishable: {numerical_is_ad}")
 98
 99 # 5. Verify that both methods agree.
100 print("\n------------------------------------------------------")
101 print(f"Do the analytical and numerical results agree? {analytical_is_ad == numerical_is_ad}")
102 print("------------------------------------------------------")
Generating a random 5x5 circulant Gram matrix (seed=42)...

ANALYTICAL CHECK (from Theorem 5.1 of Johnston et al.):
  sqrt(λ₀) = 0.8820
  Σ sqrt(λⱼ) for j>0 = 2.7943
  Is sqrt(λ₀) <= Σ sqrt(λⱼ)? True
  Conclusion: The set SHOULD BE antidistinguishable: True

NUMERICAL CHECK (via is_antidistinguishable function):
  Conclusion: The set IS antidistinguishable: True

------------------------------------------------------
Do the analytical and numerical results agree? True
------------------------------------------------------

The results from both the analytical eigenvalue criterion and the numerical check using |toqito⟩’s helper function agree, providing a concrete verification of Theorem 5.1 from [1]. This demonstrates how a deep theoretical result can provide a powerful and efficient shortcut for a problem that would otherwise require a more computationally intensive optimization.

References

Total running time of the script: (0 minutes 0.016 seconds)

Gallery generated by Sphinx-Gallery