1.本公开涉及计算机技术领域,尤其涉及一种资源调度方法、装置、电子设备及存储介质。
背景技术:2.目前在不同的应用场景中,例如云计算和无线通信行业的资源部署、服务的放置以及小基站的休眠控制等,受成本、能耗、资源等限制,均存在一个需要解决的共性问题,即在一个大类中选取一部分最优解进行调度。
3.但是,由于在上述应用场景中,每个资源、服务和基站的选择会影响其他资源、服务和基站的选择,这种相互影响具有不确定性,因此,最优解无法通过分解成为子问题的方法来获得。并且最优解的时间复杂度比较高,这会给计算带来很大的挑战。
4.基于上述原因和目前的计算方法,无法高效地获得最优解,无法实现高效地调度充分利用资源,减少能耗。
5.需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
技术实现要素:6.本公开的目的在于提供一种资源调度方法、装置、电子设备及存储介质,至少在一定程度上克服由于相关技术的最优解计算效率低的问题。
7.本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
8.根据本公开的一个方面,提供一种资源调度方法,包括:
9.根据资源调度任务计算基因之间的影响关系值,获得基因关系矩阵,其中,所述基因表示待调度的目标资源,所述基因关系矩阵是由每两个所述待调度的目标资源之间的影响关系值组成;
10.根据所述基因关系矩阵构建染色体基因序列,其中,所述染色体基因序列表示所述待调度的目标资源根据所述影响关系值大小的排列方式;
11.对所述染色体基因序列进行编码;
12.对染色体上的基因进行赋值,赋值后的染色体组成初始化种群,其中,所述初始化种群表示多种资源调度方案的初始化组合;
13.根据预设适应度函数评估所述初始化种群中每个个体的个体适应度,其中,所述个体表示资源调度方案;
14.根据所述每个个体的个体适应度选择遗传个体,其中,所述遗传个体表示可选的资源调度方案;
15.利用所述遗传个体中的需配对染色体交换基因,获得新遗传个体,其中,所述新遗传个体表示新的资源调度方案;
16.对所述新遗传个体的染色体编码序列上的基因进行变异,得到遗传种群,所述遗传种群表示多种新的资源调度方案的组合;
17.利用所述遗传种群进行进化,直到获得的进化后遗传种群满足预设终止条件,则获得最优种群,其中,所述最优种群表示最终资源调度方案;
18.根据所述最优种群进行资源调度。
19.在本公开一个实施例中,所述根据资源调度任务计算基因之间的影响关系值,获得基因关系矩阵,其中,所述基因表示待调度的目标资源,所述基因关系矩阵是由每两个所述待调度的目标资源之间的影响关系值组成,包括:
20.确定与所述预设适应度函数协同的关系计算方法;
21.利用所述关系计算方法计算具有直接影响关系的基因对之间的直接影响关系值;
22.根据所述直接影响关系值构建基因对直接关系图,其中,所述基因对直接关系图表示每两个具有直接关联的待调度的目标资源之间的连接图;
23.根据所述基因对直接关系图确定基因间路径,其中所述基因路径表示待调度目标资源之间的组合方式;
24.根据所基因间路径来确定任意基因对之间的影响关系值,其中,所述影响关系值包括所述直接影响关系值和间接影响关系值;
25.根据所述任意基因对之间的影响关系值构建基因关系矩阵。
26.在本公开一个实施例中,所述根据所述基因关系矩阵构建染色体基因序列,其中,所述染色体基因序列表示所述待调度的目标资源根据所述影响关系值大小的排列方式,包括:
27.对所述基因关系矩阵中所述基因对之间的影响关系值的大小进行排序;
28.确定所述基因关系矩阵中所述基因对之间的影响关系最大值,且所述影响关系最大值不为零;
29.将所述影响关系最大值对应的基因一号和基因二号加入到染色体基因序列链路中,其中,所述染色体基因序列链路表示所述待调度的目标资源的排列次序;
30.以所述基因一号在所述染色基因序列链路中的位置进行延伸,选择除所述基因二号外与所述基因一号之间的影响关系第二大值,且所述影响关系第二大值不为零;
31.将所述影响关系第二大值对应的基因三号加入所述基因一号在所述染色基因序列链路的延伸位置;
32.根据排序后的影响关系值的大小将剩余基因依次加入所述染色体基因序列链路中,获得对应的所述染色体基因序列。
33.在本公开一个实施例中,所述利用所述遗传个体中的需配对染色体交换基因,获得新遗传个体,其中,所述新遗传个体表示新的资源调度方案,包括:
34.根据交配原则确定需配对染色体,其中,所述需配对染色体表示可选的资源调度方案中待调度的目标资源的排列方式;
35.根据随机概率确定所述需配对染色体的交叉点,其中,所述交叉点为可选的资源调度方案中待调度的目标资源的位置;
36.按照所述交叉点将所述需配对染色体之间按照预设方式交换基因;
37.所述需配对染色体交换基因后,获得新遗传个体。
38.在本公开一个实施例中,所述预设方式包括单点交叉和两点交叉。
39.在本公开一个实施例中,所述方法还包括:
40.当所述进化次数达到预设次数后,确定新需配对染色体;
41.确定所述新需配对染色体中基因对的影响关系值最小的基因位置为新交叉点;
42.根据所述新交叉点进行基因交换。
43.在本公开一个实施例中,所述对染色体上的基因进行赋值,赋值后的染色体组成初始化种群,其中,所述初始化种群表示多种资源调度方案的初始化组合,包括:
44.在预设范围内选取随机数;
45.根据所选取的随机数对所述染色体上的基因进行赋值;
46.重复执行多次,直至产生预设规模的赋值后的染色体,所述所有赋值后的染色体组成所述初始化种群。
47.在本公开一个实施例中,所述根据所述每个个体的个体适应度选择遗传个体,其中,所述遗传个体表示可选的资源调度方案,包括:
48.获取所述每个个体的个体适应度大小;
49.根据所述每个个体的个体适应度从大到小的排列顺序选择预设数量的遗传个体。
50.在本公开一个实施例中,所述利用所述遗传种群进行进化,直到获得的进化后遗传种群满足预设终止条件,则获得最优种群,其中,所述最优种群表示最终资源调度方案,包括:
51.根据所述预设适应度函数评估所述新种群中每个个体的新个体适应度;
52.根据所述每个个体的新个体适应度选择第一遗传个体;
53.利用所述新遗传个体中的新需配对染色体交换基因,获得第二遗传个体;
54.对所述第二遗传个体的染色体编码序列上的基因进行变异,得到新遗传种群;
55.重复多次,直到获得的新遗传种群满足预设终止条件,则获得最优种群。
56.在本公开一个实施例中,所述预设终止条件为预设迭代次数。
57.根据本公开的另一个方面,提供一种资源调度装置,包括:
58.影响关系计算模块,用于根据资源调度任务计算基因之间的影响关系值,获得基因关系矩阵,其中,所述基因表示待调度的目标资源,所述基因关系矩阵是由每两个所述待调度的目标资源之间的影响关系值组成;
59.序列构建模块,用于根据所述基因关系矩阵构建染色体基因序列,其中,所述染色体基因序列表示所述待调度的目标资源根据所述影响关系值大小的排列方式;
60.编码模块,用于对所述染色体基因序列进行编码;
61.种群初始化模块,用于对染色体上的基因进行赋值,赋值后的染色体组成初始化种群,其中,所述初始化种群表示多种资源调度方案的初始化组合;
62.适应度评估模块,用于根据预设适应度函数评估所述初始化种群中每个个体的个体适应度,其中,所述个体表示资源调度方案;
63.个体选择模块,用于根据所述每个个体的个体适应度选择遗传个体,其中,所述遗传个体表示可选的资源调度方案;
64.交换模块,用于利用所述遗传个体中的需配对染色体交换基因,获得新遗传个体,其中,所述新遗传个体表示新的资源调度方案;
65.变异模块,对所述新遗传个体的染色体编码序列上的基因进行变异,得到遗传种群,所述遗传种群表示多种新的资源调度方案的组合;
66.进化模块,用于利用所述遗传种群进行进化,直到获得的进化后遗传种群满足预设终止条件,则获得最优种群,其中,所述最优种群表示最终资源调度方案;
67.调度模块,用于根据所述最优种群进行资源调度。
68.根据本公开的又一个方面,提供一种电子设备,包括:
69.处理器;以及
70.存储器,用于存储所述处理器的可执行指令;
71.其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述的资源调度方法。
72.根据本公开的再一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的资源调度方法。
73.本公开的实施例所提供的一种资源调度方法,首先在构造染色体的基因序列的时候,根据资源调度任务计算基因之间的影响关系值,获得基因关系矩阵,根据基因关系矩阵构建染色体基因序列,从而将影响关系较大的基因排列在一起。然后对染色体基因序列进行编码、初始化种群、评估所述初始化种群中每个个体的个体适应度、选择遗传个体、交换基因获得新遗传个体和对新遗传个体的基因进行变异得到遗传种群,然后利用遗传种群进行进化,直到满足预设终止条件,则获得最优种群,根据最优种群进行资源调度。其中,基因表示待调度的目标资源,基因关系矩阵是由每两个待调度的目标资源之间的影响关系值组成;所述染色体基因序列表示待调度的目标资源根据影响关系值大小的排列方式;初始化种群表示多种资源调度方案的初始化组合;个体表示资源调度方案;遗传个体表示可选的资源调度方案;新遗传个体表示新的资源调度方案;遗传种群表示多种新的资源调度方案的组合;最优种群表示最终资源调度方案。不同的待调度的目标资源之间存在着相互影响关系,上述方法实现了在调度目标资源时利用资源之间的影响关系,将影响关系大的待调度的目标资源排列在一起,能够在计算获得最终资源调度方案时,能够更快收敛得到最优解,更加高效地实现对资源的调度。
74.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
75.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
76.图1示出本公开一个实施例中一种资源调度方法的流程示意图;
77.图2示出本公开另一个实施例中一种资源调度方法的流程示意图;
78.图3示出本公开一个实施例中一种资源调度方法的边缘服务器的覆盖分布示意图;
79.图4示出本公开一个实施例中一种资源调度方法的边缘服务器的直接关系图;
80.图5示出本公开又一个实施例中一种资源调度方法的流程示意图;
81.图6示出本公开再一个实施例中一种资源调度方法的流程示意图;
82.图7示出本公开一个实施例中一种资源调度方法的判断框图;
83.图8示出本公开再一个实施例中一种资源调度方法的流程示意图;
84.图9示出本公开再一个实施例中一种资源调度方法的流程示意图;
85.图10示出本公开一个实施例中一种资源调度装置结构示意图。
具体实施方式
86.现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。
87.此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
88.本技术提供的方案是一种基于遗传算法的资源调度方法。为了便于理解,下面首先对本技术涉及到的几个名词进行解释。
89.遗传算法:是根据大自然中生物体进化规律而设计提出的。是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法。在求解较为复杂的组合优化问题时,相对一些常规的优化算法,通常能够较快地获得较好的优化结果。遗传算法已被人们广泛地应用于组合优化、机器学习、信号处理、自适应控制和人工生命等领域。
90.在本技术的一个实施例中,提供一种资源调度方法,如图1示出一种资源调度方法的流程示意图,上述方法包括:
91.s101,根据资源调度任务计算基因之间的影响关系值,获得基因关系矩阵,其中,所述基因表示待调度的目标资源,所述基因关系矩阵是由每两个所述待调度的目标资源之间的影响关系值组成;
92.具体地,本实施例适用于多种最优解获取,和最优资源调度的场景之中,例如,在云计算、通信等行业对资源的部署;服务器的放置开关、小基站的休眠与工作调度等场景中。此类场景均存在一个共性问题就是需要在一个大类中选一小部分进行调度工作。并且,每个资源、服务、基站的选择与否会影响爱他资源、服务、基站的选择,资源之间存在着相互影响。
93.在本实施例s101中,首先计算基因关系,基因指代的是待调度的资源,具体地例如边缘服务器、计算资源、基站等对应应不同的应用场景。因为基因之间是有关联关系的,如果一个基因的改变,会对其他基因的预设的个体适应度函数产生影响。基因关系的大小采用基因间的影响关系值来衡量,待调度的目标资源间的影响关系值越大等同于待调度的目标资源之间的关联关系大小。
94.s102,根据所述基因关系矩阵构建染色体基因序列,其中,所述染色体基因序列表示所述待调度的目标资源根据所述影响关系值大小的排列方式;
95.其中,染色体是基因的载体,染色体基因序列中包括排列着的基因,也就是待调度的目标资源排列着,排列的顺序根据待调度的目标资源之间的影响关系值大小来确定的。
96.在获得了基因关系矩阵之后,基因关系矩阵是二维的,染色体基因序列是一维的,则根据二维的矩阵去构建一维的序列,构建的染色体基因序列根据基因关系矩阵中的影响关系值大小将关系大的基因尽可地排列在一起。
97.s103,对所述染色体基因序列进行编码;
98.建立基因到现实问题(个体特征)映射关系,具体地,利用对基因资源的不同编码代表不同的待调度的目标资源。编码方法包含二进制、浮点、符号等编码方法。二进制编码由二进制符号0和1所组成的二值符号集;浮点法,是指个体的每个基因值用某一范围内的一个浮点数来表示。符号编码法是指个体染色体编码串中的基因值取自一个无数值含义、而只有代码含义的符号集如{a,b,c
…
}。最终的染色体表示为一个串编码。
99.s104,对染色体上的基因进行赋值,赋值后的染色体组成初始化种群,其中,所述初始化种群表示多种资源调度方案的初始化组合;
100.选择一个初始化种群群体,即包含不同的资源调度方案的一个初始的大类,利用这一大类的去求解最优解,从而进行调度。初始化种群的大小代表了其中包含的资源调度方案的数量。本实施例在初始阶段给染色体基因赋值,通常采用随机数的方法。如产生随机数,将随机数赋值给每个待调度的目标资源,从而生成一条条染色体,然后重复直到达到某一规模的多种资源调度方案的初始化组合。
101.s105,根据预设适应度函数评估所述初始化种群中每个个体的个体适应度,其中,所述个体表示资源调度方案;
102.根据预设适应度函数评估群体中个体好坏的标准,确定每个资源调度方案是否能够留下来或者被淘汰,适应度值越小的个体越容易被淘汰。通常需要预先定义适应度函数,预设适应度函数适应于该预设的应用场景。从而根据个体适应度对每一种资源调度方案的好坏程度进行评价。
103.s106,根据所述每个个体的个体适应度选择遗传个体,其中,所述遗传个体表示可选的资源调度方案;
104.确定了每一种资源调度方案的个体适应度之后,根据个体适应度选择资源调度方案较好的资源调度方案。选择后的较好的资源调度方案则作为可选的资源调度方案,来进行后续的基因交换和变异等流程。
105.s107,利用所述遗传个体中的需配对染色体交换基因,获得新遗传个体,其中,所述新遗传个体表示新的资源调度方案;
106.对上述挑选的遗传个体进行交配,其中相互配对的染色体按照某种方式相互交换其部分基因。也就是,将配对的可选的资源调度方案中的待调度的目标资源进行交换,交换后两个配对的可选的资源调度方案则形成两个新的资源调度方案。
107.交换的方式包括:单点交叉、两点交叉、均匀交叉和算术交叉等方法,具体的交换方式可以根据实际需求去设定和选择。
108.s108,对所述新遗传个体的染色体编码序列上的基因进行变异,得到遗传种群,所
述遗传种群表示多种新的资源调度方案的组合;
109.正是由于变异,才带来种群的多样性,变异后同样获得新的个体,具体地为,通过上述步骤获得新的资源调度方案后,对新的资源调度方案中的待调度的目标资源的排列中的某待调度的目标资源进行替换,例如可以求反,以基站的调度为例,原本的其中待调度的目标基站的排列组成的新的资源调度方案为m=101011,字符串中的每一位代表一个位置的基站, 1标识表示基站的启用,0标识基站的关闭,对m中的第一个位置的基站进行变异,将1替换为0,获得n=001011。可选的,可以根据变异概率对变异的位置进行选择。
110.s109,利用所述遗传种群进行进化,直到获得的进化后遗传种群满足预设终止条件,则获得最优种群,其中,所述最优种群表示最终资源调度方案;
111.将获得的多种新的资源调度方案后,利用获得的新的资源调度方案组合,继续计算其个体适应度,重复执行s105到s108的步骤,不断地产生更加优化的新的资源调度方案组合。之后进行判断是否满足了预设终止条件,例如迭代次数是否达到,若没有达到则继续重复执行s105到s108 的步骤,若达到则输出最终的资源调度方案。
112.s110,根据所述最优种群进行资源调度。
113.其中,最优种群即最终的资源调度方案,则是本实施例所要得到的最优的一种资源的调度方案。例如以基站的调度为例,可以在最终获得的多种最终资源调度方案中,选择个体适应度最大的一种最终的资源调度方案,例如p=110101,那么将按照p,将一号、二号、四号和六号基站启动,关闭三号五号基站。
114.在本实施例中,计算待调度的目标资源之间的影响关系值,获得待调度的目标资源的关系矩阵,然后将按照影响关系值大小排列待调度的目标资源,将影响关系较大的待调度目标资源放在一起。之后进行编码、种群初始化、个体适应度计算、选择遗传个体、交叉、变异以及进化等步骤,最终获得最终的资源调度方案。本实施例可以加快获得最终的资源调度方案的效率,将影响关系大的目标资源排列在一起,有利于更加快速达到计算的收敛得到最优的近似解,提高资源调度的效率。具体在不同的应用场景中,通过本实施例在服务器的部署场景中,可以通过优化边缘服务器的部署位置,以及边缘服务器的放置,能够使更多的用户享受边缘加速服务,提高边缘资源的利用率,提高用户的服务体验;可以优化资源的分配调度策略,提升资源整体的使用效率;可以决策小基站休眠状态,在不影响用户接入使用的情况下,高效调度基站,减少基站的整体能耗。
115.在本技术一个示例性实施例中,如图2所示一种资源调度方法的流程示意图,所述根据资源调度任务计算基因之间的影响关系值,获得基因关系矩阵,其中,所述基因表示待调度的目标资源,所述基因关系矩阵是由每两个所述待调度的目标资源之间的影响关系值组成,包括:
116.s201,确定与所述预设适应度函数协同的关系计算方法;
117.s202,利用所述关系计算方法计算具有直接影响关系的基因对之间的直接影响关系值;
118.s203,根据所述直接影响关系值构建基因对直接关系图,其中,所述基因对直接关系图表示每两个具有直接关联的待调度的目标资源之间的连接图;
119.s204,根据所述基因对直接关系图确定基因间路径,其中所述基因路径表示待调度目标资源之间的组合方式;
120.s205,根据所述基因间路径来确定任意基因对之间的影响关系值,其中,所述影响关系值包括所述直接影响关系值和间接影响关系值;
121.s206,根据所述任意基因对之间的影响关系值构建基因关系矩阵。
122.本实施例由于基因的改变会影响其他基因对个体适应度函数的贡献,基因之间是存在关系的,因此需要进行基因关系的计算,也就是待调度的目标资源之间的关系计算。首先选择适合的关系计算方法,该计算方法需要跟预设适应度函数协同,计算直接具有影响关系的待调度的目标资源对 (ni,nj)间影响关系大小
123.以边缘服务器的部署为例,进行描述,有四个边缘服务器,受限于资源、成本和能耗,只能选择其中两个进行部署,要求覆盖的人群数量最大,示意图如图3所示为边缘服务的覆盖分布示意图。圆圈代表边缘服务器的覆盖范围,三角代表用户。影响关系用重叠覆盖数量/覆盖数量计算,构建基因对直接关系图,边代表基因间具有影响关系,权重代表影响关系大小。通过深度搜素或这广度搜素计算ni,nj间所有可达路径代表第k条可达路径。
124.point
l
(l=0,...,m)表示上依次经过的基因,其中point0=ni, pointm=nj,基因间的影响关系为:
[0125][0126]
通过上述公式1可以计算任意基因对之间的影响关系。
[0127]
在上述例子中:如图所4示为边缘服务器的直接关系图,通过图4示出的边缘服务器之间的直接关系,可以获得路径,以a和d为例,得到的路径有:a-b-d和a-b-c-d。可以计算获得
[0128][0129]
然后可以获得表1示出的内容:
[0130]
表1
[0131][0132]
据此,可以获得由上述影响关系值构成关于边缘服务器的的影响关系值构建边缘服务器的关系矩阵,在此示例中的基因关系矩阵即为基因关系矩阵。
[0133]
在本技术一个示例性实施例中,如图5一种资源调度方法的流程示意图,所述根据所述基因关系矩阵构建染色体基因序列,其中,所述染色体基因序列表示所述待调度的目标资源根据所述影响关系值大小的排列方式,包括:
[0134]
s501,对所述基因关系矩阵中所述基因对之间的影响关系值的大小进行排序;
[0135]
s502,确定所述基因关系矩阵中所述基因对之间的影响关系最大值,且所述影响关系最大值不为零;
[0136]
s503,将所述影响关系最大值对应的基因一号和基因二号加入到染色体基因序列链路中,其中,所述染色体基因序列链路表示所述待调度的目标资源的排列次序;
[0137]
s504,以所述基因一号在所述染色基因序列链路中的位置进行延伸,选择除所述基因二号外与所述基因一号之间的影响关系第二大值,且所述影响关系第二大值不为零;
[0138]
s505,将所述影响关系第二大值对应的基因三号加入所述基因一号在所述染色基因序列链路的延伸位置;
[0139]
s506,根据排序后的影响关系值的大小将剩余基因依次加入所述染色体基因序列链路中,获得对应的所述染色体基因序列。
[0140]
具体地,通过上述获得基因关系矩阵后,基因关系矩阵是二维的,需要根据二维矩阵构建一维的染色体基因序列,将影响关系大的基因尽量排列在一起,以方便后续计算快速达到收敛。
[0141]
按照基因关系矩阵中的影响关系值,具体的获取流程包括:1)选取基因关系矩阵中最大值不为0对应的两个基因,要求这两个基因ni,nj不在染色体基因序列中,将其加入到基因序列链路link中。
[0142]
2)若能选出基因ni,nj,以基因序列链路为基础向两边延伸。选择与基因ni亲和性最大值不为0的基因nk,且该基因不在染色体基因序列与基因序列链路link中,将其插入到基因序列链路link链头,重复直到选不出nk。同理,以nj为起点延伸,将其插入到链尾。
[0143]
3)将基因序列链路link加入到染色体基因序列中,重复步骤2)。
[0144]
4)如果基因序列链路link为空,将剩下的基因依次加入到染色体基因序列中。
[0145]
5)得到最终染色体基因序列。
[0146]
按基因关系构建染色体序列是为了在进化的交叉过程中尽可能保留优质基因片段,因此利用单点交叉或两点交叉对于染色体局部破坏较小的特性,达到高效获得最优解的效果。
[0147]
在具体示例中,以边缘服务器的部署为例,根据边缘服务器的关系矩阵构建边缘服务器的染色体基因序列的边缘服务器的排列次序,1)计算边缘服务器的关系矩阵得出边缘服务器b到边缘服务器a相关性最高,将边缘服务器a与边缘服务器b加入到边缘服务器的排列次序link1中, link1={a,b};2)计算与边缘服务器a和边缘服务器b相关性最高的为边缘服务器b到边缘服务器d,将边缘服务器d加入到link1中,得到 link2={a,b,d};3)计算与基因a与基因d相关性最高的为边缘服务器c到边缘服务器d,将边缘服务器c加入到link2中,得到link3={a, b,d,c}。4)将link3加入到边缘服务器的染色体基因序列中,最终构建的目标染色体基因序列为{a,b,d,c}。
[0148]
通过本实施例将待调度的目标资源按照影响关系大小排列,考虑到影响关系大小的影响,可以在计算过程中尽可能保留较优资源,从而使得对最优资源调度方案的获取更
加高效。
[0149]
在本技术一个示例性实施例中,如图6一种资源调度方法的流程示意图,所述利用所述遗传个体中的需配对染色体交换基因,获得新遗传个体,其中,所述新遗传个体表示新的资源调度方案,包括:
[0150]
s601,根据交配原则确定需配对染色体,其中,所述需配对染色体表示可选的资源调度方案中待调度的目标资源的排列方式;
[0151]
s602,根据随机概率确定所述需配对染色体的交叉点,其中,所述交叉点为可选的资源调度方案中待调度的目标资源的位置;
[0152]
s603,按照所述交叉点将所述需配对染色体之间按照预设方式交换基因;
[0153]
s604,所述需配对染色体交换基因后,获得新遗传个体。
[0154]
具体地,在选用遗传个体之后,用于产生新遗传个体,对两个不同的个体的相同位置的基因进行交换,从而产生新的个体。
[0155]
在资源调度方案中,确定可以对待调度的目标资源进行交叉,这一步是进行随机信息的交换,从而产生新的资源调度方案。
[0156]
具体地,需配对的染色体是来自不同的两种可选的资源调度方案中,其各自的待调度的目标资源的排列方式进行资源交换,本实施例采用随机概率确定交叉点的方式,来确定进行资源交换的位置,将该位置对应的待调度的目标资源进行交叉交换。
[0157]
在对于交叉点的选取过程中,通常采用随机概率的方式。可选的,在本技术实施例中,所述预设方式包括单点交叉和两点交叉。具体的预设的交换基因的方式包含:单点交叉、两点交叉、均匀交叉、算术交叉等方法。可以根据实际的场景应用需求进行设定。
[0158]
在本技术一个示例性实施例中,如图7一种资源调度方法的判断框图,所述方法还包括:
[0159]
s701,当所述进化次数达到预设次数后,确定新需配对染色体;
[0160]
s702,确定所述新需配对染色体中基因对的影响关系值最小的基因位置为新交叉点;
[0161]
s703,根据所述新交叉点进行基因交换。
[0162]
具体地,首先执行s704判断进化次数是否达到预设次数,若进化次数达到预设次数则执行步骤s701至步骤s703,若为达到预设次数则继续执行步骤s107。本实施例在完成一定进化次数后,采用优化后的交叉算子,对基因关系小的位置进行交叉,使算法能够更快收敛到近似最优解。
[0163]
交叉点的选取过程中,通常采用随机概率的方式,本实施例对交叉算子进行优化,交叉算子的优化考虑到基因之间影响关系,在完成一定进化次数后,选择基因关系小的点进行交叉,交叉点概率p:
[0164][0165]
其中可以根据迭代次数选择(0-1)取值;是归一化后的取值。
[0166]
通过上述对交叉点的选择,可以使得单点交叉或两点交叉对于染色体局部破坏较小的特性,在资源调度方案进化的交叉过程中,尽可能保留更加好的资源片段。其中预设次
数,可以根据实际应用场景进行预先的设定。
[0167]
利用待调度的目标资源的排列顺序优化了染色体交叉过程中的交叉算子,有利于好的待调度的目标资源片段在进化中保留,使算法能够更快收敛到近似最优解。
[0168]
在本公开一个实施例中,如图8所示一种资源调度方法的流程示意图,所述对染色体上的基因进行赋值,赋值后的染色体组成初始化种群,其中,所述初始化种群表示多种资源调度方案的初始化组合,包括:
[0169]
s801,在预设范围内选取随机数;
[0170]
s802,根据所选取的随机数对所述染色体上的基因进行赋值;
[0171]
s803,重复执行多次,直至产生预设规模的赋值后的染色体,所述所有赋值后的染色体组成所述初始化种群。
[0172]
具体地,例如,设定预设范围在0到255之间,在0-255之间堆积选择数字赋值给每一条染色体上的每一个待调度的目标资源,重复赋值,直至所赋值后的染色体组成预设的一定规模的种群。种群中包含多个个体,每个个体包含一定数量的染色体。
[0173]
在本技术一个示例性实施例中,所述根据所述每个个体的个体适应度选择遗传个体,其中,所述遗传个体表示可选的资源调度方案,包括:
[0174]
获取所述每个个体的个体适应度大小;
[0175]
根据所述每个个体的个体适应度从大到小的排列顺序选择预设数量的遗传个体。
[0176]
需要对在可选的资源调度方案中,确定每一个方案的个体适应度大小,对每一个方案进行评估,根据评估后的结果选择一定数量的几个分体适应度较高的方案。个体适应度越高,代表该资源调度方案越好。由此尽量保证较优的资源调度方案得以保留,
[0177]
在本技术一个示例性实施例中,如图9一种资源调度方法的流程示意图,所述利用所述遗传种群进行进化,直到获得的进化后遗传种群满足预设终止条件,则获得最优种群,其中,所述最优种群表示最终资源调度方案,包括:
[0178]
s901,根据所述预设适应度函数评估所述新种群中每个个体的新个体适应度;
[0179]
s902,根据所述每个个体的新个体适应度选择第一遗传个体;
[0180]
s903,利用所述新遗传个体中的新需配对染色体交换基因,获得第二遗传个体;
[0181]
s904,对所述第二遗传个体的染色体编码序列上的基因进行变异,得到新遗传种群;
[0182]
s905,重复多次,直到获得的新遗传种群满足预设终止条件,则获得最优种群。
[0183]
可选的,在本技术一个实施例中,所述预设终止条件为预设迭代次数。
[0184]
其中,预设终止条件可以为迭代次数,为了保证结果的可靠性来预先设定一定次数的迭代次数。其他的适应于应用场景的预设终止条件可以根据需求来自行设定。
[0185]
本实施例的进化过程实际上利用上述获得的新的资源调度方案,再去进行步骤s901的个体适应度评估,步骤s902的遗传个体的选择,此时选择后获得的遗传个体为第一遗传个体,第一遗传个体的数量根据上述在遗传个体选择过程中所需的数量来决定,然后执行步骤s903进行基因的交换,也就是待调度的目标资源的交换,然后进行步骤s904的基因的变异,不断重复着上述步骤,直到满足预设条件,则步骤s905将获得最终的资源调度方案。
[0186]
通过不断地进化过程,不断地将结果进行优化,最终获得最佳的资源调度方案。
[0187]
在本技术的另一个示例性实施例中,如图10一种资源调度装置结构示意图,提供一种资源调度装置1000,包括:
[0188]
影响关系计算模块1001,用于根据资源调度任务计算基因之间的影响关系值,获得基因关系矩阵,其中,所述基因表示待调度的目标资源,所述基因关系矩阵是由每两个所述待调度的目标资源之间的影响关系值组成;
[0189]
序列构建模块1002,用于根据所述基因关系矩阵构建染色体基因序列,其中,所述染色体基因序列表示所述待调度的目标资源根据所述影响关系值大小的排列方式;
[0190]
编码模块1003,用于对所述染色体基因序列进行编码;
[0191]
种群初始化模块1004,用于对染色体上的基因进行赋值,赋值后的染色体组成初始化种群,其中,所述初始化种群表示多种资源调度方案的初始化组合;
[0192]
适应度评估模块1005,用于根据预设适应度函数评估所述初始化种群中每个个体的个体适应度,其中,所述个体表示资源调度方案;
[0193]
个体选择模块1006,用于根据所述每个个体的个体适应度选择遗传个体,其中,所述遗传个体表示可选的资源调度方案;
[0194]
交换模块1007,用于利用所述遗传个体中的需配对染色体交换基因,获得新遗传个体,其中,所述新遗传个体表示新的资源调度方案;
[0195]
变异模块1008,对所述新遗传个体的染色体编码序列上的基因进行变异,得到遗传种群,所述遗传种群表示多种新的资源调度方案的组合;
[0196]
进化模块1009,用于利用所述遗传种群进行进化,直到获得的进化后遗传种群满足预设终止条件,则获得最优种群,其中,所述最优种群表示最终资源调度方案;
[0197]
调度模块1010,用于根据所述最优种群进行资源调度。
[0198]
本实施例提供的资源调度装置1000包括上述模块,通过上述影响关系计算模块1001、序列构建模块1002、编码模块1003、种群初始化模块 1004、适应度评估模块1005、个体选择模块1006、交换模块1007、变异模块1008、进化模块1009和调度模块1010,来计算待调度的目标资源之间的影响关系值,获得待调度的目标资源的关系矩阵,然后将按照影响关系值大小排列待调度的目标资源,将影响关系较大的待调度目标资源放在一起。之后进行编码、种群初始化、个体适应度计算、选择遗传个体、交叉、变异以及进化等步骤,最终获得最终的资源调度方案。本实施例可以加快获得最终的资源调度方案的效率,将影响关系大的目标资源排列在一起,有利于更加快速达到计算的收敛得到最优的近似解,提高资源调度的效率。
[0199]
通过上述模块实现上述资源调度方法。在此不再赘述。
[0200]
在本技术的又一个示例性实施例中,提供一种电子设备,包括:
[0201]
处理器;以及
[0202]
存储器,用于存储所述处理器的可执行指令;
[0203]
其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述的资源调度方法。
[0204]
本实施例提供的电子设备,通过处理器配置执行上述的资源调度方法。实现高效地资源调度,在此不再赘述。
[0205]
在本技术的再一个示例性实施例中,提供一种计算机可读存储介质,其上存储有
计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的资源调度方法。
[0206]
本实施例提供的电子设备,计算机程序被处理器执行上述的资源调度方法。实现高效地资源调度,在此不再赘述。
[0207]
需要注意的是,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
[0208]
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
[0209]
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是 cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
[0210]
在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。
[0211]
描述了根据本发明的实施方式的用于实现上述方法的程序产品,其可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0212]
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
[0213]
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0214]
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。
[0215]
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序
代码,所述程序设计语言包括面向对象的程序设计语言—诸如 java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
[0216]
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
[0217]
此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
[0218]
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是 cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施方式的方法。
[0219]
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本技术旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由所附的权利要求指出。