Skip to main content

量子计算类型库

项目描述

dann5.ocean 版本 2 (d5o2)

该项目旨在简化量子计算模型的编程,并演示更快开发交互式示例的方法,这将帮助您学习使用dann5 d5o 库在量子计算机上制定和解决问题量子编程类型和操作。d5o 库提供了将操作分配转换为 QUBO 的方法,然后可以在各种量子求解器上执行,例如使用 IBM Qiskit 的模拟量子门计算机,或使用 DWave Ocean 的量子退火器或混合计算机,或使用 Azure Quantum 的量子模拟器。Dann5 d5o 库提供了在 Python 中指定未定义和已定义变量的编程类型的方法,如 q-bit、q-boolean、q-binary、q-whole、q-integer、量子非负有理数和 q-有理数。然后可以通过应用适当的操作表达式来描述需要解决的问题,将指定的量子变量链接到量子逻辑分配中。在某种程度上 dann5 d5o 库是 D-Wave Ocean 工具堆栈的扩展,

Dann5 项目和 d5o 框架的目标是为 QA​​C 开发人员提供编程结构,例如:

  • 标准类型:
    • Qbit † – 量子位,其中

      Qbit x ϵ { 0, 1, S(叠加) }

    • Qbool † – 量子布尔值,其中

      Qbool x ϵ { T(rue), F(alse), S(uperposition) }

    • Qbin † – 量子二进制,作为 Qbit 的数组

      Qbin x ≡ Qbit[ xi; 其中 xi ϵ Qbit & 0 <= i <= n ]

    • Qwhole – 量子整数(非负整数),其中
      Qwhole x ∈ { n | n ≥ 0                                         }
                 {   | n = U(nknown) if ni = S | ni ϵ Qbit & ni ϵ n} }
      
    • Qint † – 量子整数,其中
      Qint x ∈ Qwhole U -Qwhole                                         }
      
    • Qnnr †† – 量子非负有理数,其中
      Qnnr x ∈ { r | r ∈ R(ational) & n≥0                          }
               {   | r = U(nknown) if ri = S | ri ϵ Qbit & ri ϵ r} }
      
    • Qrat †† – 量子有理数,其中
      Qreal x ∈ Qnnr U -Qnnr                                         }
      
  • 定义:
    • 量子变量示例

      Qbit x(“x”) ⇛ 用处于 S(upperpostion) 状态的位初始化一个 Q 位变量

      Qbool y(“z”, d5o.Qbool.false()) ⇛ 用位 z = 0 初始化定义的 Q 二进制变量

      Qbin a(3, “a”) ⇛ 初始化一个未定义的 Q 二进制变量,其中 3 个量子位处于 S(upperpostion) 状态

      Qwhole b(“b”, 6) ⇛ 用值 6 初始化定义的 Q 整体变量 b,即包含 3 个具有确定值的 qbit:b0 = 0、b1 = 1 和 b2 = 1

      Qint i(3, “i”, -1) ⇛ 用值 -1 初始化定义的 Q 整个变量 i,即包含 3 个具有确定值的 qbits:i0 = 1 i1 = 1 和 i2 = 1

      Qnnr c(“c”, 2.5) ⇛ 用二进制值 10.1 初始化定义的 Q 非负有理变量 c,即 c-1 = 1, c0 = 0 和 c1 = 1 ††

      Qrat a(1.2, “d”) ⇛ 用 3 个量子比特初始化一个 Q 有理变量 d,作为未知有理数,即 d-2 = S, d-1 = S 和 d0 = S ††

    • Qassignment - 量子分配定义了预定义变量之间的操作交互

      eX = Qwhole(“X”, 15).assign(a * a) ⇛ 对于 Q 变量 a(如上定义)将具有预期结果 X -= 15 的乘法表达式分配给 eX Q 量子分配

      • QUBO 集成到 D-Wave Ocean、Azure Quantum 或 Qiskit:
        • qubo() – 返回分配的 QUBO 二元二次模型 (BQM)

          eX.qubo() ⇛ 用于 eX Q 赋值(上面定义)返回一个 QUBO 字典对象,用于在精确或 QAC 求解器上执行

        • add() – 接收求解器返回的样本字典

          eX.add(lowSamples) ⇛ 将从求解器返回的结果样本设置为 eX Q 方程,该方程已用于创建 QUBO BQM

        • 解决方案() - 根据添加的样本返回分配解决方案的字符串表示形式

          eX.solutions() ⇛ 用于 eX Q 赋值(上面定义),预期结果 15 和 b 设置为 6 返回未定义 Q 变量 a 的解决方案

        • reset() – 将分配重置为其初始状态,即没有任何解决方案

          eX.reset() ⇛ 用于 eX Q 赋值(如上定义)设置为其初始状态

    • Qcondition †† - 量子条件语句

      Qcondition cA(a > b) ⇛ 创建一个 Q 条件 cA,比较(上面定义的)Q 变量 a 和 b

      cA << eX ⇛ 在条件 cA 下添加(上面定义的)要计算的 eX Q 方程,即 a 大于 b

    • Qroutine †† - 量子例程

      Qroutine program(“my Q program”) ⇛ 创建一个 Q 例程程序,允许关联编程 Q 语句

      程序 << cA << eB ⇛ 将(上面定义的)cA Q 条件和预定义的 eB Q 方程添加到我的 Q 程序中

    • Qfunction †† - 量子函数例程

      Qfunction myF(“my F”, a) ⇛ 创建一个 Q 函数例程 my F,其中 Q 变量 a 作为返回变量

      myF << cA << a + b ⇛ 将(上面定义的)cA Q 条件和 a 和 b 的加法 Q 方程添加到 myF

      eB *= myF ⇛ 更新 eB Q 方程,将其现有表达式与 myF Q 函数的返回值相乘

    • Qpow ††, Qmod ††, Qgcd †† - 专门的量子函数

      Qpow a_x3(a, 3) ⇛ 创建一个以 Q 变量 a 为底数和指数 3 的幂 Q 函数例程 a_x3

      Qmod b_m3(b, 3) ⇛ 创建一个模 Q 函数例程 b_m3,其中 Q 变量 b 作为被除数和除数 3

      Qgcd a_b(a, b) ⇛ 为 Q 变量 a 和 b 创建一个最大公约数 Q 函数例程 a_b

  • 标准操作:
    • 赋值 ——量子变量或表达式到 Q 方程

    • 一元运算符:〜(反转)

    • 二元运算符:+、*、-、/

    • 逻辑运算符:&、|、^、nand、nor

    • 比较运算符 † : ==, !=, >, >=, <, <=

      注意:†开发中的功能,††计划中的功能。

