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

Q# 库

Quantum 开发工具包 (QDK) 通过可添加到 Q# 项目中的 NuGet 包提供其他特定于域的功能。

Q# 库 NuGet 包 说明
Q#标准库 Microsoft.Quantum.Standard 默认包括
量子化学库 Microsoft.Quantum.Chemistry
量子机器学习库 Microsoft.Quantum.MachineLearning
量子数字库 Microsoft.Quantum.Numerics

标准库

安装和验证期间安装的 Microsoft.Quantum.Sdk NuGet 包自动提供了 Q# 标准库。 标准库提供了一组非常有用的基本函数和运算,可将其用于在 Q# 中编写量子程序。

标准库的功能包括经典数学、各种 Q# 数据类型之间的类型转换、量子程序中的错误诊断、量子纠错、操作影响的特征,以便开发有用的量子算法以及更多功能。

有关详细信息,请参阅标准库

量子化学库

长期以来,物理系统的模拟在量子计算中一直发挥着核心作用。 这是因为人们普遍认为,量子动力学很难在经典计算机上模拟,这意味着模拟系统的复杂性会随着所讨论的量子系统的大小呈指数增长。 模拟化学和材料科学中的问题可能仍然是量子计算中最令人回味的应用,我们借此能够探索迄今为止我们无法测量或模拟的化学反应机制。 我们借此还可以模拟相关的电子材料,例如高温超导体。 该技术在此领域的应用非常宽广。

针对 Quantum 开发工具包的量子化学库文档介绍了如何在量子计算机上模拟电子结构问题并提供了多个示例,帮助读者理解 Hamiltonian 模拟库在该领域的许多方面发挥的作用。 有关详细信息,请参阅量子化学库

Quantum 开发工具包的量子化学库专设计用于与计算化学包配合使用,其中最著名的是太平洋西北国家实验室的环境分子科学实验室 (EMSL) 开发的 NWChem 计算化学平台。 有关详细信息,请参阅安装量子化学库

量子计算机学习库

量子机器学习库是一个用 Q# 编写的 API,用于运行混合量子/经典机器学习试验。 该库用于:

  • 加载你自己的数据,以便通过量子模拟器进行分类
  • 通过示例和教程将你引入量子机器学习领域

与当前的经典机器学习框架相比,性能预期会降低(请记住,所有内容都在计算成本已经很高昂的量子设备模拟基础上运行)。 此库中实现的模型基于 Circuit-centric quantum classifiers(以线路为中心的量子分类器)中提供的量子-经典训练方案。

量子计算机学习库文档提供顺序分类器的实现,这些分类器可利用量子计算来了解数据。 在此文档中,你将看到:

量子数字库

许多量子算法依赖于 oracle,可通过叠加输入来计算数学函数。 例如,秀尔算法的主成分使用固定的 $a$,赋予数值的因子 $N$,以及 $x$ 一个在所有 $2n$ 位字符串上一致叠加的 $2n$ 量子位整数,求 $f(x) = a^x\operatorname{mod} N$ 的值。

若要在实际量子计算机上运行秀尔算法,则必须根据目标计算机的本机操作编写此函数。 使用 $x$ 的二进制表示形式,其中 $x_i$ 表示从最低有效位开始计数的第 $i$ 位,$f(x)$ 可以写为 $f(x) = a^{\sum_{i=0}^{2n-1} x_i 2^i} \operatorname{mod} N$。

反过来,这可以写为 $a^{2^i x_i}=(a^{2^i})^{x_i}$ 术语的产品 (mod N)。 因此,函数 $f(x)$ 可以使用 $2n$(模)乘序列来实现,其中 $a^{2^i}$ 为条件,$x_i$ 为非零值。 在运行该算法之前,常量 $a^{2^i}$ 可以预计算并规约取模 N。

可以进一步简化此受控模乘的序列:可以使用 $n$ 受控模加的序列来执行每个乘法;每个模加都可以通过常规加法器和比较器构建。

考虑到要得到一个实际的实现需要执行许多步骤,因此从一开始就可以使用这样的功能将非常有帮助。 这就是量子开发工具包支持广泛的数字功能支持的原因。

除了到目前为止提到的整数运算,数字库还提供:

  • 使用一个或两个量子整数作为输入的有/无符号整数功能(乘法、平方、带余除法、反演...)。
  • 使用一个或两个量子定点数作为输入的定点功能(加法/减法、乘法、平方、1/x、多项式求值)。

安装

安装了用于你的首选环境和主机语言的 Quantum 开发工具包后,即可轻松将库添加到各个 Q# 项目,而无需进行任何进一步的安装。

注意

一些 Q# 库可以很好地与用于 Q# 程序或与主机应用程序集成的其他工具配合使用。 例如,化学库安装说明介绍了如何将 Microsoft.Quantum.Chemistry 包与 NWChem 计算化学平台配合使用,以及如何安装用于量子化学数据的 qdk-chem 命令行工具。

命令提示符或 Visual Studio Code:可以使用命令提示符或从 Visual Studio Code 中使用 dotnet 命令将 NuGet 包引用添加到项目。 例如,若要添加 Microsoft.Quantum.Numerics 包,可运行以下命令:

dotnet add package Microsoft.Quantum.Numerics

Visual Studio:如果使用 Visual Studio 2022 或更高版本,则可以使用 NuGet 包管理器添加其他 Q# 包。 若要加载包:

  1. 在 Visual Studio 中打开项目后,从“项目”菜单中选择“管理 NuGet 包...” 。

  2. 单击“浏览”,选择“包括预发行版”,然后搜索包名称“Microsoft.Quantum.Numerics” 。 这将列出可供下载的包。

  3. 将鼠标悬停在“Microsoft.Quantum.Numerics”上,单击版本号右侧的向下箭头,以安装 numerics 包。

有关更多详细信息,请参阅包管理器 UI 指南

或者,可以使用包管理器控制台通过命令行接口将 numerics 库添加到项目。

通过命令提示符使用包管理器控制台

在包管理器控制台中,运行以下命令:

Install-Package Microsoft.Quantum.Numerics

有关更多详细信息,请参阅包管理器控制台指南

后续步骤

从 GitHub 可以获取库和代码示例的原始资料。 有关详细信息,请参阅许可。 请注意,包引用(“二进制文件”)也适用于库,提供了在项目中包括库的另一种方法。