结合二分图匹配方法与约束求解器的在线多目标资源分配方法

文档序号:26587913发布日期:2021-09-10 19:55阅读:136来源:国知局
结合二分图匹配方法与约束求解器的在线多目标资源分配方法

1.本发明涉及资源分配技术领域,尤其涉及一种结合二分图匹配方法与约束求解器的在线多目标资源分配方法。


背景技术:

2.需要进行使用分配算法的原因是待分配的资源有限,要合理进行资源分配。以一个实例说明,比如为用户分配服务器资源,服务器具有的内存、带宽、计算资源是有限的,用户和服务器有位置信息只有当用户在服务器一定距离之内才能进行分配,需要找到一种方法使用更少的服务器为更多的用户提供服务。这一类问题可以理解为可变大小的向量装箱问题(vsvbp),与普通的向量装箱问题(vbp)相比,该问题每个箱子的“容量”不一定相同。在解决这类问题时,首先确定问题模型,包括分配的两方实体:持有资源实体与请求资源实体,及其特征包括位置、可分配范围等,资源种类、数量,分配最终优化目标;然后明确线性规模问题模型,使用约束求解器对具体问题进行求解,得到分配结果。
3.使用现有技术中的方法可以成功应用于各种分配问题,但这种方法还存在许多的不足。首先该方法为一种离线方法,即分配算法在分配之前就已经知道全部信息,这样进行分配可以得到更好的结果,但与现实情况不符。在现实中一般为在线问题,分配的两方实体有不同的到达时间与离开时间,即只有在一定时间范围才能进行分配。只有当实体到达时算法才知道其相关信息。其次,该方法没有考虑多目标的优化。即除了分配数量外,对其他的特征没有进行优化,可能得到单一目标结果较好,但整体不够理想的分配结果。例如在具体问题中,没有加入对位置信息的优化,可能导致分配完成时分配数量较多但总距离过大的情况。


技术实现要素:

