3. 约束的数学表示与分类

在量子优化约束建模中,约束不是一句“这个方案不行”的口头判断,而必须写成求解器能够读取、能够检验、能够参与目标函数计算的数学对象。同一个业务规则,写成不同的数学形式,会直接影响变量编码方式、罚项结构,甚至决定问题能否被 QUBO 或 Ising 模型表达。因此,本节先把约束的四种基本数学形式讲清楚,再讨论硬约束与软约束的取舍,最后说明约束满足问题与优化问题的关系。

四种基本数学形式

设决策变量为 x = (x₁, x₂, …, xₙ),可行域记为 F。约束的本质是把解空间从全体取值中裁剪出一个子集。

等式约束要求某个量精确等于给定值,形式为 g(x) = b。例如“从 5 个候选设备中恰好选 2 个”,可写为 x₁ + x₂ + x₃ + x₄ + x₅ = 2,其中 xᵢ ∈ {0,1}。等式约束在量子优化中通常转化为平方罚项 P·(g(x) − b)²,因为平方项在偏离目标值时为正、满足时为零,天然适合作为能量项。

不等式约束要求某个量落在区间内,形式为 h(x) ≤ c 或 h(x) ≥ c。例如“总功耗不超过 100 W”,若每个设备功耗为 wᵢ,则写为 Σ wᵢxᵢ ≤ 100。不等式约束不能直接平方,需要引入松弛变量 s ≥ 0,改写为 Σ wᵢxᵢ + s = 100,再对等式部分施加罚项。松弛变量的取值范围必须根据 Σ wᵢ 与 100 的差值上界来确定,否则会引入无效的变量维度。

逻辑约束描述变量之间的蕴含、互斥、择一等关系。典型形式包括:蕴含 x₁ → x₂,等价于 x₁(1 − x₂) = 0;互斥 x₁ + x₂ ≤ 1;择一 Σ xᵢ = 1。逻辑约束在建模中极为常见,例如“若启用方案 A,则必须启用配套的冷却模块 B”,其罚项可写为 P·x_A·(1 − x_B),只有当 A 选且 B 未选时该项才被激活。

集合约束要求解属于某个离散集合或满足某种组合结构,例如“选出的设备必须构成连通子图”“排列必须是合法路径”。这类约束往往难以写成单个代数式,需要拆解为若干等式、不等式与逻辑约束的组合,或通过变量编码(如 one-hot 编码)从结构上保证合法性。

约束的数学形式与罚项转化路径 等式约束 g(x) = b 恰好选 2 个设备 P·(g(x)−b)² 不等式约束 h(x) ≤ c 总功耗 ≤ 100 W 引入松弛变量 s 逻辑约束 x₁ → x₂ 启用 A 则须启用 B P·x_A·(1−x_B) 集合约束 x ∈ S 连通子图 / 合法路径 拆解为组合约束 统一罚项形式:H_penalty = Σ Pₖ · fₖ(x) 满足约束时 fₖ(x)=0,违反时 fₖ(x)>0 硬约束:罚项权重 P 足够大,违反即被排除 软约束:P 有限,允许以代价换取可行性

硬约束与软约束的区别

数学形式确定之后,下一个关键决策是:这条约束是“绝对不能违反”,还是“尽量满足、违反要付代价”。这就是硬约束与软约束的分界。

硬约束对应可行域的边界,违反即视为不可行解。在罚项方法中,硬约束通过设置足够大的权重 P 实现,使得任何违反带来的能量增量都大于目标函数可能带来的收益。例如在设备选择问题中,“预算不超过 500 万元”通常是硬约束,因为超预算的方案在现实中无法执行。硬约束的风险在于权重过大可能导致能量景观过于陡峭,量子退火或变分算法容易陷入局部极小;权重不足则会出现“看似最优但不可行”的解。

软约束允许违反,但把违反程度折算成惩罚计入目标。例如“尽量让设备负载均衡”,可以用 P·(负载偏差)² 表示,偏差越大惩罚越高,但轻微不均衡仍可接受。软约束的权重需要与目标函数量级匹配:权重过小,约束形同虚设;权重过大,则退化为硬约束。实践中常先用目标函数各项系数的最大值作为基准,再按 2~10 倍量级设定软约束权重,并通过小规模试算观察可行解比例。

判断一条约束该硬还是该软,可以问三个问题:违反它在现实中是否真的不可接受?违反它是否可以用成本或风险来量化?把它设为硬约束后,可行域是否变得过小甚至为空?三个问题的答案通常能给出明确方向。

约束满足问题与优化问题的关系

约束满足问题(CSP)只关心“是否存在满足全部约束的解”,目标是找到一个可行解;优化问题则在此基础上进一步要求“在所有可行解中找到目标函数最优的那个”。两者的关系可以概括为:优化问题 = 约束满足问题 + 目标函数。

这个关系在建模中有直接的操作含义。当一个问题可行域很小、目标函数难以定义时,可以先把它当作 CSP 求解,找到一个可行解作为基准;当目标函数明确但约束复杂时,则把约束转为罚项,与目标函数合并为单一能量函数 H = H_obj + H_penalty,交给量子优化器最小化。需要注意的是,罚项方法把“可行性”和“最优性”压缩到了同一个能量标度上,权重设计不当会让求解器在“稍微违反约束但目标更优”和“严格可行但目标稍差”之间做出错误取舍。

以一个 5 设备、预算 500 万元、恰好选 2 个的示例来说明。设设备成本为 [120, 180, 150, 220, 90] 万元,收益为 [40, 55, 48, 70, 30]。等式约束 Σxᵢ = 2 与不等式约束 Σ costᵢxᵢ ≤ 500 同时存在。若把预算设为硬约束,罚项写为 P·max(0, Σcostᵢxᵢ − 500)²,取 P = 50;目标项为 −Σ benefitᵢxᵢ。此时选设备 2 和 4 的成本为 400 万元、收益 125,是可行解中较优的一个;若求解器返回选设备 1 和 4,成本 340 万元、收益 110,虽然可行但收益较低,说明目标项权重相对罚项偏小,需要调整标度。这类小规模试算正是确定权重关系的常用手段。

约束类型数学形式典型罚项建模要点
等式约束g(x) = bP·(g(x)−b)²平方项天然非负,直接可用
不等式约束h(x) ≤ cP·max(0, h(x)−c)²需松弛变量或截断函数
逻辑约束x₁ → x₂P·x₁·(1−x₂)乘积项仅在违反时激活
集合约束x ∈ S拆解为上述组合优先用编码从结构上保证

最后要强调的是,约束的数学表示不是越复杂越好。能通过变量编码从结构上排除的非法解,就不必再写罚项;能用一条等式表达的,就不要拆成多条不等式。表示越简洁,罚项越少,量子优化器面对的搜索空间越干净,权重调节的负担也越轻。