掌桥专利:专业的专利平台
掌桥专利
首页

一种利用小内存设备求解大规模组合优化问题的方法

文献发布时间:2024-04-18 20:01:30


一种利用小内存设备求解大规模组合优化问题的方法

技术领域

本发明属于组合优化问题求解技术领域,具体涉及一种利用小内存设备求解大规模组合优化问题的方法。

背景技术

对于组合优化问题,经典计算机通常难以在短时间内有效率地求解。量子算法虽然可以在短时间内求解组合优化问题,但在硬件上有诸多限制,例如基于低温超导系统的量子退火设备至今难以维持特大规模的量子相干,而基于传统电路的量子启发式算法虽然可以应对大规模组合优化问题,但有硬件成本过高、设备内存要求过大等问题存在。同时组合优化问题在规模巨大的情况下,存在收敛困难、耗时长、精度低等问题。

因此,针对上述问题,予以进一步改进。

发明内容

本发明的主要目的在于提供一种利用小内存设备求解大规模组合优化问题的方法,其通过将大规模组合优化问题分割为多个小规模问题近似求解,并循环调用同一小内存设备重复求解直至结果一致的方法,实现了对大规模组合优化问题的高速度、高精度、低成本的求解方法。

为达到以上目的,本发明提供一种利用小内存设备求解大规模组合优化问题的方法,包括以下步骤:

步骤S1:对组合优化问题进行数学建模,构建用于求解的目标矩阵;

步骤S2:将用于求解的目标矩阵分割为多个小型矩阵,作为小规模目标问题模型;

步骤S3:设置对同一目标问题的重复求解次数;

步骤S4:循环调用同一个小内存设备,对小规模目标问题模型重复求解;

步骤S5:检查步骤S4的求解结果,若多次求解结果完全一致,则将结果保留存储;若多次求解结果存在不一致的量子比特,则固定结果一致的量子比特,将结果不一致的量子比特输入小内存设备继续求解,直至结果完全一致;

步骤S6:将步骤S5中存储的各个小规模目标问题模型的解,组装为原目标问题模型的解;

步骤S7:检查步骤S6中组装的原目标问题模型的解是否达到预期,若已达到预期则输出结果;若未达到预期,则将现有结果作为初始值输入步骤S2中继续求解。

作为上述技术方案的进一步优选的技术方案,步骤S1中所构建的目标(问题)矩阵包括:

伊辛模型的形式:

其中,H

或者伊辛模型的二次无约束二元优化模型(Quadratic Unconstrained BinaryOptimization,QUBO)的形式:

其中,w为具有n个量子比特的n维向量,每个元素取值+1或0;J为n×n的矩阵,用以描述各量子比特间的相互作用,伊辛模型和QUBO模型之间可以实现互相转换;

或者伊辛模型或QUBO模型中加入正则化后的形式。

作为上述技术方案的进一步优选的技术方案,在步骤S2中:

