Closed natestemen closed 1 year ago
The list of explicit strategies looks great to me. Easy to understand and flexible.
We could do something similar for the benchmark circuits too. For example,
Settings(
benchmarks =[
{
circuit_type="ghz".
num_qubits=2,
circuit_depth=None,
},
{
circuit_type="rb".
num_qubits=2,
circuit_depth=7,
},
.....
],
strategies = [{},{}, .....],
)
About your code snippet, I see 2 potential problems:
1) for ghz
circuits depth
is fixed by num_qubits
. Similarly, different benchmarks may need different options.
2) It could be good to test multiple values of depths
and multiple values of num_qubits
.
Clarification: this issue is for determining which combinations of parameters we should use for testing and potentially add more built-in Settings
objects to test.
The
ZNESettings
object (which specifies a set of experiments to run to find the best ZNE hyperparameters), is currently very barebones. https://github.com/unitaryfund/mitiq/blob/f4045949c28d519c4976b5be8c8ab826888e9b70/mitiq/calibration/settings.py#L240-L286This has allowed it to be tested in code, but it's not necessarily as useful as it can be. @nathanshammah @willzeng @andreamari do you have comments here on what is/is not important to test here.