量子计算场景实用秘籍:开物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——



1475
0
0
0
关于作者
相关文章
  • 量子模拟赋能化学研究:自由能计算、基态搜索挑战与动力学模拟突 ...
    2025年12月4日,多伦多大学的Philipp Schleich与Alán Aspuru-Guzik在《Science》期刊上发 ...
    了解详情 
  • 系统论驱动的 AI 整合框架:中医药整体物质基础研究的创新路径 ...
    中国药科大学曾敬其、贾晓斌教授在中国工程院院刊《Engineering》发表了题为“Systems Theo ...
    了解详情 
  • 为什么光子属于玻色子?解读玻色子与费米子的本质区别 ...
    万物由 17 种基本粒子构成,仅分为玻色子和费米子两类。1945 年狄拉克命名这两种粒子,分别致敬 ...
    了解详情 
  • LLM对齐新方案:EBRM用能量模型让奖励模型更稳健,安全任务精度 ...
    普渡大学团队在 Conference on Language Modeling(COLM 2025)发表的《 Energy-Based Reward Mo ...
    了解详情 
  • 结构 - 序列 - 语言协同编码 —— AI技术开启蛋白质研究新维度 ...
    西湖大学原发杰实验室研发的ProTrek蛋白质语言大模型,革新了蛋白质寻找方式。研究者输入自然语 ...
    了解详情 
联系我们
二维码
在本版发帖返回顶部
快速回复 返回顶部 返回列表
玻色有奖小调研
填写问卷,将免费赠送您5个100bit真机配额
(单选) 您是从哪个渠道得知我们的?*
您是从哪个社交媒体得知我们的?*
您是通过哪个学校的校园宣讲得知我们的呢?
取消

提交成功

真机配额已发放到您的账户,可前往【云平台】查看

量子AI开发者认证

考核目标

开发者能够成功搭建Kaiwu-PyTorch-Plugin项目基础环境,并成功运行示例代码,根据示例提示,输出指定的值并填写至相应的输入框中。

通过奖励

5个一年效期的1000量子比特真机配额

专属「量子AI开发者」社区认证标识

开发者权益

每月固定权益:5个550量子比特真机配额
前往考核

第一步

按照README提示成功安装Kaiwu-PyTorch-Plugin库环境依赖
前往GitHub

第二步

运行 community-assessment 分支下的 run_rbm.py 代码示例

第三步

理解示例代码,手动打印并填写如下数值:

正相采样的状态

负相采样的状态

正相的能量值

负相的能量值

*

提交答案

开发者权益

每月固定权益:5个550量子比特的真机配额

恭喜您完成考核

您将获得量子AI开发者认证标识及考核奖励

1000 bit*5

配额

Quantum AI Developer Certification

Assessment Objectives

Developers should successfully set up the basic environment for the Kaiwu-PyTorch-Plugin project, run the QBM-VAE sample code, and calculate the correct FID value based on the random seed value provided by the system.

Pass Rewards

10 quotas for 550-qubit real quantum machines with a one-year validity period

Exclusive "Quantum AI Developer" Community Certification Badge

Developer Benefits

Fixed Monthly Benefits: 5 quotas for 550-qubit real quantum machines
Proceed to Assessment

Step 1

Install the environment dependencies for the Kaiwu-PyTorch-Plugin library according to the README instructions
Go to GitHub

Step 2

Replace the Seed Value

Your seed value is

Step 3

Enter the FID Value You Calculated

*

Submit Answer

Developer Benefits

Fixed Monthly Benefits: 5 quotas of 550-qubit real machines

Congratulations on Completing the Assessment

You will receive the Quantum AI Developer Certification Badge and Assessment Rewards

550bit*10

Quotas