Note
Go to the end to download the full example code.
Equiangular States and the Antidistinguishability Threshold¶
In this tutorial, we explore a sharp threshold for the antidistinguishability of a special class of quantum states known as equiangular states. We will numerically verify a tight bound presented in the paper by Johnson et.al [1] and visualize the “sharp cliff” where this property changes.
This tutorial builds upon the concepts introduced in the Quantum state exclusion tutorial.
Antidistinguishability Threshold for Equiangular States¶
A set of \(n\) pure states \(\{|\psi_0\rangle, \ldots, |\psi_{n-1}\rangle\}\) is called equiangular if the absolute value of the inner product between any two distinct states is a constant, i.e., \(|\langle \psi_i | \psi_j \rangle| = \gamma\) for all \(i \neq j\).
Johnston et.al [1] introduced a simple and powerful necessary condition for a set of states to be antidistinguishable.
According to Corollary 4.2 from [1], when \(n \geq 2\), \(S = \{| \psi_0\rangle, \ldots, |\psi_{n-1}\rangle\}\) is not anstidistinguishable if the following condition is satisfied.
Crucially, Example 3.3 in the paper demonstrates that this bound is tight.
That is, a set of equiangular states with an inner product exactly equal
to the threshold \(\gamma = \frac{n-2}{n-1}\) is antidistinguishable.
We can use |toqito⟩ to verify this sharp transition.
Numerical Verification¶
To demonstrate the tightness of this bound, we follow Example 3.3 from the paper [1]. The Gram matrix for a set of \(n\) equiangular states is given by
where \(I\) is the identity matrix and \(J\) is the all-ones matrix.
We will verify the threshold for the \(n=4\) case, where the critical inner product is \(\gamma_{\text{crit}} = (4-2)/(4-1) = 2/3\). Our verification plan is as follows:
Construct the Gram matrix \(G_{\text{at}}\) for \(\gamma = \gamma_{\text{crit}}\).
Construct a second Gram matrix \(G_{\text{above}}\) for \(\gamma\) slightly greater than \(\gamma_{\text{crit}}\).
For each Gram matrix, use
|toqito⟩to generate a corresponding set of state vectors.For each set of states, compute the minimum probability of error for state exclusion using the
state_exclusion()function.Confirm that the states at the threshold are antidistinguishable (error probability is \(0\)) and the states above it are not (error probability is > \(0\)).
68 import numpy as np
69
70 from toqito.matrix_ops import vectors_from_gram_matrix
71 from toqito.state_opt import state_exclusion
72
73 # Define parameters for n=4.
74 n = 4
75 gamma_crit = (n - 2) / (n - 1)
76 # Use a larger epsilon to make the effect numerically obvious.
77 epsilon = 0.01
78
79 print(f"For n={n}, the critical threshold is γ = {gamma_crit:.4f}")
80
81 # 1. Construct and test the Gram matrix AT the threshold.
82 gamma_at = gamma_crit
83 gram_at = (1 - gamma_at) * np.identity(n) + gamma_at * np.ones((n, n))
84 states_at = vectors_from_gram_matrix(gram_at)
85 opt_val_at, _ = state_exclusion(states_at)
86 is_ad_at = np.isclose(opt_val_at, 0)
87
88 print(f"\nFor γ = {gamma_at:.4f} (at threshold):")
89 print(f" - Optimal error probability is {opt_val_at:.2e}")
90 print(f" - Is the set antidistinguishable? {is_ad_at} (as expected)")
91
92 # 2. Construct and test the Gram matrix slightly ABOVE the threshold.
93 gamma_above = gamma_crit + epsilon
94 gram_above = (1 - gamma_above) * np.identity(n) + gamma_above * np.ones((n, n))
95 states_above = vectors_from_gram_matrix(gram_above)
96 opt_val_above, _ = state_exclusion(states_above)
97 is_ad_above = np.isclose(opt_val_above, 0)
98
99 print(f"\nFor γ = {gamma_above:.4f} (above threshold):")
100 print(f" - Optimal error probability is {opt_val_above:.2e}")
101 print(f" - Is the set antidistinguishable? {is_ad_above} (as expected)")
For n=4, the critical threshold is γ = 0.6667
For γ = 0.6667 (at threshold):
- Optimal error probability is 5.11e-11
- Is the set antidistinguishable? True (as expected)
For γ = 0.6767 (above threshold):
- Optimal error probability is 7.58e-05
- Is the set antidistinguishable? False (as expected)
Antidistinguishability and (n-1)-Incoherence¶
The core theoretical result of (Theorem 3.2) [1] is that a set of \(n\) pure states is antidistinguishable if and only if its Gram matrix is \((n-1)\)-incoherent. Our numerical results above, obtained by solving the state exclusion SDP, implicitly verify this property for the Gram matrix as well.
Visualizing the Threshold¶
We can make this “sharp cliff” even clearer by plotting the optimal error probability of state exclusion against the inner product \(\gamma\). To match the style of Figure 2 from [1], we will plot this for several values of \(n\).
The value returned by state_exclusion() is the optimal
probability of error. The plot should show this probability lifting off from
\(0\) precisely at the threshold \(\gamma_{\text{crit}} = (n-2)/(n-1)\) for
each respective \(n\).
A Gram matrix for equiangular states is positive semidefinite (and thus physically valid) if and only if \(-1/(n-1) \leq \gamma \leq 1\).
131 import matplotlib.pyplot as plt
132
133 from toqito.matrix_props import is_positive_semidefinite
134
135 fig, ax = plt.subplots(figsize=(8, 5), dpi=100)
136 gamma_range = np.linspace(0, 0.999, 101)
137 n_vals_to_plot = [2, 3, 4, 5, 10]
138
139 for n_val in n_vals_to_plot:
140 error_probs = []
141 gamma_crit_n = (n_val - 2) / (n_val - 1)
142
143 for gamma in gamma_range:
144 # The Gram matrix is only PSD in a specific range.
145 if gamma < -1 / (n_val - 1):
146 error_probs.append(np.nan)
147 continue
148
149 gram_matrix = (1 - gamma) * np.identity(n_val) + gamma * np.ones((n_val, n_val))
150
151 if is_positive_semidefinite(gram_matrix):
152 states = vectors_from_gram_matrix(gram_matrix)
153 opt_val, _ = state_exclusion(states)
154 # The returned optimal value is the error probability.
155 error_probs.append(opt_val)
156 else:
157 # If not PSD, it's not a valid Gram matrix for a state ensemble.
158 error_probs.append(np.nan)
159
160 ax.plot(gamma_range, error_probs, label=f"$n={n_val}$ ($\\gamma_{{crit}} \\approx {gamma_crit_n:.2f}$)")
161
162
163 ax.set_xlabel("Inner Product $\\gamma = |\\langle \\psi_i | \\psi_j \\rangle|$", fontsize=12)
164 ax.set_ylabel("Optimal Exclusion Error Probability", fontsize=12)
165 ax.set_title("Antidistinguishability Threshold for Equiangular States", fontsize=14)
166 ax.legend(fontsize=10)
167 ax.grid(True)
168 ax.set_ylim(bottom=-0.01)
169 plt.tight_layout()
170 plt.show()

This plot, which numerically reproduces the results from Figure 2 of [1], shows that the optimal probability of error is exactly \(0\) for all \(\gamma \leq (n-2)/(n-1)\), indicating that the states are perfectly antidistinguishable. The moment \(\gamma\) exceeds this value, the probability becomes non-zero, meaning perfect exclusion is no longer possible.
References¶
Total running time of the script: (0 minutes 14.055 seconds)