Expressibility#
Our package allows you estimate the expressiblity of a given model.
model = Model(
    n_qubits=2,
    n_layers=1,
    circuit_type="HardwareEfficient",
)
input_domain, bins, dist_circuit = Expressibility.state_fidelities(
    seed=1000,
    n_samples=200,
    n_bins=10,
    n_input_samples=5,
    input_domain=[0, 2*np.pi],
    model=model,
)
Here, n_bins is the number of bins that you want to use in the histogram, n_samples is the number of parameter sets to generate (using the default initialization strategy of the model), n_input_samples is the number of samples for the input domain in \([0, 2\pi]\), and seed is the random number generator seed.
Note that state_fidelities accepts keyword arguments that are being passed to the model call.
This allows you to utilize e.g. caching.
Next, you can calculate the Haar integral (as reference), by
Finally, the Kullback-Leibler divergence allows you to see how well the particular circuit performs compared to the Haar integral: