Ising模型、QUBO 及 Chimera Graph(QPU 架构)介绍
Ising模型、QUBO 及 Chimera Graph(QPU 架构)介绍
【所有内容均是对官方文档的学习记录总结】
用 D-Wave QPU 来构建问题需要知道以下几个概念:目标函数、Ising 模型、二次无约束二值优化问题(QUBOs, quadratic unconstrained binary optimization problems)和图。这篇介绍这些概念。
目标函数
想要理解如何用D-Wave系统可以解决的问题形式来表述(问题),首先需要定义一个目标函数(objective function),用这个目标函数表示系统的能量,是表示qubits 的二值变量的函数。多数情况下,目标函数的能量越低,解就越好。有时任何低能态都是原始问题的可接受范围的解;只有对其他一些问题,必须是最优解才可以。通常最优解对应于解空间的 global minimum 能量。如图3.1所示。
对于二次函数,每一项都有1或2个变量:
其中 都是常量。单变量项(比如 and )是线性的,表示偏置变量。两变量项(比如 )表示变量之间的关系是二次的。
Ising and QUBO
目标函数的两种形式为:Ising 和 QUBO,这两种模型之间的区别很小。
Ising 模型
Ising 模型是统计力学中常用的模型,变量有“自旋向上(spin up)()”和“自旋向下(spin down)(),这两个状态分别代表 和 .由耦合(couplings)表示的自旋之间的关系是相关或非相关。目标函数可以用如下Ising模型来表示:
其中对应 qubit 偏置(bias)的线性系数是 ,对应耦合权重(coupling strengths)是 。
QUBO
QUBO 问题通常用在计算机科学中,TRUE 和 FALSE 状态对应于1和0。一个QUBO问题是由上对对角矩阵 (的实值上三角矩阵)和 (二元变量的向量)来定义的。最小化函数:
其中对角项是线性系数,非零的非对角项时的二次系数。可以用如下式子精确表示:
用标量表示法(后面表述通常都用的这一表示法),QUBO 的目标函数可以用如下式子表示:
表示法对比
图3.2 比较了 Ising 和 QUBO 的记号以及相关的术语。Ising 和 QUBO 的转换关系可以用下式表示(根据States也可以分析得出):
比如,两个变量的二次等式可以用如下式子来表示:
如图3.3所示,两个节点 和 的 bias 分别是 5 和 -3,节点之间的权重是 7. 在D-Wave系统中,无向图的节点就是 qubit ,无向图的边就是 couple 。

Figure3.3: Two-variable objective function.
D-Wave QPU 架构:Chimera
想要把 QUBO 或者 Ising 这样的目标函数转换成 D-Wave 系统能够处理的格式,首先我们要了解一下 D-Wave QPU 的布局。D-Wave QPU 是相互连接的 qubits 组成的晶格,虽然 qubit 之间是通过耦合连接的,但 D-Wave QPU 是不完全连接的。qubits 相互连接的结构称为 Chimera。
Chimera 结构是由 unit cells 相互连接而成,垂直(每列)的四个 qubit 和 水平(另外列)的四个 qubit 通过 couplers 连接,产生了一个 qubits 稀疏连接的晶格。如图 4.1。符号 表示由 个 unit cells 组成的 Chimera 图。D-Wave 2000Q QPU 支持 Chimera 图:2048个qubit 映射到 unit cells 矩阵,每个 unit cells 有 8 个 qubits。在D-Wave QPU 中,可用于计算的一组 qubits 和 couplers 称为 working graph。通常在实际QPU中,working graph 的数量是少于 qubits 和 couplers 的数量的。(部分可能不起作用)
如图4.2,一个 unit cell 的布局可以是 cross 形式的也可以是 column 形式的。每个图中,都可以看到含有4个 qubits 的两组。每组(4个qubits)中的每一个qubit都和另外组的所有qubits相连接,但是不会和同一个组内的其他qubit相连接。在 unit cell 中,qubit 具有 二分图连通性(bipartite connectivity)。
表示目标函数的图中的 nodes 和 edges 可以转换为 Chimera 中的 qubits 和 couplers。在目标函数图中,每个逻辑 qubit 都可以由一个或多个物理 qubit 表示。把逻辑 qubits 映射物理 qubits 的过程称为 minor embedding。
【注】:通过SAPI可获取 minor embedding 的工具。也可以手动实现,在[Minor-Embedding a Problem onto the Chimera Graph] 这一部分会讲到。