4.根据现有技术存在的问题,本发明公开了一种结合二分图匹配方法与约束求解器的在线多目标资源分配方法,具体包括如下步骤:
5.读取资源持有者集合s
k
‑1={s1,s2,...,s
m
}和资源请求者集合u
k
‑1={u1,u2,...,u
n
};
6.新到达的实体集合与逾期实体集合更新当前可用实体集合持有资源实体集合与请求资源实体集合
7.如果新到达的请求资源实体可以全部直接使用贪婪方法分配给附近的持有资源实体,此时的逾期实体并不多不需要重新优化分配时,直接进行就近分配,如果逾期实体数量超过设定阈值则采用二分图匹配方法得到最大分配分数;
8.使用约束求解器进行多目标优化得到分配结果。
9.进一步的,所述采用二分图匹配方法得到最大分配分数具体采用如下方式:
10.设每个服务器或者用户是一个节点,使用距离计算分配分数作为边上权重,距离近的分数高、距离远的分数低、不能分配的分数为0,从而建立分数矩阵;
11.将该矩阵输入匈牙利算法即可最终得到分数最高的分配结果。
12.由于采用了上述技术方案,本发明提供的一种结合二分图匹配方法与约束求解器的在线多目标资源分配方法,我们使用在每一个时刻在可用实体集合中添加新到达的实体移除逾期的实体得到实现解决在线分配问题的方法,与传统的方法不同,传统的方法大多是离线方法,并不能很好地解决现实问题,而我们的方法可以在不同的实体动态地到达与离开时进行资源分配。此外我们使用二分图匹配方法结合约束求解器的方法解决多目标优化问题。传统的单目标优化方法,优化到最后时往往使用很长的时间才能取得较少的优化结果,因此可以舍弃很小的一部分单目标的优化结果进行多目标优化,使多个目标都能得到较好的结果。而仅进行单目标的优化时也可以使用二分图匹配方法进行分配,可以更快地得到分配结果。
附图说明
13.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
14.图1为本发明方法的流程图;
15.图2为本发明方法的实施例示意图;
16.图3为本发明方法的实施例示意图。
具体实施方式
17.为使本发明的技术方案和优点更加清楚,下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚完整的描述:
18.如图1所示的一种结合二分图匹配方法与约束求解器的在线多目标资源分配方法,具体采用如下方式:首先介绍实体的概念,实体分为资源持有者与资源请求者两种,以一个具体的情况举例,如图2所示。假设如上图所示在某一时刻,用k表示,有服务器s1和s2;用户u1,u2,u3,u4。用户需要请求服务器的资源进行上网、计算数据等服务。假设目前已经进行分配,s1为u3,u4提供服务;s2为u1,u2提供服务。服务器为持有资源实体或者说资源持有者,则当前服务器s
k
={s1,s2}。每一个服务器有一个位置信息用经纬度表示l
s
={l1,l2};有一个可分配资源的覆盖范围c={c1=10,c2=8}其值为半径,在图中表现为以服务器为中心虚线画的圆,服务器的资源只能分配给在圆中的用户;服务器持有资源r
s
={r1,r2},其中每一个服务器持有比如cpu、内存、网络带宽等资源,举例服务器s1有资源r1={10,20,40}意为服务器有10单位的cpu资源、20单位的内存资源、40单位的网络带宽资源。
19.用户为请求资源实体,或者说资源请求者。则当前用户u
k
={u1,u2,u3,u4},类似的有位置特征l
u
={l1,l2,l3,l4}。请求资源集合r
u
={r1,r2,r3,r4},比如用户u1请求资源r1={1,3,4}(与服务器s1持有的资源r1并不相同)。
20.在这种情况下,服务器会一直存在,而用户可能会出现或离开(过期)。如图3所示,时间到下一时刻k+1。进行流程中的:1.移除逾期实体,2.新请求资源实体到达。有两种情况会造成实体的新增(加号)与逾期(叉)。
21.首先是用户移动,用户可能有走出服务器服务范围如用户u3,这种情况s1无法继续提供资源,之后可能存在其他服务器对其提供资源(未画出)。与其相反的是用户u5由其他位置进入s1的服务范围。
22.其次是用户主动或被动新增与断开请求。如断开请求:用户u1可能服务时间过长而被动的被服务器断开请求链接,或者服务完成用户主动断开链接。如新增请求:用户u6一直存在s2范围内,之前并未进行请求,现在有资源的需求。
23.现在进行3.获取当前时刻全部可用持有资源实体与可用请求资源实体。可以看出因此
24.由于我给出的实例没有服务其的新增或过期,服务器s
k+1
不变。当然如果服务器故障或者有新建设的服务器投入使用,服务器集合也会更改。
25.进一步的,分配有几个优化目标,和约束。
[0026][0027][0028]
subject to:
[0029][0030][0031][0032][0033]
第1行,最小化优化目标,可以是距离,位置熵等,自己进行设定。
[0034]
第2行,最小化使用资源请求者数量,这个实例就是使用最少的服务器。
[0035]
第3行,subject to满足一下约束
[0036]
第4行,分配给服务器的全部用户的请求资源之和不能大于服务器持有资源数量
[0037]
第5行,用户与服务器距离小于服务器服务半径
[0038]
第6行,一个用户只能向一个服务器请求资源(服务器没有约束,服务器可以为多个用户提供服务)
[0039]
第7行,总分配分数达到assign_num
[0040]
如图3所示,首先将逾期用户占有的资源还给服务器。之后判断是否可以直接将u5分配给s1,将u6分配给s2,如果可以直接执行6.进行分配并进入下一时刻。
[0041]
如果逾期用户过多或无法直接进行分配(一般是服务器资源不够),则进行4.计算分配分数(分配分数可以由距离或者其他指标计算,如距离越短分数越高)矩阵,使用二分图匹配方法得到最大分配分数、5.使用约束求解器进行多目标优化得到分配结果、6.进行
分配。其中4步的二分图匹配方法使用匈牙利算法,这是一个匹配的常用算法,可以得到目标分配分数assign_num。但匈牙利算法是单目标优化,难以完成多目标优化,因此步骤5使用约束求解器可以根据输入的数据与约束自行计算出多目标优化结果。这两步对现有的算法进行结合。
[0042]
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1