Expressibility estimator for parameterized quantum circuits. Measures circuit expressibility via the KL divergence between the fidelity distribution of Haar-random states and that generated by the circuit. Requires Qiskit and Qiskit Aer.
Usage example:
from pqc_expressibility_estimator import ExpressibilityEstimator
from qiskit import QuantumCircuit
# Create an idle quantum circuit
pqc = QuantumCircuit(1)
pqc.save_statevector()
# Create an expressibility estimator for 5000 fidelities
expressibility_estimator = ExpressibilityEstimator(pqc, 5000, 'idle_circuit')
# Sample fidelities using a batch size of 1000 fidelities
expressibility_estimator.sample_fidelities(batch_size=1000)
# Compute the KL divergence using 75 bins
D_KL = expressibility_estimator.compute_kl_divergence(num_bins=75)
print(f'D_KL = {D_KL}')