用于优化利用约束进行大规模资源分配的方法和系统技术方案

技术编号:38654758 阅读:11 留言:0更新日期:2023-09-02 22:41
用于确定大规模系统中最优资源分配的方法、系统和装置,包括编码在计算机存储介质上的计算机程序。一示例方法包括:获取针对多个主计算机设备所托管资源的多个资源请求;构造用于将所述多个资源请求分配给所述多个主计算机设备的目标以及一个或多个约束。所述一个或多个约束包括多个决策变量的一个或多个不等式。该示例方法还包括:将所述一个或多个不等式转换为所述多个决策变量的一个或多个等式;将所述一个或多个等式合并到所述目标中,以获得新目标;将所述新目标分成多个子目标;生成与所述多个子目标相对应的多个并行处理任务,以获得所述多个决策变量的值。以获得所述多个决策变量的值。以获得所述多个决策变量的值。

【技术实现步骤摘要】
【国外来华专利技术】用于优化利用约束进行大规模资源分配的方法和系统


[0001]本公开内容一般涉及利用各种约束进行大规模资源分配的系统和方法。

技术介绍

[0002]资源管理平台可以允许资源所有者响应于请求并服从各种约束来提供资源。待提供的资源可以与负指标(例如,风险、成本)和正指标(例如,利息、使用费、经常性付款、其它类型的收益)相关联。这意味着,当资源所有者(通过提供资源)满足资源请求时,它获得了某些收益(例如,利息,付款),但也承担了一定的风险/成本。确定最优资源分配需要使总体正指标最大化,并且使负指标控制在一定限度内。这是具有挑战性的,因为决策变量在数量上是巨大的。例如,具有合理规模的资源管理平台可能同时支持上千台资源主机(所有者),并且同时服务上千万的借方。确定平台的最优资源分配计划需要确定数十亿个决策变量(借方数乘以资源请求数)的值。更糟糕的是,寻找最优分配解是一个NP难问题。因此,使用标准优化技术来确定哪个资源请求应该分配给哪台主机或由哪台主机提供服务是不切实际的。
[0003]现有的资源管理平台基于简单的分而治之方法来确定大规模资源应用问题的解决方案,其将一定数量的借方分成若干区块,从而使目标函数可分离。然而,这些方法是基于如下假设,即借方区块是同质的并且约束可以均匀分布在区块之间。然而,在实际应用中,借方区块的同质性通常不成立。因此,强制分离目标函数会使最终解远非最优。
[0004]本公开描述了一种基于乘子的交替方向法(ADMM)的解决方案,用于寻找利用约束进行大规模资源分配问题的接近最优解,以应对上述挑战。

技术实现思路

