问题
I have been working with q# for a couple weeks now, and I'm interested in resource estimation for quantum chemistry.
Using the example programs provided, such as "GetGateCount" on a variety of molecules (also provided by the examples) I always get a 0 T gate count for Trotterisation. Qubitization and Optimized Qubitization seem to be working fine.
This was also the case when I added resource estimation to a different example program provided, "MolecularHydrogenGUI" with the info provided here: https://docs.microsoft.com/en-us/quantum/machines/resources-estimator.
Any help would be appreciated, I was wondering if this is a recent bug?
回答1:
I believe ResourceEstimator outputs the literal gate counts - the number of times each gate has been invoked in the code. It provides two separate gate counts for T gates and arbitrary rotation gates, and it does not perform gate synthesis to convert arbitrary rotations into sequences of primitive gates including T gates.
I suspect the other two algorithms use both arbitrary rotations and T gates explicitly, and Trotterization uses only rotations, so the T gate count shows as 0, even though running this code on a real device would definitely require T gates. I have not looked into the code to confirm this, though.
The script used to produce the graphs for the chemistry gate counts in the samples uses the following approximation of T gate count using ResourceEstimator reports:
TotalTCount = TCount - 4 * log2( 0.001 / RotationsCount) * RotationsCount
来源:https://stackoverflow.com/questions/60619381/resource-estimation-for-trotterisation-always-outputs-a-0-t-gate-cost