量子计算场景实用秘籍:开物SDK之自动确定惩罚系数

Akkio
2024-08-24 10:25:24

 

在数学、计算机科学、工程学和经济学等领域,约束是指一种条件或限制,它规定了变量对象必须满足的某种特定关系或范围。在优化问题和机器学习中,自动确定能满足约束条件的惩罚系数是一个常见问题,例如附带约束条件的优化任务。而惩罚系数通常用于在目标函数中对违反约束条件的行为进行惩罚,以确保找到的解满足特定条件。

以JSP(Job Shop Scheduling Problem)任务调度问题为例,它是一个复杂的组合优化问题,广泛存在于制造业、交通运输、医疗服务等多个行业领域。调度问题常用的求解方法包括基于数学规划的精确算法和各种启发式算法。但随着问题规模的扩大,传统的精确算法与启发式算法无法在较短时间内找到最优解,而相干光量子计算机在解决这类问题上具有独特优势,基于玻色量子自研的相干光量子计算机与开物SDK可以轻松求解。

自动确定惩罚系数✏📓

JSP问题的主要目标是在满足一定的约束条件下,合理地分配资源,优化生产过程中的作业顺序,以最小化完成所有任务的总时间、最大化资源利用率或降低成本等。在任务调度模型中,可以将假设与约束条件总结如下:

1.各任务仅包含一道工序;

2.各任务的加工时间已知,与机器无关;

3.一台机器在任意时刻最多只能处理一个任务;

4.每个任务可以分配到任意一台机器加工,且只能在一台机器上加工;

5.每个机器可以有不同的空闲开始时间。

这个问题可以通过QUBO建模,然后利用玻色量子的相干光量子计算机求解。但是和任务调度模型一样,建模常常包含多种约束,每种约束针对不同实体会产生多个约束条件。使用QUBO建模需要将约束条件转为约束项并给定合适的惩罚系数。如果惩罚系数过大,会导致系数矩阵的精度超过相干光量子计算机的限制,如果惩罚系数过小,会导致求解的过程中的约束条件无法优先满足,最优解不是可行解的情况。因此,对于这种存在大量约束条件的问题,需要一些方法自动为每个约束确定惩罚系数。

惩罚系数估计方法✍️

当某个离散变量的值变化时,如果在目标函数引起的变化量恒小于在惩罚项引起的变化量,则惩罚项能够被优先满足。通过计算目标函数最大变化量和惩罚项最小变化量的比值,就可以计算合理的惩罚系数。

(1)目标函数的最大变化量可以通过上界来估计。QUBO表达式中单独考虑某个变量xi。

当xi从0变化为1时:

当xi从1变化为0时:

 

(2)惩罚项的最小非零变化量难以准确地计算。一种估计的方法是对参数两两计算差值,选取里面最小的非零值取绝对值。

迭代确定惩罚系数🎢

这种方法可以避免估计惩罚系数容易不准确的问题,但是迭代求解需要多次求解,花费的时间和计算资源更多。

一种简单的方法是通过多次尝试,不断增加没有满足的惩罚系数的权重,从而最终确定合适的惩罚系数。惩罚系数的更新可以使用多种不同的更新方法。比如每次增加一个常数,按μ=μ+λ更新,或者每次乘上一个倍率,按μ=λμ更新。

此外还可以参考ALM在连续问题上的应用,将ALM改变为适用于离散的QUBO问题的方法。首先,将目标函数与约束条件结合,形成拉格朗日函数。对于每个约束,引入拉格朗日乘子。然后,在拉格朗日函数中添加惩罚项。这一惩罚项通常是约束违反程度的平方,乘以一个惩罚因子。通过迭代的方式,逐步优化拉格朗日函数。每次迭代中,更新拉格朗日乘子和惩罚因子,以提高对约束的满足程度。该方法通过调整惩罚因子和拉格朗日乘子,逐步逼近最优解,确保在满足约束的同时优化目标函数。

 

附:基于松弛变量的JSP问题QUBO建模

JSP目标为整体完成时间最短,首先建立组合优化模型如下:

定义变量u为整体最晚完成的时间,也就是各个机器完成时间中的最大值,

目标函数

约束条件

约束(1)表示最晚完成时间u不小于任何机器的完成时间tj,由于目标函数是最小化最晚完成时间u,变量u将取到满足(1)的最小值,也就是最晚完成的机器对应的完成时间。约束(2)限制了对于任何任务只能被一台机器执行。Wi表示任务i的花费时间,sj是机器j的启动时间。

为了适配量子计算,需要将上面的组合优化模型转为QUBO形式,QUBO特点是所有决策变量为二值变量,目标是二次函数,且无约束条件。由于u为整数,可用基于多个二值变量的二进制来表示:

其中ul为二值变量,取值0或1。l为需要的二进制位数集合,取决于数据的值。这样求解u的最小值就转变为求解ul的取值。

下一步将不等式约束(1)通过增加松弛变量γ的方式转化为等式约束。所有的松弛变量都是非负的。约束(1)可表示为:

由于松弛变量也是整数,将其二进制化,约束(1)可进一步表示为:

为了将等式约束化为目标函数的一部分从而满足QUBO形式,将等式约束改写为f(x,u)=0的形式,然后将左侧取平方,乘以足够大的惩罚系数γ加入目标函数即可。这样当约束被满足,目标项中的相关项也就为0。目标最小化求解会倾向于让所有惩罚项为零,即所有约束被满足。这样,原模型就可以转化为以下QUBO模型:

总结✌️

综上所述,本文介绍了自动确定惩罚系数的方法,包括直接估计和迭代确定两种思路。这些方法有效解决了在量子计算中惩罚系数难以确定的问题,为求解大规模组合优化问题提供了新的思路。通过不断优化惩罚系数,我们可以在满足约束条件的同时,更好地优化目标函数,从而提高求解效率和质量。

显然,基于玻色量子自研的开物SDK,用户只需关注建立与场景所对应的数学模型,SDK提供的方法可以自动确定惩罚系数,这将极大的降低用户使用相干光量子计算机求解实际问题的难度。

——end——

66
0
0
0
关于作者
相关文章
  • 像人脑一样工作!在量子计算机上运行强大的人工智能 ...
     摘要:Transformer 确实可以在简单的量子硬件上工作,这至少从理论上表明:量子+人工智能 ...
    了解详情 
  • 10 亿澳元投光量子路线!史上最全面分析澳大利亚政府为何最爱 Ps ...
     摘要:澳大利亚选中知名美国量子计算初创公司 PsiQuantum ,对其进行近 10 亿澳元的巨额投 ...
    了解详情 
  • 每克超15000美元!比黄金贵200倍却是超导量子计算和核聚变的关键 ...
     一种看不见、摸不到的珍贵气体,目前每克的价格超过了15000美元,大约是黄金价格的200倍左 ...
    了解详情 
  • 量子计算场景实用秘籍:开物SDK之subQUBO算法分解 ...
    在各行业应用场景的数学模型构建中,经常会遇到实际问题的计算规模巨大,模型所包含的变量数超出 ...
    了解详情 
在本版发帖返回顶部
快速回复 返回顶部 返回列表