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