有关如何使用 d5o 功能的更多信息,请参阅示例

安装和使用

安装先决条件

安装和使用 Dann5 d5o 预编译库

除上述先决条件外,编译Dann5 d5o源代码

安装

Dann5 d5o 库正在作为主要操作系统的 Windows x64 上积极开发。未来将发布 Mac OS X/Linux 版本和软件包安装。

将此存储库中的 Windows x64 版本安装到 python 项目或环境中

pip install --upgrade dann5

#####手动安装

  1. 从示例文件夹下载带有 d5o.cp38-win_amd64.pyd 库的 dann5文件夹
  2. 将 dann5 设为
  • 你的 python 项目文件夹;或者

  • 您的 python 环境的 site-packages 文件夹,例如对于 anaconda 发行版,在 windows 上,路径应该是:

    C:\Users<user_name>\AppData\Local\Continuum\anaconda3\envs<env_name>\Lib\site-packages

  1. 将 d5o.cp38-win_amd64.pyd 复制到 Dann5 子文件夹中

#####从源代码安装包

  1. 只需克隆或下载 dann5 存储库 - 如果使用 MS Visual Studio dann5.ocean.sln,请确保 dann5 和 Eigen 是同一文件夹中的子文件夹。
  2. 构建 - d5o.cp38-win_amd64.pyd 适用于 windows 和 python x64 - d5o.cp38-win_amd32.pyd 适用于 windows 和 python x32 - d5o.so 适用于 Mac OS X 或 Linux
  3. 将 d5o 库部署到您的 python 项目或环境中的 dann5 文件夹中,如 Windows x64 版本安装中所述

利用

按照上述说明安装 d5o 库后,在 python 源代码中使用已发布的功能:

将 dann5.d5o2 导入为 d5o

a = Qwhole(4, "a")

b = Qwhole(3, "b")

A = Qwhole("A", 15))

eA = A.assign(a + b)

打印(eA.toString())

打印(eA.toString(真))

打印(eA.qubo())

或者使用 Jupyter Notebook示例来查看 Dann5 d50 版本 2 的功能。

错误、问题和贡献

欢迎对该项目的贡献。

注意:如果您有问题,请将代码示例发送给我。

下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

dann5-2.1.0.tar.gz (3.1 MB 查看哈希

已上传 source

内置分布

dann5-2.1.0-py3-none-any.whl (3.2 MB 查看哈希

已上传 py3