CN117932194A - 基于fpga的组合优化求解方法及装置 - Google Patents
基于fpga的组合优化求解方法及装置 Download PDFInfo
- Publication number
- CN117932194A CN117932194A CN202410039003.XA CN202410039003A CN117932194A CN 117932194 A CN117932194 A CN 117932194A CN 202410039003 A CN202410039003 A CN 202410039003A CN 117932194 A CN117932194 A CN 117932194A
- Authority
- CN
- China
- Prior art keywords
- fpga
- solving
- optimization
- optimization problem
- result
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000005457 optimization Methods 0.000 title claims abstract description 273
- 238000000034 method Methods 0.000 title claims abstract description 101
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 116
- 238000004088 simulation Methods 0.000 claims abstract description 18
- 238000004891 communication Methods 0.000 claims description 46
- 230000036961 partial effect Effects 0.000 claims description 28
- 238000012545 processing Methods 0.000 claims description 25
- 230000006870 function Effects 0.000 claims description 22
- 238000013500 data storage Methods 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 15
- 230000005328 spin glass Effects 0.000 claims description 15
- 238000003860 storage Methods 0.000 claims description 11
- 230000008901 benefit Effects 0.000 abstract description 12
- 238000013461 design Methods 0.000 description 27
- 230000008569 process Effects 0.000 description 19
- 238000004364 calculation method Methods 0.000 description 13
- 230000001133 acceleration Effects 0.000 description 11
- 230000003993 interaction Effects 0.000 description 10
- 238000000137 annealing Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 238000004458 analytical method Methods 0.000 description 6
- 238000013439 planning Methods 0.000 description 6
- 230000005366 Ising model Effects 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 5
- 238000005381 potential energy Methods 0.000 description 5
- 238000005265 energy consumption Methods 0.000 description 4
- 230000020169 heat generation Effects 0.000 description 4
- 230000006872 improvement Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 239000000306 component Substances 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 102100031184 C-Maf-inducing protein Human genes 0.000 description 2
- 101000993081 Homo sapiens C-Maf-inducing protein Proteins 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 230000001427 coherent effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000004134 energy conservation Methods 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000013468 resource allocation Methods 0.000 description 2
- 238000002922 simulated annealing Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004040 coloring Methods 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 238000001816 cooling Methods 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000001747 exhibiting effect Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 238000013442 quality metrics Methods 0.000 description 1
- 230000005610 quantum mechanics Effects 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000009987 spinning Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000005641 tunneling Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/11—Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Operations Research (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供一种基于FPGA的组合优化求解方法及装置,涉及计算机技术领域,基于FPGA的组合优化求解方法包括:将预先设置的模拟分叉算法在现场可编程逻辑门阵列FPGA上进行硬件实现,得到基于FPGA的组合优化问题求解器;通过所述基于FPGA的组合优化问题求解器对预先设置的组合优化问题进行求解,得到组合优化求解结果。本发明实施例利用FPGA芯片的特殊优势,通过硬件设计模拟分叉算法,以实现组合优化问题的高效求解,具有广泛的适用性,能够满足各种不同领域的需求。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于FPGA的组合优化求解方法及装置。
背景技术
组合优化问题是一类典型的非确定性多项式时间(Non-deterministicPolynomial,NP)难问题,如旅行商问题(Traveling Salesman Problem,TSP)、背包问题、调度问题、物流供应以及社会科学中的人群意向倾向等问题。这些问题需要在给定一组约束条件下找到最优解,其中最优解通常是指最小化或最大化某种特定目标函数。
传统的组合优化问题求解方法包括:中央处理器(Central Processing Unit,CPU)计算、图形处理器(graphics processing unit,GPU)并行计算以及一些新兴的技术,如量子计算机等。
但是,传统的组合优化问题求解方法在某些情况下可能会面临挑战,CPU计算速度可能受到限制,而GPU虽然能够提供并行性,但对于一些复杂问题的性能提升有限,量子计算机尚处于研发阶段,尚未广泛应用。亟待寻求一种高效且可扩展的解决方案,以满足目前组合优化问题求解的需求。
发明内容
本发明提供一种基于FPGA的组合优化求解方法及装置,用以解决传统的组合优化问题求解方法在某些情况下可能会面临挑战的问题。
本发明提供一种基于FPGA的组合优化求解方法,包括:
将预先设置的模拟分叉算法在现场可编程逻辑门阵列FPGA上进行硬件实现,得到基于FPGA的组合优化问题求解器;
通过所述基于FPGA的组合优化问题求解器对预先设置的组合优化问题进行求解,得到组合优化求解结果。
根据本发明提供的一种基于FPGA的组合优化求解方法,所述通过所述基于FPGA的组合优化问题求解器对预先设置的组合优化问题进行求解,得到组合优化求解结果,包括:
在所述FPGA上,对预先设置的哈密顿函数HbSB中的N个变量并行求偏导,得到2N个偏微分方程;其中,所述HbSB与所述组合优化问题相关,N为大于0的整数,N表征自旋玻璃态问题中的待求解自旋个数;
通过对所述2N个偏微分方程求解来对所述组合优化问题进行求解,得到所述组合优化求解结果。
根据本发明提供的一种基于FPGA的组合优化求解方法,所述通过对所述2N个偏微分方程求解来对所述组合优化问题进行求解,得到所述组合优化求解结果,包括:
通过欧拉算法或模拟非线性哈密顿系统中的绝热演化算法,确定所述2N个偏微分方程的优化解,作为所述组合优化求解结果。
根据本发明提供的一种基于FPGA的组合优化求解方法,在所述通过所述基于FPGA的组合优化问题求解器对预先设置的组合优化问题进行求解,得到组合优化求解结果之前,所述方法还包括:
通过预先设置的输入输出IO通信接口,接收用户指定需要求解的优化函数;
所述通过所述基于FPGA的组合优化问题求解器对预先设置的组合优化问题进行求解,得到组合优化求解结果,包括:
通过所述基于FPGA的组合优化问题求解器对所述组合优化问题中的所述优化函数进行求解,得到所述组合优化求解结果。
根据本发明提供的一种基于FPGA的组合优化求解方法,在所述通过所述基于FPGA的组合优化问题求解器对预先设置的组合优化问题进行求解,得到组合优化求解结果之后,所述方法还包括:
通过所述IO通信接口,将所述组合优化求解结果发送至所述用户;
其中,所述组合优化求解结果包括中间求解结果和最终求解结果中的至少一项。
根据本发明提供的一种基于FPGA的组合优化求解方法,所述方法还包括:
利用预先设置的数据存储模块,存储所述组合优化问题对应的问题实例、算法参数、中间求解结果和最终求解结果中的至少一项。
本发明还提供一种基于FPGA的组合优化求解装置,包括:
处理模块,用于将预先设置的模拟分叉算法在现场可编程逻辑门阵列FPGA上进行硬件实现,得到基于FPGA的组合优化问题求解器;
求解模块,用于通过所述基于FPGA的组合优化问题求解器对预先设置的组合优化问题进行求解,得到组合优化求解结果。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述基于FPGA的组合优化求解方法。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述基于FPGA的组合优化求解方法。
本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述基于FPGA的组合优化求解方法。
本发明提供的基于FPGA的组合优化求解方法及装置,将模拟分叉算法与FPGA结合起来对组合优化问题进行求解,利用FPGA的并行计算能力,实现了组合优化问题的高效求解,加速了决策过程;利用FPGA的高度定制性,可以根据特定组合优化问题的要求进行硬件设计,将其优化为问题的特定特征;利用FPGA的低延迟特性,能够缩短数据传输时的通信用时,更快更高效的完成程序所需的输入输出,对于实时应用,如交通信号灯优化或机器人路径规划,低延迟是至关重要的,因为它确保了即时响应和决策的实现,本发明的方法可以很好地适应;利用FPGA的低功耗特性,可以适应于需要长时间运行或移动设备上的使用,在许多组合优化问题中,长时间计算是必要的,因此低功耗有助于减少能源消耗和热量产生;另外,FPGA可以提供硬件加速,相对于纯软件实现,通常能够实现更快的计算速度;FPGA不一定是一个独立的FPGA芯片,还可以通过FPGA集群实现高度可扩展性,可以处理大规模的问题。综上,本发明利用FPGA芯片的特殊优势,通过硬件设计模拟分叉算法,以实现组合优化问题的高效求解,具有广泛的适用性,能够满足各种不同领域的需求。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的基于FPGA的组合优化求解方法的流程示意图之一;
图2是本发明提供的基于FPGA的组合优化求解方法所应用的求解系统示意图;
图3是本发明提供的基于FPGA的组合优化求解方法的流程示意图之二;
图4是本发明提供的基于FPGA的组合优化求解装置的结构示意图;
图5是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了便于更加清晰地理解本发明各实施例提供的技术方案,首先对一些相关的背景知识进行如下介绍:
(一)模拟分叉(simulated bifurcation,SB)算法详述;
1)算法基本信息:
SB算法是一种用于加速组合优化问题的启发式算法,其设计灵感来源于量子计算领域。这个算法基于一种被称为量子分叉机(Quantum bifurcation machine,QbM)的量子计算机模型,该模型依赖于量子绝热优化,利用展示量子力学分叉现象的非线性振荡器。因此,SB算法的核心是模拟经典非线性哈密顿系统中的绝热演化过程中出现的分叉现象。
不同于传统的模拟退火(simulated annealing,SA)算法,SB算法允许变量的同时更新,这一特性使其能够通过现代多核处理器,如现场可编程门阵列(Field ProgrammableGate Arrays,FPGA)和图形处理单元(GPU),实现大规模并行处理,从而显著加速组合优化问题的求解。一个基于单个FPGA实现的SB算法机器(SB machine,SBM),能够在0.5毫秒内为2000自旋的伊辛(Ising)问题找到较好的近似解,这比传统的相干Ising机器(CoherentIsing Machines,CIM)快大约10倍。这个结果表明,算法的并行化能力是利用现代高性能计算系统加速优化算法的关键属性。
SB算法并不基于梯度方法,而是依赖于能量守恒系统的绝热演化,类似于纯绝热量子退火(Quantum annealing,QA)和QbM。由于其独特的方法论和高效的性能,SB算法在现代优化问题求解中显示出巨大的潜力,尤其是在需要处理复杂组合优化问题的场合。此外,该领域的研究还包括其他可并行化算法,例如将给定问题映射到二分问题并对每组自旋应用并行SA更新的方法。这些新算法虽然名称不同,但本质上依赖于相同的机制,如动量退火(Momentum annealing,MA)、随机蜂窝自动机退火(stochastic cellular automataannealing,SCA)和限制玻尔兹曼机(restricted Boltzmann machine,RBM)的并行随机采样。
2)其他优化算法与SB算法对比:
[a]SA;
1>原理:SA受到物理中退火过程的启发,通过逐步降低系统温度以探索并最终稳定在全局最优解。系统在初期高温阶段更倾向于探索广泛的状态空间,而随着温度下降,逐渐趋向于固定在局部最优解。
2>应用:SA算法在各种优化问题中都有应用,例如旅行商问题和排程问题。
3>性能:SA特别适用于中小规模问题。对于大规模问题,其计算时间可能变得过长,影响效率。
[b]QA;
1>原理:QA算法基于量子力学原理,特别是利用量子叠加和隧穿效应来寻找最优解。该算法通过改变量子系统的哈密顿量,使系统从一个初始状态逐渐演化到最低能态。
2>应用:QA主要用于解决一些特定的优化问题,并且通常需要在量子计算机上实现。
3>性能:理论上,QA能够更迅速地找到全局最优解,尤其是在处理一些复杂问题时。然而,它的性能受限于当前量子计算技术的发展。
[c]群算法(Swarm Algorithms);
1>原理:群算法受自然界群体行为(如鸟群、蚁群)的启发,通过个体之间的相互作用和信息共享来实现复杂的群体智能,从而找到最优解。
2>应用:这类算法适用于广泛的优化问题,包括路径规划和资源分配等。
3>性能:群算法对初始参数不太敏感,能有效处理大规模问题,尽管有时可能陷入局部最优解,但可并行性差。
[d]SB;
1>原理:SB算法是从量子计算中汲取灵感,基于模拟非线性哈密顿系统中的绝热演化过程,尤其是涉及到分叉现象。它与传统的基于梯度的方法不同,而是通过模拟能量守恒系统的绝热演化来求解问题。
2>应用:SB算法特别适用于解决复杂的组合优化问题,如大规模的Ising问题。
3>性能:SB算法的一个显著优势在于其并行化能力,特别是当使用现代多核处理器如FPGAs和GPUs时,这使得SB在处理大规模问题时能够显著提高计算速度。
下面描述综合对比结果:
[1]适用性:SA和群算法适用于广泛的问题类型,QA适用于量子计算机可有效处理的特定问题,而SB则特别适用于大规模组合优化问题。一般地,上述求解算法均用于求解一定约束下的组合优化问题,且问题能够建模为优化系统的哈密顿量函数,即H(x)。
[2]计算资源:SA和群算法可以在传统计算机上实现,QA需要量子计算资源,而SB特别适合于现代多核处理器,如FPGAs和GPUs。
[3]效率和速度:QA理论上可以通过量子效应更快地找到解,但受限于技术成熟度和量子计算机设备的成本。SA在小规模问题上效率较高,群算法适合处理大规模问题,SB则因其并行化能力在处理大规模问题时显示出高效率。
[4]鲁棒性:群算法因其分布式和自适应特性在鲁棒性方面通常优于SA和QA。SB算法也展示出在复杂环境下的鲁棒性,尤其是在并行计算环境中。
(二)组合优化问题:
在现实生活中,组合优化问题广泛存在于商业、科学和工程领域。这些问题通常涉及在给定的约束条件下找到最佳解决方案,以最大化或最小化某种目标函数。例如,旅行商问题需要找到一条最短路径,将一组城市连接在一起;交通信号灯优化问题涉及调整交通信号以最大程度地减少交通拥堵。这些问题的求解通常需要耗费大量的计算资源和时间。
下面结合附图描述本发明的基于FPGA的组合优化求解方法及装置。
图1是本发明提供的基于FPGA的组合优化求解方法的流程示意图之一,如图1所示,方法包括步骤101和步骤102;其中:
步骤101、将预先设置的模拟分叉算法在现场可编程逻辑门阵列FPGA上进行硬件实现,得到基于FPGA的组合优化问题求解器;
步骤102、通过所述基于FPGA的组合优化问题求解器对预先设置的组合优化问题进行求解,得到组合优化求解结果。
相关技术中,传统的组合优化问题求解方法一般可归纳为三种:一是采用现有的软件求解器;二是利用GPU加速计算;三是利用专用集成电路(Application SpecificIntegrated Circuit,ASIC)等特定的硬件设备,其中:
1)软件求解器:大多数组合优化问题的求解都依赖于计算机软件,如线性规划器、深度搜索算法(如分支定界法)和近似算法。这些方法通常在通用处理器上运行,并且对于复杂的问题,需要大量的计算时间。常见的求解器有:
[a]数学优化软件(CPLEX)求解器:是一种用于线性规划(Linear programming,LP)、整数规划(Integer Programming,IP)和混合整数规划(Mixed Integer Program,MIP)问题的商业求解器。它具有高度优化的求解算法,广泛应用于工业和研究领域。
需要说明的是,CPLEX是由IBM开发的,专门用于求解各种数学规划问题,包括LP、IP、MIP以及其他相关的优化问题。CPLEX的全称可以是IBM ILOG CPLEX OptimizationStudio。
[b]Gurobi求解器:是另一个用于LP、IP和MIP问题的商业求解器,它在性能上与CPLEX竞争激烈。
[c]布尔可满足性问题(SAT)求解器:用于解决布尔满足性问题,这是一种NP完全问题。一些流行的SAT求解器包括MiniSat和Z3。
[d]混合整数规划(Continuous Mixed-Integer Programming,CMIP)求解器:用于解决连续混合整数规划问题的工具,这类问题结合了LP和IP的特点,其中一些决策变量是连续的实数值,而其他变量必须取整数值。CMIP问题在工业、运筹学、物流、资源分配和许多其他领域中都有广泛的应用。
2)GPU加速:近年来,不少研究尝试使用GPU来加速组合优化问题的求解。GPU具有并行处理能力,可以在一定程度上提高问题求解速度。
然而,GPU通常用于通用目的,不是所有组合优化问题都可以并行化,某些组合优化问题具有内存或信息依赖关系,导致难以将其有效地分解为并行任务,另外,GPU的价格较高,也是制约其发展的一个原因。
3)ASIC和特定硬件:对于一些高度专门化的组合优化问题,人们可能会考虑使用ASIC或其他特定硬件,以提供高性能。但这些解决方案的开发和部署成本通常很高,不适用于广泛的问题领域。
综上,相关技术中主要存在以下缺点:
1)计算时间:在通用处理器上运行的软件求解器,通常需要大量的计算时间来处理复杂的组合优化问题,这在需要快速决策的实时应用中可能产生一定的制约。
2)能效:软件和一般硬件的组合优化问题求解器,通常在处理复杂问题时需要消耗大量能量,不适合低功耗应用。
3)硬件资源限制:通用处理器和GPU在处理大规模问题时,可能遇到性能瓶颈,难以实现高度可扩展性。
4)定制性:现有通用硬件和软件求解器通常缺乏针对特定问题的高度定制性,因此可能无法实现最佳性能。
针对上述问题,本发明实施例提供了一种基于FPGA的组合优化求解方法,主要技术构思是:利用FPGA芯片的特殊优势,通过硬件设计模拟分叉算法,以实现组合优化问题的高效求解。
具体地,本发明实施例先将预先设置的模拟分叉算法在FPGA上进行硬件实现,得到基于FPGA的组合优化问题求解器,进而通过基于FPGA的组合优化问题求解器对预先设置的组合优化问题进行求解,得到组合优化求解结果,实现对组合优化问题的高效求解。
下面对基于FPGA解决组合优化问题的潜在优势进行说明:
1>高度定制性:FPGA允许设计者定制硬件,以适应特定问题的需求,从而实现高度优化的解决方案。
2>并行性能:FPGA具有并行处理能力,可以同时处理多个问题实例,提高求解速度。
3>低延迟:FPGA通常具有低延迟,适用于实时和低延迟应用。
4>能效:FPGA可以针对问题进行优化,提供低功耗的解决方案。
5>硬件资源限制:FPGA集群可以用于处理大规模问题,突破硬件资源性能上限。
6>硬件加速:FPGA提供硬件加速,通常比软件实现更快、更节能。
在一些实施例中,将模拟分叉算法与FPGA结合起来对组合优化问题进行求解,具体实现可以分为硬件设计和软件算法实现两个部分:
(一)硬件设计:在实施基于FPGA的组合优化问题求解器时,首先需要进行硬件设计,主要包括以下关键方面:
1)FPGA选择:需要选择适合问题求解的FPGA芯片型号和规格。上面介绍了关于FPGA芯片的不同特性,由于不同的FPGA芯片具有不同的资源和性能特点,因此可以需要根据问题的复杂性和求解要求,来选择合适的FPGA。
2)电路设计:开发特定于问题的电路,以执行分叉、合并和选择操作,这可能涉及到电路元件,例如逻辑门、寄存器、时钟控制器等之间的布局和互连。
3)电力供应:确保系统具有稳定的电力供应,以防止电源波动干扰系统运行。
(二)算法实现:在FPGA上实现模拟分叉算法,主要包括以下步骤:
1)FPGA硬件描述语言选择:使用硬件描述语言编写FPGA的硬件设计描述,硬件描述语言例如包括超高速集成电路硬件描述语言(Very-High-Speed Integrated CircuitHardware Description Language,VHDL)或Verilog。
2)初始化参数:设置算法的初始参数,包括温度、冷却速度等。这些参数可以根据问题的特性进行具体调整。
3)并行计算:利用FPGA的并行计算能力,同时处理多个问题实例或多个求解步骤,这主要通过并行硬件设计来实现。
4)模拟分叉:在FPGA上执行模拟分叉操作,即生成问题实例的不同解决方案,并评估其质量。
5)模拟合并:合并不同解决方案,以选择最佳解决方案。
6)结果反馈:将最优解或接近最优解的结果反馈给用户或其他设备,可以通过IO通信模块中的IO通信接口进行。
7)IO通信接口实现:提供用户与系统之间的通信接口,可以通过图形用户界面(Graphical User Interface,GUI)或命令行接口(Command Line Interface,CLI)与系统交互。用户可以使用接口来指定问题实例、开始求解、读取结果等。
8)数据存储:使用数据存储模块来保存问题实例、算法参数、中间结果和最终解决方案。这有助于问题跟踪和结果分析。
9)结果输出:提供结果输出接口,使用户或其他设备可以读取和使用已解决的组合优化问题的结果。这可以包括最优解、解的质量指标和其他相关信息。
需要说明的是,FPGA是算法实施的硬件载体,算法实施过程涉及到对FPGA的资源(如查找表、寄存器、RAM块)的映射和优化;以确保高效利用FPGA资源,同时避免瓶颈,如过高的时钟频率或资源争用。
在本发明实施例提供的基于FPGA的组合优化求解方法中,将模拟分叉算法与FPGA结合起来对组合优化问题进行求解,利用FPGA的并行计算能力,实现了组合优化问题的高效求解,加速了决策过程;利用FPGA的高度定制性,可以根据特定组合优化问题的要求进行硬件设计,将其优化为问题的特定特征;利用FPGA的低延迟特性,能够缩短数据传输时的通信用时,更快更高效的完成程序所需的输入输出,对于实时应用,如交通信号灯优化或机器人路径规划,低延迟是至关重要的,因为它确保了即时响应和决策的实现,本发明的方法可以很好地适应;利用FPGA的低功耗特性,可以适应于需要长时间运行或移动设备上的使用,在许多组合优化问题中,长时间计算是必要的,因此低功耗有助于减少能源消耗和热量产生;另外,FPGA可以提供硬件加速,相对于纯软件实现,通常能够实现更快的计算速度;FPGA不一定是一个独立的FPGA芯片,还可以通过FPGA集群实现高度可扩展性,可以处理大规模的问题。综上,本发明利用FPGA芯片的特殊优势,通过硬件设计模拟分叉算法,以实现组合优化问题的高效求解,具有广泛的适用性,能够满足各种不同领域的需求。
可选地,所述通过所述基于FPGA的组合优化问题求解器对预先设置的组合优化问题进行求解,得到组合优化求解结果的实现方式可以包括:
在所述FPGA上,对预先设置的哈密顿函数HbSB中的N个变量并行求偏导,得到2N个偏微分方程;其中,所述HbSB与所述组合优化问题相关,N为大于0的整数,N表征自旋玻璃态问题中的待求解自旋个数;
通过对所述2N个偏微分方程求解来对所述组合优化问题进行求解,得到所述组合优化求解结果。
在一些实施例中,考虑到问题的泛化性和可实现性,可以引用加速SB(ballisticSB,bSB)算法作为改进基础:
这个过程基于一组动态方程,模拟了系统如何随时间演变到一个最优状态。
其中,xS和yS是系统状态的两个组成部分,分别代表每个自旋的位置和动量(类比)。a0是一个系统参数,而a(t)是一个随时间变化的参数,用于控制系统的“绝热”演化。c0是耦合常数,ji,j代表自旋i和j之间的相互作用。哈密顿函数HbSB中,对所有xi来说,通过VbSB的计算公式计算得到的结果是|xi|≤1时系统的势能,否则VbSB=∞。势能项VbSB包含了自旋之间的相互作用以及它们的单独贡献,当|xi|>1时,势能趋向于无限大,这意味着系统的状态受到限制在某个范围内。
上述公式展示了一个可变参数a(t)控制的系统如何在一个潜在的能量景观中演化。SB算法通过这种动态演化过程寻找系统的最优状态,即最低势能状态。
对于并行效率来说,SB算法在并行计算方面的效率非常高,这是因为和/>的计算可以独立进行。图中的公式表明,每个xi节点的偏导数/>和/>可以同时计算,无需等待其他节点的结果。这种独立性是并行计算的关键特征,因为它允许算法在多个处理器或处理单元上同时执行,每个单元处理单独的xi和yi,而无需进行任何同步操作。
在FPGA这样的并行硬件上,这意味着可以同时为成千上万的自旋节点计算导数,极大地加快了寻找最优解的过程。FPGA可以利用其大量的逻辑单元并行地执行这些计算,与在串行处理器上执行相比,这可以显著减少所需的总计算时间,从而达到快速求解最优化问题的目的。
但是,上述算法主要用于解决Ising问题,其特点是只能处理二值自旋值。这种限制意味着算法在处理更广泛和复杂的优化问题时可能不够有效。为了解决这一问题,本发明实施例对模拟分叉算法进行了一般化处理,从而能够处理自旋玻璃态问题,这种问题具有更广泛的状态空间,要求算法能处理多取值的自变量。在自旋玻璃态问题中,自变量可以取多种不同的值,而非仅限于Ising模型中的两种状态。
一般地,本发明实施例将Ising问题模拟分叉算法中的一系列二值自旋,拓展到自旋玻璃态问题中的多值自旋,即将上述公式(1)和(2)扩展对每个变量求取偏导数,以4自旋纠缠的自旋玻璃态系统(共16种求解状态)为例,也即以N等于4为例,方程可以拓展为:
本发明实施例中,可以通过对与组合优化问题相关的哈密顿函数中的N个变量并行求偏导的方式,得到2N个偏微分方程,以将组合优化问题转换成偏微分方程的形式,再通过对2N个偏微分方程求解来对组合优化问题进行求解,得到组合优化问题对应的组合优化求解结果;现有的模拟分叉算法主要用于解决伊辛Ising问题,其特点是只能处理二值自旋值,这种限制意味着算法在处理更广泛和复杂的优化问题时可能不够有效,本发明提供的方法进行了一般化处理,从而能够处理自旋玻璃态问题,这种问题具有更广泛的状态空间,要求算法能处理多取值的自变量,在自旋玻璃态问题中,自变量可以取多种不同的值,而非仅限于Ising模型中的两种状态,提高了组合优化求解的通用性。
可选地,所述通过对所述2N个偏微分方程求解来对所述组合优化问题进行求解,得到所述组合优化求解结果的实现方式可以包括:
通过欧拉算法或模拟非线性哈密顿系统中的绝热演化算法,确定所述2N个偏微分方程的优化解,作为所述组合优化求解结果。
具体地,可以使用欧拉法(交替隐式格式)来求解上述多变量的偏微分方程(Partial differential equation,PDE)。这种数值分析技术允许算法近似求解微分方程,从而能够有效模拟更复杂系统中变量的动态变化。
此外,本发明实施例还借鉴了SB算法在量子计算领域的一些先进概念,如QbM和量子绝热优化。SB算法通过模拟非线性哈密顿系统中的绝热演化来找到优化解,这一过程涉及到系统状态的分叉现象。这种方法使得SB算法能够在现代多核处理器上实现大规模并行处理,大大提高了算法的效率。
将这些改进结合起来,本发明的一般化模拟分叉算法不仅能处理更广泛的问题,还能更有效地利用现代计算资源。这些改进使得算法更加适应于解决复杂的优化问题,特别是在需要处理多变量和多取值问题的情境中。
需要说明的是,在物理学中,哈密顿函数H描述了一个系统的总能量,它可以根据不同的物理模型对应不同的形式。对于Ising模型和自旋玻璃模型,哈密顿函数的形式各有特点:
1)Ising模型的哈密顿函数:在Ising模型中,哈密顿函数描述了一组自旋粒子的相互作用和外部磁场作用下的能量。其表达式为:
H=-∑i<jJijsisj-μ∑ihisi;
其中,si是第i个自旋的取值,通常是+1或-1;Jij是自旋i和自旋j之间的交互作用强度;hi是作用在自旋i上的外部磁场强度;μ是磁矩。
在这个模型中,自旋只能取两个值(+1或-1),代表两个方向。
2)自旋玻璃模型的哈密顿函数:自旋玻璃模型是一种更复杂的模型,它可以用来描述多取值的自旋系统。在这个模型中,每个自旋可以取多个不同的相位值,而不仅仅是+1或-1。哈密顿函数可以写为:
其中,是表示第ip种自旋状态的多值变量;Jij是自旋i和自旋j之间的交互作用强度,hi是作用在自旋i上的外部磁场强度。
在自旋玻璃模型中,每个自旋的状态可以由其相位(或者一般化的多值变量)表示,从而描述比简单的两态系统更复杂的相互作用。
本发明实施例中,可以通过欧拉算法或模拟非线性哈密顿系统中的绝热演化算法获取2N个偏微分方程的优化解,其中,通过模拟非线性哈密顿系统中的绝热演化来找到优化解,这一过程涉及到系统状态的分叉现象,可以使得模拟分叉算法能够在现代多核处理器上实现大规模并行处理,大大提高了算法的效率。
可选地,在所述通过所述基于FPGA的组合优化问题求解器对预先设置的组合优化问题进行求解,得到组合优化求解结果之前,可以通过预先设置的输入输出IO通信接口,接收用户指定需要求解的优化函数;
所述通过所述基于FPGA的组合优化问题求解器对预先设置的组合优化问题进行求解,得到组合优化求解结果的实现方式可以包括:
通过所述基于FPGA的组合优化问题求解器对所述组合优化问题中的所述优化函数进行求解,得到所述组合优化求解结果。
具体地,本发明实施例在求解装置与用户之间设置了IO通信接口,用户可以通过该IO通信接口指定需要求解的优化函数,以由求解装置对该指定的优化函数进行后续组合优化问题的求解;通过设置IO通信接口,使用户能够自定义需要求解的组合优化问题的优化函数,充分体现了装置的自定义性,并实现了求解装置的通用性,使其能够在无人机群调度、城市优化管理、物流优化等诸多领域发挥作用。
可选地,在所述通过所述基于FPGA的组合优化问题求解器对预先设置的组合优化问题进行求解,得到组合优化求解结果之后,可以通过所述IO通信接口,将所述组合优化求解结果发送至所述用户;
其中,所述组合优化求解结果包括中间求解结果和最终求解结果中的至少一项。
具体地,IO通信接口还可以将求解得到的组合优化求解结果传输至用户侧。
可选地,利用预先设置的数据存储模块,存储所述组合优化问题对应的问题实例、算法参数、中间求解结果和最终求解结果中的至少一项。
具体地,本发明实施例可以设置数据存储模块,用来存储组合优化问题对应的问题实例、算法参数、中间求解结果和最终求解结果中的至少一项,可供其他电子设备读写,有助于后续问题跟踪和结果分析。
下面举例说明本发明实施例提供的基于FPGA的组合优化求解方法。
本发明的基于FPGA的组合优化求解方法,旨在提供一种高效的通用解决方案,可应用于各种组合优化问题的求解。具体利用FPGA芯片的特殊优势,通过硬件设计模拟分叉算法,以实现组合优化问题的高效求解,不仅具有广泛的适用性,还具有用户自定义功能,使其能够满足各种不同领域的需求。
图2是本发明提供的基于FPGA的组合优化求解方法所应用的求解系统示意图,如图2所示,求解系统的核心组成部分主要包括:供电模块、FPGA核心、IO通信模块和数据存储模块。这些模块共同构成了一种Ising计算机,能够有效地解决组合优化问题。具体地:
1)供电模块:供电模块的作用是为系统提供稳定可靠的电力供应,在求解组合优化问题时,电力稳定性是至关重要的,以确保系统在运行时不会受到电源波动的影响,供电模块可以包括电源单元、电池或电源管理系统,以应对不同的供电需求,供电模块通过电缆或线路将电力传递给FPGA核心和其他部分。
2)FPGA核心:FPGA核心是本发明的关键组件,它运行着模拟分叉算法(SB算法),作为组合优化问题的主要求解算法,该算法是一种高效的组合优化问题求解算法,通过硬件设计在FPGA芯片上实现,以提高计算速度和效率。具体包括一个FPGA芯片、HDL编程,以及SB算法的硬件设计。FPGA核心根据输入的组合优化问题和用户定义的参数(例如优化函数),执行SB算法,同时利用FPGA的并行性能加速问题的求解。
通过对FPGA核心的硬件设计,使其并行集成了模拟分叉算法,能够发挥求解器的作用。
3)IO通信模块:IO通信模块充当了用户与系统之间的接口,用于问题的指定和结果的通信。用户可以使用该模块来指定需要求解的优化函数,也即指定需要解决的组合优化问题,通常通过命令、配置文件或网络通信方式,同时接收和返回求解结果。这种自定义接口使得系统能够应对不同问题的求解需求。具体IO通信模块接收用户的输入,将问题传递给FPGA核心,然后将求解结果返回给用户或其他设备。
需要说明的是,部署SB算法在FPGA芯片上时,设计一个有效的IO通信模块对于求解器的普适性至关重要。IO通信模块负责接收外部输入,即要求解的模型是导数形式,并将其传递给FPGA上的SB算法。一般地,IO通信接口应接收一系列偏微分方程组的符号形式,其中的相互作用系数通过符号或数据矩阵存储。
例如,在求解4自旋相互作用的自旋玻璃态问题时,应给出上述方程(3)的具体计算形式,并将其输入到IO通信模块中,求解器将返回最优化的结果X。
4)数据存储模块:数据存储模块用于记录计算结果和中间数据,可供其他电子设备读写,以进一步分析、存档和检索,用于数据分析和追踪求解过程。数据存储模块通常包括存储设备(如硬盘、固态硬盘、云存储等)和相应的数据管理软件。数据存储模块接收FPGA核心生成的结果,并将其安全存储以供用户或其他应用程序后续访问。
下面对这几部分之间的交互进行描述:
1>用户使用IO通信模块通过指定接口提交组合优化问题的描述和参数。
2>IO通信模块将问题传递给FPGA核心,启动SB算法的执行。
3>FPGA核心执行SB算法,利用硬件加速高效地求解问题。
4>一旦问题求解完成,FPGA核心将结果传递回IO通信模块。
5>IO通信模块将结果返回给用户或其他设备,同时将结果存储在数据存储模块中。
6>数据存储模块保存结果以供以后分析和检索。
本发明的优势在于将FPGA的高度定制性与通用性相结合,能够通用于各类组合优化问题,包括但不限于最优分配问题、交通信号灯优化问题、着色问题等。
图3是本发明提供的基于FPGA的组合优化求解方法的流程示意图之二,如图3所示,具体包括以下步骤:
1)开始:流程的起始点。
2)硬件设计:选择FPGA芯片、硬件描述语言编程、电路设计等,以充分利用FPGA的可编程性。
3)算法实现:在FPGA上实现模拟分叉算法(SB算法),充分利用硬件设计提高计算速度和效率。
4)通信接口设计:创建用户与系统之间的通信接口,允许用户自定义问题和接收解决方案。
5)数据存储设计:开发数据存储模块,记录问题实例、中间结果和最终解决方案,以进行进一步的分析。
6)电力供应设计:确保系统具有稳定的电力供应,使其适用于长时间计算任务和低功耗应用。
7)问题指定:用户使用通信接口指定需要解决的组合优化问题,充分体现了系统的自定义性。
8)求解问题:系统执行模拟分叉算法,通过FPGA的硬件加速提高了问题求解速度。
9)结果输出:系统通过通信接口将最优解或接近最优解的结果反馈给用户或其他设备,强调高效率和实时性。
10)存储结果:将结果存储在数据存储模块中以供进一步分析,为用户提供有关问题求解过程的详细信息。
11)结束:流程的结束点。
本发明实施例至少包括以下有益效果:
1>高效求解:利用FPGA的并行计算能力,实现了组合优化问题的高效求解,加速了决策过程。
2>高度定制性:FPGA的最大优势之一是其高度定制性。按照本发明的内容,设计者可以根据特定组合优化问题的要求进行硬件设计,将其优化为问题的特定特征。这种灵活性意味着我们可以为每个问题定制一个最优的解决方案,而不是采用通用的算法。这对于各种不同领域的组合优化问题非常重要,因为问题的性质和需求可能差异很大。
3>并行性能:FPGA具有出色的并行处理能力,能够同时处理多个问题实例或多个求解步骤。这意味着在短时间内可以处理大量问题,从而显著提高了求解速度。对于需要快速决策的应用,如实时调度和决策支持系统,这一点尤为重要。
4>低延迟:FPGA通常具有低延迟,能够缩短数据传输时的通信用时,更快更高效的完成程序所需的IO。对于实时应用,如交通信号灯优化或机器人路径规划,低延迟是至关重要的,因为它确保了即时响应和决策的实现。
5>能效:FPGA通常能够以较低的功耗执行计算任务,这使其在需要长时间运行或移动设备上使用时非常有利。在许多组合优化问题中,长时间计算是必要的,因此低功耗有助于减少能源消耗和热量产生。
6>高适用性:本发明可以不仅仅是一个独立的FPGA芯片,还可以通过FPGA集群实现高度可扩展性。这意味着可以处理大规模的问题,无论是在物流管理中优化大型网络,还是在城市规划中解决复杂的问题,都能够轻松应对。
7>硬件加速:FPGA提供硬件加速,相对于纯软件实现,通常能够实现更快的计算速度。这对于需要高性能的组合优化问题来说是一个显著的优势,因为硬件加速可以将问题求解时间缩短到最小,提高了整个系统的效率。
下面对本发明提供的基于FPGA的组合优化求解装置进行描述,下文描述的基于FPGA的组合优化求解装置与上文描述的基于FPGA的组合优化求解方法可相互对应参照。
图4是本发明提供的基于FPGA的组合优化求解装置的结构示意图,如图4所示,基于FPGA的组合优化求解装置400,包括:
处理模块400,用于将预先设置的模拟分叉算法在现场可编程逻辑门阵列FPGA上进行硬件实现,得到基于FPGA的组合优化问题求解器;
求解模块401,用于通过所述基于FPGA的组合优化问题求解器对预先设置的组合优化问题进行求解,得到组合优化求解结果。
在本发明实施例提供的基于FPGA的组合优化求解装置中,利用处理模块和求解模块将模拟分叉算法与FPGA结合起来,对组合优化问题进行求解,利用FPGA的并行计算能力,实现了组合优化问题的高效求解,加速了决策过程;利用FPGA的高度定制性,可以根据特定组合优化问题的要求进行硬件设计,将其优化为问题的特定特征;利用FPGA的低延迟特性,能够缩短数据传输时的通信用时,更快更高效的完成程序所需的输入输出,对于实时应用,如交通信号灯优化或机器人路径规划,低延迟是至关重要的,因为它确保了即时响应和决策的实现,本发明的方法可以很好地适应;利用FPGA的低功耗特性,可以适应于需要长时间运行或移动设备上的使用,在许多组合优化问题中,长时间计算是必要的,因此低功耗有助于减少能源消耗和热量产生;另外,FPGA可以提供硬件加速,相对于纯软件实现,通常能够实现更快的计算速度;FPGA不一定是一个独立的FPGA芯片,还可以通过FPGA集群实现高度可扩展性,可以处理大规模的问题。综上,本发明利用FPGA芯片的特殊优势,通过硬件设计模拟分叉算法,以实现组合优化问题的高效求解,具有广泛的适用性,能够满足各种不同领域的需求。
可选地,求解模块401具体用于:
在所述FPGA上,对预先设置的哈密顿函数HbSB中的N个变量并行求偏导,得到2N个偏微分方程;其中,所述HbSB与所述组合优化问题相关,N为大于0的整数,N表征自旋玻璃态问题中的待求解自旋个数;
通过对所述2N个偏微分方程求解来对所述组合优化问题进行求解,得到所述组合优化求解结果。
可选地,求解模块401还具体用于:
通过欧拉算法或模拟非线性哈密顿系统中的绝热演化算法,确定所述2N个偏微分方程的优化解,作为所述组合优化求解结果。
可选地,基于FPGA的组合优化求解装置400还包括:
通信模块,用于:通过预先设置的输入输出IO通信接口,接收用户指定需要求解的优化函数;
求解模块401还具体用于:通过所述基于FPGA的组合优化问题求解器对所述组合优化问题中的所述优化函数进行求解,得到所述组合优化求解结果。
可选地,通信模块还用于:
通过所述IO通信接口,将所述组合优化求解结果发送至所述用户;
其中,所述组合优化求解结果包括中间求解结果和最终求解结果中的至少一项。
可选地,基于FPGA的组合优化求解装置400还包括:
存储模块,用于:利用预先设置的数据存储模块,存储所述组合优化问题对应的问题实例、算法参数、中间求解结果和最终求解结果中的至少一项。
图5是本发明提供的电子设备的结构示意图,如图5所示,该电子设备500可以包括:处理器(processor)510、通信接口(Communications Interface)520、存储器(memory)530和通信总线540,其中,处理器510,通信接口520,存储器530通过通信总线540完成相互间的通信。处理器510可以调用存储器530中的逻辑指令,以执行基于FPGA的组合优化求解方法,该方法包括:将预先设置的模拟分叉算法在现场可编程逻辑门阵列FPGA上进行硬件实现,得到基于FPGA的组合优化问题求解器;
通过所述基于FPGA的组合优化问题求解器对预先设置的组合优化问题进行求解,得到组合优化求解结果。
此外,上述的存储器530中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的基于FPGA的组合优化求解方法,该方法包括:将预先设置的模拟分叉算法在现场可编程逻辑门阵列FPGA上进行硬件实现,得到基于FPGA的组合优化问题求解器;
通过所述基于FPGA的组合优化问题求解器对预先设置的组合优化问题进行求解,得到组合优化求解结果。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的基于FPGA的组合优化求解方法,该方法包括:将预先设置的模拟分叉算法在现场可编程逻辑门阵列FPGA上进行硬件实现,得到基于FPGA的组合优化问题求解器;
通过所述基于FPGA的组合优化问题求解器对预先设置的组合优化问题进行求解,得到组合优化求解结果。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种基于FPGA的组合优化求解方法,其特征在于,包括:
将预先设置的模拟分叉算法在现场可编程逻辑门阵列FPGA上进行硬件实现,得到基于FPGA的组合优化问题求解器;
通过所述基于FPGA的组合优化问题求解器对预先设置的组合优化问题进行求解,得到组合优化求解结果。
2.根据权利要求1所述的基于FPGA的组合优化求解方法,其特征在于,所述通过所述基于FPGA的组合优化问题求解器对预先设置的组合优化问题进行求解,得到组合优化求解结果,包括:
在所述FPGA上,对预先设置的哈密顿函数HbSB中的N个变量并行求偏导,得到2N个偏微分方程;其中,所述HbSB与所述组合优化问题相关,N为大于0的整数,N表征自旋玻璃态问题中的待求解自旋个数;
通过对所述2N个偏微分方程求解来对所述组合优化问题进行求解,得到所述组合优化求解结果。
3.根据权利要求2所述的基于FPGA的组合优化求解方法,其特征在于,所述通过对所述2N个偏微分方程求解来对所述组合优化问题进行求解,得到所述组合优化求解结果,包括:
通过欧拉算法或模拟非线性哈密顿系统中的绝热演化算法,确定所述2N个偏微分方程的优化解,作为所述组合优化求解结果。
4.根据权利要求1至3任一项所述的基于FPGA的组合优化求解方法,其特征在于,在所述通过所述基于FPGA的组合优化问题求解器对预先设置的组合优化问题进行求解,得到组合优化求解结果之前,所述方法还包括:
通过预先设置的输入输出IO通信接口,接收用户指定需要求解的优化函数;
所述通过所述基于FPGA的组合优化问题求解器对预先设置的组合优化问题进行求解,得到组合优化求解结果,包括:
通过所述基于FPGA的组合优化问题求解器对所述组合优化问题中的所述优化函数进行求解,得到所述组合优化求解结果。
5.根据权利要求4所述的基于FPGA的组合优化求解方法,其特征在于,在所述通过所述基于FPGA的组合优化问题求解器对预先设置的组合优化问题进行求解,得到组合优化求解结果之后,所述方法还包括:
通过所述IO通信接口,将所述组合优化求解结果发送至所述用户;
其中,所述组合优化求解结果包括中间求解结果和最终求解结果中的至少一项。
6.根据权利要求1至3任一项所述的基于FPGA的组合优化求解方法,其特征在于,所述方法还包括:
利用预先设置的数据存储模块,存储所述组合优化问题对应的问题实例、算法参数、中间求解结果和最终求解结果中的至少一项。
7.一种基于FPGA的组合优化求解装置,其特征在于,包括:
处理模块,用于将预先设置的模拟分叉算法在现场可编程逻辑门阵列FPGA上进行硬件实现,得到基于FPGA的组合优化问题求解器;
求解模块,用于通过所述基于FPGA的组合优化问题求解器对预先设置的组合优化问题进行求解,得到组合优化求解结果。
8.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至6任一项所述基于FPGA的组合优化求解方法。
9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述基于FPGA的组合优化求解方法。
10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述基于FPGA的组合优化求解方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410039003.XA CN117932194A (zh) | 2024-01-10 | 2024-01-10 | 基于fpga的组合优化求解方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410039003.XA CN117932194A (zh) | 2024-01-10 | 2024-01-10 | 基于fpga的组合优化求解方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117932194A true CN117932194A (zh) | 2024-04-26 |
Family
ID=90765827
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410039003.XA Pending CN117932194A (zh) | 2024-01-10 | 2024-01-10 | 基于fpga的组合优化求解方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117932194A (zh) |
-
2024
- 2024-01-10 CN CN202410039003.XA patent/CN117932194A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Sarwar et al. | Incremental learning in deep convolutional neural networks using partial network sharing | |
Zeng et al. | GraphACT: Accelerating GCN training on CPU-FPGA heterogeneous platforms | |
JP7186797B2 (ja) | 量子計算のための方法及びシステム | |
Zhou et al. | Hitgraph: High-throughput graph processing framework on fpga | |
US10853544B2 (en) | Selective execution for partitioned parallel simulations | |
Rashidi et al. | Astra-sim: Enabling sw/hw co-design exploration for distributed dl training platforms | |
WO2021057722A1 (zh) | 用多核处理器实现神经网络模型拆分方法及相关产品 | |
Kim et al. | Machine learning and manycore systems design: A serendipitous symbiosis | |
CN110516810B (zh) | 一种量子程序的处理方法、装置、存储介质和电子装置 | |
US20190138373A1 (en) | Multithreaded data flow processing within a reconfigurable fabric | |
US20190130268A1 (en) | Tensor radix point calculation in a neural network | |
CN110889507A (zh) | 一种量子程序转有向无环图的方法、装置、存储介质及电子装置 | |
CN116384312A (zh) | 一种基于并行异构计算的电路良率分析方法 | |
Gadiyar et al. | Artificial intelligence software and hardware platforms | |
Alhamali et al. | FPGA-accelerated hadoop cluster for deep learning computations | |
Jiang et al. | Improving the Performance of Whale Optimization Algorithm through OpenCL‐Based FPGA Accelerator | |
AlSuwaidan et al. | Swarm Intelligence Algorithms for Optimal Scheduling for Cloud‐Based Fuzzy Systems | |
US20190130276A1 (en) | Tensor manipulation within a neural network | |
CN114648103A (zh) | 用于处理深度学习网络的自动多目标硬件优化 | |
Anis | FPGA implementation of parallel particle swarm optimization algorithm and compared with genetic algorithm | |
US11854916B2 (en) | Method for evaluating placement of semiconductor devices | |
KR20230132369A (ko) | 양자 회로에서의 리소스 감소 | |
Zheng et al. | Early Exploration of a Flexible Framework for Efficient Quantum Linear Solvers in Power Systems | |
KR102430482B1 (ko) | 금지 영역 정보를 기반으로 반도체 소자를 배치하는 방법 | |
CN117932194A (zh) | 基于fpga的组合优化求解方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |