你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

如何将已知估计值与资源估算器配合使用

本文介绍如何使用预先计算的估计值并优化 Azure Quantum 资源估算器的执行

有关如何运行资源估算器的信息,请参阅 运行资源估算器的不同方法。

先决条件

如果要在 VS Code 中使用 Python,则还需要以下各项:

  • 安装最新版本的 Python适用于 VS Code 的 Jupyter 扩展。

  • 最新的 Azure Quantum qsharp 包。

    python -m pip install --upgrade qsharp 
    

对操作使用已知估计值

如果你已经知道某个操作的一些估计值,例如从已发布的论文中,减少执行时间的一种方法是采用已知的估计并将其合并到总体程序成本中。

你可能希望从预计算的估计中执行估计的一些方案:

  • 你想要尝试论文中描述的新算法,以检查它是否提高了程序的性能。 可以从论文中获取估算值,并将其合并到计划中。
  • 你想要从上到下开发程序,即从主函数开始开发,然后实现较低级别。 可以将顶级的已知估计值与整个计划的预期估计一起使用。 随着开发过程的发展,新的组件开始调用已知的估计值,预期估计值将被实际实现所取代。 这样,整个程序的估计就提前知道,随着开发进度的推进,获得更精确的估计。

可以使用该 AccountForEstimatesQ# 操作将已知估计值传递给资源估算器。

注意

特殊操作 AccountForEstimates 是资源估算器的内部操作。 其他执行 targets不支持它。

例如,请考虑以下 Q# 调用 FactoringFromLogicalCounts 的操作,该操作采用已知估计列表和量子比特列表。

import Microsoft.Quantum.ResourceEstimation.*;

operation FactoringFromLogicalCounts() : Unit {
    use qubits = Qubit[12581];

    AccountForEstimates(
        [TCount(12), RotationCount(12), RotationDepth(12),
         CczCount(3731607428), MeasurementCount(1078154040)],
        PSSPCLayout(), qubits);
}

AccountForEstimates 操作可以采用以下参数:

使用 AccountForEstimates 说明
AuxQubitCount(amount : Int) 返回可传递给 AccountForEstimates 操作的元组,以指定辅助量子比特数等于 amount
TCount(amount : Int) 返回可以传递给 AccountForEstimates 操作的元组,以指定 T 门数等于 amount
MeasurementCount(amount : Int) 返回可传递给 AccountForEstimates 操作的元组,以指定度量数等于 amount
RotationCount(amount : Int) 返回可传递给 AccountForEstimates 操作的元组,以指定旋转数等于 amount
RotationDepth(amount : Int) 返回一个元组,该元组可以传递给 AccountForEstimates 操作以指定旋转深度等于 amount
CczCount(amount : Int) 返回可传递给 AccountForEstimates 操作的元组,以指定 CCZ 门数等于 amount
PSSPCLayout() 指示并行合成顺序 Pauli 计算 (PSSPC) 布局。 有关详细信息,请参阅 arXiv:2211.0769

注意

如果在使用资源估算器时遇到任何问题,请查看 “故障排除”页或联系 AzureQuantumInfo@microsoft.com