将原问题模型分割为多个小规模目标问题模型(可以将原问题模型中的大部分量子比特w

取随机值作为小规模目标问题模型的初始值,或者取全元素为同一值作为初始值。

作为上述技术方案的进一步优选的技术方案,在步骤S4中,循环调用同一个小内存设备,对每一个小规模目标问题模型的w

作为上述技术方案的进一步优选的技术方案,在步骤S5中,基于上述步骤S4中计算得到的小规模目标问题模型的k个解,检查k个解之间的量子比特是否完全一致,若完全一致则记录此时的解;若存在结果不一致的量子比特,则将w

作为上述技术方案的进一步优选的技术方案,在步骤S5中的记录此时的解,在k个解中结果一致的量子比特数达到预期时即记录此时的解或者若相同结果超过k的半数则将结果作为该量子比特的此时的解。

作为上述技术方案的进一步优选的技术方案,在步骤S6中,将步骤S5中记录的各个小规模目标问题模型的解按顺序组装,还原为原目标问题模型的解。

作为上述技术方案的进一步优选的技术方案,在步骤S7中,判断原目标问题模型的解是否已达到预期的基准,是伊辛模型或QUBO模型的目标函数值,或者是实际问题中期望优化的目标值,或者是在求解过程达到一定次数或时间后停止计算并输出此时的解。

为达到以上目的,本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述利用小内存设备求解大规模组合优化问题的方法的步骤。

为达到以上目的,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现所述利用小内存设备求解大规模组合优化问题的方法的步骤。

本发明的有益效果在于:

本发明通过将大规模组合优化问题分割成多个小规模问题近似求解,并循环调用同一个小内存设备重复多次求解直至结果一致的方法,实现了对大规模组合优化问题的高速度、高精度、低成本的求解。

附图说明

图1是本发明的一种利用小内存设备求解大规模组合优化问题的方法的流程图。

图2是本发明的一种利用小内存设备求解大规模组合优化问题的方法的第二实施例在最大分割图问题G22上的流程示意图。

图3是本发明的一种利用小内存设备求解大规模组合优化问题的方法的第三实施例在最大分割图问题G22上的流程示意图。

图4是本发明的一种利用小内存设备求解大规模组合优化问题的方法的第二实施例和第三实施例在最大分割图问题G22上的效果图。

具体实施方式

以下描述用于揭露本发明以使本领域技术人员能够实现本发明。以下描述中的优选实施例只作为举例,本领域技术人员可以想到其他显而易见的变型。在以下描述中界定的本发明的基本原理可以应用于其他实施方案、变形方案、改进方案、等同方案以及没有背离本发明的精神和范围的其他技术方案。

在本发明的优选实施例中,本领域技术人员应注意,本发明所涉及的电子设备和存储介质等可被视为现有技术。

第一实施例(优选实施例)。

如图1所示,本发明公开了一种利用小内存设备求解大规模组合优化问题的方法,包括以下步骤:

步骤S1:对组合优化问题进行数学建模,构建用于求解的目标矩阵;

步骤S2:将用于求解的目标矩阵分割为多个小型矩阵,作为小规模目标问题模型;

步骤S3:设置对同一目标问题的重复求解次数;

步骤S4:循环调用同一个小内存设备,对小规模目标问题模型重复求解;

步骤S5:检查步骤S4的求解结果,若多次求解结果完全一致,则将结果保留存储;若多次求解结果存在不一致的量子比特,则固定结果一致的量子比特,将结果不一致的量子比特输入小内存设备继续求解,直至结果完全一致;

步骤S6:将步骤S5中存储的各个小规模目标问题模型的解,组装为原目标问题模型的解;

步骤S7:检查步骤S6中组装的原目标问题模型的解是否达到预期,若已达到预期则输出结果;若未达到预期,则将现有结果作为初始值输入步骤S2中继续求解。

具体的是,步骤S1中所构建的目标(问题)矩阵包括:

伊辛模型的形式:

其中,H

或者伊辛模型的二次无约束二元优化模型(Quadratic Unconstrained BinaryOptimization,QUBO)的形式:

其中,w为具有n个量子比特的n维向量,每个元素取值+1或0;J为n×n的矩阵,用以描述各量子比特间的相互作用,伊辛模型和QUBO模型之间可以实现互相转换;

或者伊辛模型或QUBO模型中加入正则化后的形式。

更具体的是,在步骤S2中:

将原问题模型分割为多个小规模目标问题模型(可以将原问题模型中的大部分量子比特w

取随机值作为小规模目标问题模型的初始值,或者取全元素为同一值作为初始值。

进一步的是,在步骤S4中,循环调用同一个小内存设备,对每一个小规模目标问题模型的w

更进一步的是,在步骤S5中,基于上述步骤S4中计算得到的小规模目标问题模型的k个解,检查k个解之间的量子比特是否完全一致,若完全一致则记录此时的解;若存在结果不一致的量子比特,则将w

优选地,在步骤S5中的记录此时的解,在k个解中结果一致的量子比特数达到预期时即记录此时的解或者若相同结果超过k的半数则将结果作为该量子比特的此时的解。

优选地,在步骤S6中,将步骤S5中记录的各个小规模目标问题模型的解按顺序组装,还原为原目标问题模型的解。

优选地,在步骤S7中,判断原目标问题模型的解是否已达到预期的基准,是伊辛模型或QUBO模型的目标函数值,或者是实际问题中期望优化的目标值,或者是在求解过程达到一定次数或时间后停止计算并输出此时的解。

优选地,用以求解的小内存设备,可以为CPU或GPU等计算设备,也可以为FPGA或光芯片等传统电路设备。

本发明还公开了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述利用小内存设备求解大规模组合优化问题的方法的步骤。

本发明还公开了一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现所述利用小内存设备求解大规模组合优化问题的方法的步骤。

第二实施例。

本实施例在第一实施例的基础上进一步补充限定为在最大分割图问题G22上,具体实施为:

如图2所示,本实施例提供一种利用小内存设备高效求解大规模组合优化问题的方法,具体包括以下内容:

1、读取最大分割图问题G22中2000个顶点的连接数据,构建QUBO问题的目标矩阵Q。矩阵Q大小为2000×2000,具体构建方法为,先设置Q的所有元素为0,当顶点i与顶点j的边取+1的值时,按如下方式调整Q的相应元素:

Q

Q

Q

2、取随机值作为2000个量子比特的初始值,并将上述1中构建的大小为2000×2000的QUBO问题分割为40个大小为50×50的小规模问题。分割时,将原问题的2000个量子比特w划分为50个需求解的量子比特w

进一步的,在实际应用中也可以选择在2000×2000大小的原矩阵Q中取50×50大小的对角块作为小规模QUBO问题求解。

3、在CPU上调用模拟退火(Simulated Annealing)算法,对上述2中构建的每一个50×50的小规模QUBO问题求解3次。

进一步的,在实际应用中也可以选择遗传算法、粒子群算法等启发式算法求解。

进一步的,在实际应用中也可以选择FPGA或光芯片等设备作为求解器。

4、对比上述3中获得的3个解,检查50个量子比特的3次结果是否完全一致。若完全一致,则记录此时50个量子比特的结果,继续对原问题的其他部分求解;若50个量子比特中存在3次结果不一致的量子比特,例如有20个量子比特的3次结果不一致,则将剩余30个结果一致的量子比特固定,使用与上述2中同样的方法构建20×20的更小规模的QUBO问题,继续求解直至所有量子比特的3次结果完全一致。

进一步的,在实际应用中也可以选择继续求解直至3次结果不一致的量子比特数目小于某个值。

进一步的,在实际应用中也可以选择对3次求解的结果做多数决确定最终结果,例如某个量子比特的3次结果为(1,1,0),则取1为最终结果。

5、在40个大小为50×50的小规模问题全部求解完成后,将记录的40个50量子比特的结果整合为2000量子比特的结果,即为2000×2000的原QUBO问题的解,并记录此时的全局循环次数,以每完成40个大小为50×50的小规模问题并整合为一个新的2000量子比特的结果为1次全局循环。

6、若全局循环次数达到预先设定的值则暂停过程,并记录此时的分割数;若未达到预先设定的全局循环次数,则将最新记录的2000量子比特的结果作为初始值输入上述2中继续求解。

7、图4中example 1为本实施例的效果,横轴为CPU计算时间,竖轴为最大分割数,本实施例中全局循环次数取1次、2次、3次、5次、10次。图4中SA为利用CPU调用模拟退火算法直接求解2000×2000大小的QUBO问题时的结果;图4中multi为利用CPU调用模拟退火算法直接对2000×2000大小的QUBO问题求解3次,并将3次结果一致的量子比特固定,对3次结果不一致的量子比特继续求解的结果;图4中partial为仅将2000×2000大小的QUBO问题分割为40个大小为50×50的小规模问题并利用CPU调用模拟退火算法求解的结果,全局循环次数为1次、2次、3次、5次、10次、20次、40次。由图4可知,本实施例在同样的计算时间内获得了更好的结果,且求解器的内存需求远低于原问题,实现了对大规模组合优化问题的高效率、高精度、低成本求解。

第三实施例。

本实施例在第一实施例的基础上进一步补充限定为在最大分割图问题G22上,具体实施为:

如图3所示,本实施例提供一种利用小内存设备高效求解大规模组合优化问题的方法,具体包括以下内容:

1、读取最大分割图问题G22中2000个顶点的连接数据,构建QUBO问题的目标矩阵Q。矩阵Q大小为2000×2000,具体构建方法为,先设置Q的所有元素为0,当顶点i与顶点j的边取+1的值时,按如下方式调整Q的相应元素:

Q

Q

Q

2、取随机值作为2000个量子比特的初始值,并将上述1中构建的大小为2000×2000的QUBO问题分割为40个大小为50×50的小规模问题。分割时,将原问题的2000个量子比特w划分为50个需求解的量子比特w

进一步的,在实际应用中也可以选择在2000×2000大小的原矩阵Q中取50×50大小的对角块作为小规模QUBO问题求解。

3、在CPU上调用模拟退火(Simulated Annealing)算法,对上述2中构建的每一个50×50的小规模QUBO问题求解3次并记录下3次的结果。

进一步的,在实际应用中也可以选择遗传算法、粒子群算法等启发式算法求解。

进一步的,在实际应用中也可以选择FPGA或光芯片等设备作为求解器。

4、在40个大小为50×50的小规模问题全部求解完成后,将记录的40个50×50的小规模问题的3次求解结果整合为2000量子比特的3次结果。

5、对比上述4中获得的2000量子比特的3次结果是否完全一致。若完全一致,则记录此时2000个量子比特的结果;若2000个量子比特中存在3次结果不一致的量子比特,例如有500个量子比特的3次结果不一致,则将剩余1500个结果一致的量子比特固定,使用与上述2中同样的方法构建500×500大小的QUBO问题,并将500×500大小的QUBO问题再次分割为10个大小为50×50的小规模问题,输入上述3中对每一个50×50的小规模QUBO问题求解3次并记录下3次的结果,如此循环直至所有量子比特的3次结果完全一致。

进一步的,在实际应用中也可以选择继续求解直至3次结果不一致的量子比特数目小于某个值。

进一步的,在实际应用中也可以选择对3次求解的结果做多数决确定最终结果,例如某个量子比特的3次结果为(1,1,0),则取1为最终结果。

6、在上述5完成后,记录此时的全局循环次数,以每完成2000量子比特的最终结果为1次全局循环。若全局循环次数达到预先设定的值则暂停过程,并记录此时的分割数;若未达到预先设定的全局循环次数,则将最新记录的2000量子比特的结果作为初始值输入上述2中继续求解。

7、图4中example 2为本实施例的效果,横轴为CPU计算时间,竖轴为最大分割数,本实施例中全局循环次数取1次、2次、3次、4次、5次、6次、7次、8次、9次、10次、11次、12次。图4中SA为利用CPU调用模拟退火算法直接求解2000×2000大小的QUBO问题时的结果;图4中multi为利用CPU调用模拟退火算法直接对2000×2000大小的QUBO问题求解3次,并将3次结果一致的量子比特固定,对3次结果不一致的量子比特继续求解的结果;图4中partial为仅将2000×2000大小的QUBO问题分割为40个大小为50×50的小规模问题并利用CPU调用模拟退火算法求解的结果,全局循环次数为1次、2次、3次、5次、10次、20次、40次。由图4可知,本实施例在同样的计算时间内获得了更好的结果,且求解器的内存需求远低于原问题,实现了对大规模组合优化问题的高效率、高精度、低成本求解。

值得一提的是,本发明专利申请涉及的电子设备和存储介质等技术特征应被视为现有技术,这些技术特征的具体结构、工作原理以及可能涉及到的控制方式、空间布置方式采用本领域的常规选择即可,不应被视为本发明专利的发明点所在,本发明专利不做进一步具体展开详述。

对于本领域的技术人员而言,依然可以对前述各实施例所记载的技术方案进行修改,或对其中部分技术特征进行等同替换,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围。

相关技术
  • 矩阵寻址电路的电气表征
  • 一种由8个MOS晶体管和2个MIM电容器构成的硅基有源寻址矩阵像素单元电路
技术分类

06120116556942