定义问题以及用QUBO表示约束
D-Wave擅长解决的问题之一就是二值优化(optimization of binary variables)问题。二值变量只有变量 0(NO, or FALSE)和变量 1(YES, or TRUE)。
传统计算机可以被认为是由逻辑门(logic gates)组成的,逻辑门是一种简单的决策装置,其根据输入产生输出。虽然 D-Wave 系统并不是基于门的,但巧合的是一个特殊的门(异或门)形成了系统要解决的第一个优化问题。
异或门内容如下:
假设由两个二值的输入 a , b a,b a,b 。若 a = 0 且 b = 0 a=0 且b=0 a=0且b=0,则输出为 1 1 1, 若 a = 1 且 b = 1 a=1 且b=1 a=1且b=1,则输出为 1 1 1, 其他情况下输出为0.
定义目标函数
对于一个有两个qubit的问题,我们希望在退火之后的 qubits 得到一样的值。qubit 的状态有4种情况,如下表所示:
q 0 q_0 q0 | q 1 q_1 q1 |
---|---|
0 | 0 |
0 | 1 |
1 | 0 |
1 | 1 |
我们需要定义一个目标函数,使其最终实现状态(0,0)和(1,1)。在目标函数中,qubit 是变量。bias(qubit 偏置) 和 strengths(couplers 的强度)是线性项和二次项上的系数。两个 qubit 问题的目标函数有三个项。目标函数的形式如下:
f ( s ) = a 1 q 1 + a 2 q 2 + b 1 , 2 q 1 q 2 (5.1) f(s) = a_1 q_1 + a_2 q_2 + b_{1,2} q_1 q_2 \tag{5.1} f(s)=a1q1+a2q2+b1,2q1q2(5.1)
其中 s s s 是变量 q = [ q 1 , q 2 ] q=[q_1,q_2] q=[q1,q2] 的向量, a 1 a_1