定义问题以及用QUBO表示约束

本文介绍了如何使用QUBO(Quadratic Unconstrained Binary Optimization)来表示和解决二值优化问题。通过定义目标函数、问题缩放和建立QUBO来表示约束,展示了D-Wave系统在解决此类问题中的工作原理。具体讨论了如何构建一个确保只有一个变量为真的QUBO模型,并将其转换为图结构。通过实例解释了QUBO在解决如旅行销售人员问题等约束满足问题中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

定义问题以及用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=0b=0,则输出为 111, 若a=1且b=1a=1 且b=1a=1b=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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值