[0005]本说明书中的各种实施例可以包括用于在大规模系统中确定具有各种约束的最优资源分配的系统、方法和非瞬态计算机可读介质。
[0006]根据一个方面,提供了一种用于确定利用各种约束进行大规模资源分配的最优解的方法。该方法可以包括:通过计算机设备获取针对多个主计算机设备所托管资源的多个资源请求;通过所述计算机设备构造用于将多个资源请求分配给多个主计算机设备的目标和一个或多个约束,其中,所述目标包括多个决策变量,每个所述决策变量指示是否将资源请求分配给主计算机设备进行服务,并且所述一个或多个约束包括多个决策变量的一个或多个不等式;通过所述计算机设备将所述一个或多个约束中的一个或多个不等式转换为所述多个决策变量的一个或多个等式;通过所述计算机设备将所述一个或多个等式合并到所述目标中以获得新的目标;通过所述计算机设备将所述新目标分成多个子目标;通过所述计算机设备生成与所述多个子目标对应的多个并行处理任务,以获取所述多个决策变量的值;和通过所述计算机设备根据所述多个决策变量的值向所述多个主计算机设备发送指令以执行多个资源请求。
[0007]在一些实施例中,所述多个并行处理任务中的每一个处理任务包括基于乘子的交
替方向法(ADMM)的迭代,以求解相应的子目标。
[0008]在一些实施例中,生成与所述多个子目标对应的多个并行处理任务以获得所述多个决策变量的值,包括:通过所述计算机设备生成聚合任务,以聚合所述多个并行处理任务的结果,从而获得所述多个决策变量的值。
[0009]在一些实施例中,在将指令发送到所述多个主计算机设备之前,该方法还包括:通过所述计算机设备确定所述多个决策变量的值是否收敛;以及响应于所述多个决策变量的值是收敛的,执行所述指令的发送。
[0010]在一些实施例中,通过将所述一个或多个不等式转换成所述多个决策变量的一个或多个等式来对所述一个或多个约束进行转换,包括:对于所述一个或多个不等式中的每一个不等式,在该不等式的左手侧添加辅助变量以成为等式,其中,每个不等式的左手侧包括矩阵与所述多个决策变量的乘积。
[0011]在一些实施例中,所述多个子目标中的每一个子目标包括:一个或多个拉格朗日乘子、辅助变量和所述多个决策变量的子集。并且,所述多个并行处理任务中的每一个处理任务实现迭代过程,包括:根据所述一个或多个拉格朗日乘子和所述辅助变量,更新所述多个决策变量的子集的值;根据所述多个决策变量的子集的更新后的值和所述一个或多个拉格朗日乘子,更新所述辅助变量;和根据所述多个决策变量的子集的更新后的值和更新后的所述辅助变量,更新所述一个或多个拉格朗日乘子。
[0012]在一些实施例中,将所述一个或多个等式合并到所述目标中以获得新目标,包括:对于所述一个或多个等式中的每一个等式,将包括该等式的左手侧和右手侧之间平方差的因子添加到所述目标中,其中,每个等式的左手侧包括矩阵与所述多个决策变量的乘积,而每个等式的右手侧包括常量。
[0013]在一些实施例中,生成与所述多个子目标对应的多个并行处理任务,包括:在MapReduce编程框架下,生成多个映射任务,以并行求解所述多个子目标。
[0014]在一些实施例中,所述多个映射任务中的每一个映射任务包括二次规划过程。
[0015]在一些实施例中,生成与所述多个子目标对应的多个并行处理任务,包括:在一个或多个图形处理单元(GPU)上生成多个线程,以并行求解所述多个子目标。
[0016]在一些实施例中,所述一个或多个约束包括由多个主计算机设备配置的一个或多个风险约束。
[0017]在一些实施例中,所述多个子目标中的每一个子目标包括所述多个决策变量的子集,并且所述多个映射任务中的每一个映射任务确定相应子目标中的子集。
[0018]根据其它实施例,一种用于确定利用各种约束进行大规模资源分配的最优解的系统,其配置有可由一个或多个处理器执行以使系统执行任何前述实施例的方法的指令。
[0019]根据其它实施例,一种非瞬态计算机可读存储介质,其配置有可由一个或多个处理器执行以使所述一个或多个处理器执行任何前述实施例的方法的指令。
[0020]本说明书公开的实施例具有一个或多个技术效果。利用约束进行大规模资源分配可以被表述为线性或非线性目标函数的优化问题。现有的分而治之的解决方案可以用于解决线性目标函数的优化问题,但无法解决那些非线性目标函数的问题。这是因为,非线性使得无法将优化问题分成更小的问题(例如,非线性目标函数包括交叉借方决策变量(一个借方的决策变量乘以另一个借方的决策变量),并因此无法分解为更小的目标函数)。在一些
实施例中,所述方法适用于可表述为线性和非线性目标函数中任一的大规模资源分配问题。例如,可以通过使用精心设计的矩阵消除所有交叉借方决策变量来转换目标函数,从而使目标函数中剩余的决策变量可分离。在一些实施例中,在转换目标函数后,采用例如MapReduce的并行处理框架将目标函数分为多个映射任务,这些映射任务并行地求解优化问题,然后经由减少任务进行聚合以获得决策变量的最终值。然后,可以使用这些决策变量来确定将哪个借方分配给哪个资源主机进行服务(例如,提供所请求的资源)。在一些实施例中,目标函数的转换将生成新的目标函数,以符合通过算子的交替方向法(ADMM)算法可求解的格式。随后,可以将新的目标函数分解为多个子目标函数,这些子目标函数分别本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种计算机实现的方法,包括:通过计算机设备获取针对由多个主计算机设备所托管资源的多个资源请求;通过所述计算机设备构造目标和一个或多个约束,以将所述多个资源请求分配给所述多个主计算机设备,其中,所述目标包括多个决策变量,每个所述决策变量指示是否将资源请求分配给主计算机设备进行服务,并且所述一个或多个约束包括所述多个决策变量的一个或多个不等式;通过所述计算机设备将所述一个或多个约束中的所述一个或多个不等式转换为所述多个决策变量的一个或多个等式;通过所述计算机设备将所述一个或多个等式合并到所述目标中以获得新目标;通过所述计算机设备将所述新目标分成多个子目标;通过所述计算机设备生成与所述多个子目标对应的多个并行处理任务,以获取所述多个决策变量的值;和通过所述计算机设备根据所述多个决策变量的值向所述多个主计算机设备发送指令以执行所述多个资源请求。2.根据权利要求1所述的方法,其中,所述多个并行处理任务中的每一个处理任务包括基于乘子的交替方向法(ADMM)的迭代,以求解相应的子目标。3.根据权利要求1所述的方法,其中,所述生成与所述多个子目标对应的多个并行处理任务,以获取所述多个决策变量的值,包括:通过所述计算机设备生成聚合任务,以聚合所述多个并行处理任务的结果,从而获取所述多个决策变量的所述值。4.根据权利要求1所述的方法,其中,向所述多个主计算机设备发送所述指令,进一步包括:通过所述计算机设备确定所述多个决策变量的值是否收敛;和响应于所述多个决策变量的值已收敛,执行所述指令的发送。5.根据权利要求1所述的方法,其中,将所述一个或多个不等式转换为所述多个决策变量的一个或多个等式,包括:对于所述一个或多个不等式中的不等式,在所述不等式的左手侧添加辅助变量以成为等式,其中,所述不等式的左手侧包括矩阵与所述多个决策变量的乘积。6.根据权利要求5所述的方法,其中,所述多个子目标中的每一个子目标包括:一个或多个乘子、所述辅助变量、和所述多个决策变量的子集,并且所述多个并行处理任务中的每一个处理任务实现迭代过程,包括:根据所述一个或多个乘子和所述辅助变量,更新所述多个决策变量的所述子集的值;根据所述多个决策变量的所述子集的更新后的值和所述一个或多个乘子,更新所述辅助变量;并且根据所述多个决策变量的所述子集的更新后的值和更新后的所述辅助变量更新所述一个或多个乘子。7.根据权利要求1所述的方法,其中,将所述一个或多个等式合并到所述目标中以获得新目标,包括:
对于所述一个或多个等式中的每一个等式,将包括该等式的左手侧和右手侧之间平方差的因子添加到所述目标中,其中,每个所述等式的左手侧包括矩阵与所述多个决策变量的乘积,并且每个所述等式的右手侧包括常量。8.根据权利要求1所述的方法,其中,所述生成与所述多个子目标对应的多个并行处理任务,包括:在MapReduce编程框架下,生成多个映射任务以并行求解所述多个子目标。9.根据权利要求8所述的方法,其中,所述多个映射任务中的每一个映射任务包括二次规划过程。10.根据权利要求1所述的方法,其中,生成与所述多个子目标对应的多个并行处理任务,包括:在一个或多个图形处理单元(GPU)上创建多个线程,以并行求解所述多个子目标。11.根据权利要求1所述的方法,其中,所述一个或多个约束包括由所述多个主计算机设备配置的一个或多个风险约束。12.根据权利要求1所述的方法,其中,所述多个子目标中的每一个子目标包括所述多个决策变量的子集,并且所述多个映射任务中的每一个映射任务确定相应所述子目标中的所述子集。13.一种系统,包括一个或多个处理器以及与所述一个或多个处理器耦合且配置有指令的一个或多个非瞬态计算机可读存储介质,所述指令能够被所述一个或多个处理器执行以使所述系统执行操作,所述操作包括:获取针对多个主计算机设备所托管资源的多个资源请求;构造...

【专利技术属性】
技术研发人员:奇峰华致刚周俊
申请(专利权)人:支付宝杭州信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1