CN112256413A - 基于物联网的边缘计算任务的调度方法和装置 - Google Patents
基于物联网的边缘计算任务的调度方法和装置 Download PDFInfo
- Publication number
- CN112256413A CN112256413A CN202011110565.7A CN202011110565A CN112256413A CN 112256413 A CN112256413 A CN 112256413A CN 202011110565 A CN202011110565 A CN 202011110565A CN 112256413 A CN112256413 A CN 112256413A
- Authority
- CN
- China
- Prior art keywords
- task
- executed
- state vector
- artificial fish
- processing time
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/004—Artificial life, i.e. computing arrangements simulating life
- G06N3/006—Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请提供一种基于物联网的边缘计算任务的调度方法和装置,该方法包括,获取任务队列中每一个待执行任务的任务信息;待执行任务的任务信息,包括,待执行任务的任务数据量和待执行任务的每单位数据处理时间;以任务队列的总处理时间最短为目标,利用人工鱼群算法进行策略优化,得到任务队列的目标调度策略;目标调度策略包括任务队列中每一个待执行任务的分配比例;针对任务队列的每一个待执行任务,将待执行任务的任务数据中基于待执行任务的分配比例划分的一部分数据分配至云服务器,并将待执行任务的任务数据中的另一部分数据分配至边缘节点,使云服务器和边缘节点处理分配的数据。
Description
技术领域
本发明涉及物联网技术领域,特别涉及一种基于物联网的边缘计算任务的调度方法和装置。
背景技术
随着国产操作***的发展,我国掀起了另一轮物联网操作***的热潮,国产物联网操作***技术研究持续成为我国科技工作的热点问题。开展操作***在电力物联网环境中的应用和关键技术研究,具有重大的战略意义和实用价值。电力物联网业务所涉及的计算任务的数据量和处理的复杂度较高,仅使用物联网中的边缘节点处理这些计算任务的效果较差。
针对这一问题,计算卸载是一种有效的解决方案。计算卸载,是指,按一定比例将各个计算任务中需要处理的数据从边缘节点发送至云服务器,由云服务器和边缘节点共同承担计算任务的处理,这样可以充分利用云服务器和边缘节点的计算资源,缩短计算任务的处理时间。
但是,受网络传输速率,云服务器和边缘节点的可用资源,以及各个计算任务的复杂度的影响,在执行计算卸载时,任务队列中各个待执行的计算任务适宜的分配比例各不相同,而能够在短时间内为每一个待执行的计算任务确定合适的分配比例,又直接决定了任务队列中所有待执行的计算任务的总处理时间。
综上所述,为了提高物联网***的数据处理效率,目前亟需一种高效地确定计算卸载时的调度策略的方案。
发明内容
基于上述现有技术的缺点,本申请提供一种基于物联网的边缘计算任务的调度方法和装置,以提高物联网***的数据处理效率。
本申请第一方面提供一种基于物联网的边缘计算任务的调度方法,包括:
获取任务队列中每一个待执行任务的任务信息;其中,所述待执行任务的任务信息,包括,所述待执行任务的任务数据量和所述待执行任务的每单位数据处理时间;
以所述任务队列的总处理时间最短为目标,利用人工鱼群算法进行策略优化,得到所述任务队列的目标调度策略;其中,所述目标调度策略包括所述任务队列中每一个待执行任务的分配比例;
针对所述任务队列的每一个待执行任务,将所述待执行任务的任务数据中基于所述待执行任务的分配比例划分的一部分数据分配至云服务器,并将所述待执行任务的任务数据中的另一部分数据分配至边缘节点,使所述云服务器和所述边缘节点处理分配的数据。
可选的,所述以所述任务队列的总处理时间最短为目标,利用人工鱼群算法进行策略优化,得到所述任务队列的目标调度策略,包括:
将迭代次数设定为1;
定义多个人工鱼个体,并为每一个所述人工鱼个体随机的设定初始的状态向量;其中,所述状态向量的维数与所述任务队列中待执行任务的数量一致;所述状态向量的每一个分量,用于指示对应的所述待执行任务的分配比例;
对每一个所述人工鱼个体执行N次状态向量更新操作;其中,N为预设的正整数,所述状态向量更新操作指代,觅食操作,聚群操作,追尾操作和随机操作中的任意一种;
在每一个所述人工鱼个体均执行N次状态向量更新操作后,针对每一个所述人工鱼个体,计算所述人工鱼个体的状态向量所对应的总处理时间,并记录其中总处理时间最优的所述状态向量;
若已记录的状态向量不满足收敛条件,将所述迭代次数递增1,并返回执行所述为每一个所述人工鱼个体随机的设定初始的状态向量,直至已记录的状态向量满足收敛条件,或者所述迭代次数大于迭代次数上限。
可选的,对所述人工鱼个体执行觅食操作,包括:
为所述人工鱼个体随机选取多个备选状态向量;其中,每一个所述备选状态向量和所述人工鱼个体更新前的状态向量之间的距离均小于视野范围;
在所述多个备选状态向量中选择一个对应的总处理时间优于所述人工鱼个体更新前的状态向量的总处理时间的备选状态向量作为目标状态向量;
将所述人工鱼个体的状态向量更新为,位于所述更新前的状态向量和所述目标状态向量之间、且与所述更新前的状态向量的距离小于或等于移动步长的更新后的状态向量。
可选的,对所述人工鱼个体执行聚群操作,包括:
确定每一个对应的状态向量和所述人工鱼个体的更新前的状态向量的距离小于视野范围的其他人工鱼个体;
根据确定的每一个其他人工鱼个体当前的状态向量,计算得到中心状态向量;
若所述中心状态向量符合拥挤度条件,将所述中心状态向量确定为目标状态向量;
将所述人工鱼个体的状态向量更新为,位于所述更新前的状态向量和所述目标状态向量之间、且与所述更新前的状态向量的距离小于或等于移动步长的更新后的状态向量。
可选的,对所述人工鱼个体执行追尾操作,包括:
在每一个对应的状态向量和所述人工鱼个体的更新前的状态向量小于或等于视野范围的其他人工鱼个体中,确定出状态向量对应的总处理时间最优的人工鱼个体;
若所述最优人工鱼个体当前的状态向量符合拥挤度条件,将所述最优人工鱼个体当前的状态向量确定为目标状态向量;
将所述人工鱼个体的状态向量更新为,位于所述更新前的状态向量和所述目标状态向量之间、且与所述更新前的状态向量的距离小于或等于移动步长的更新后的状态向量。
可选的,对所述人工鱼个体执行随机操作,包括:
确定一个小于或等于移动步长的数值作为所述人工鱼个体的移动距离;
随机选取一个与所述人工鱼个体更新前的状态向量的距离等于所述移动距离的状态向量作为更新后的状态向量,并将所述人工鱼个体的状态向量更新为所述更新后的状态向量。
可选的,所述计算所述人工鱼个体的状态向量所对应的总处理时间,包括:
针对每一个待执行任务,基于所述人工鱼个体的状态向量中针对的待执行任务的分配比例以及所述针对的待执行任务的任务数据量,确定所述待执行任务的第一数据量和第二数据量;其中,所述第一数据量指代所述待执行任务的任务数据量中,分配至云服务器的数据量;所述第二数据量指代所述待执行任务的任务数据量中,分配至边缘节点的数据量;
针对每一个待执行任务,根据所述待执行任务的每单位数据处理时间,第一数据量和所述云服务器的可用计算资源,计算所述云服务器处理所述待执行任务的第一数据量的时间,并计算所述云服务器处理所述待执行任务的第一数据量的时间与所述第一数据量从所述边缘节点传输至所述云服务器的时间之和,得到所述待执行任务的云服务器处理时间;
针对每一个待执行任务,根据所述待执行任务的每单位数据处理时间,第二数据量和所述边缘节点的可用计算资源,计算所述边缘节点处理所述待执行任务的第二数据量的时间,得到所述待执行任务的边缘节点处理时间;
将每一个待执行任务的边缘节点处理时间和云服务器处理时间中最长的处理时间确定为所述待执行任务对应的任务处理时间;
将每一个待执行任务的任务处理时间累加,得到所述人工鱼个体的状态向量所对应的总处理时间。
本申请第二方面提供一种基于物联网的边缘计算任务的调度装置,包括:
获取单元,用于获取任务队列中每一个待执行任务的任务信息;其中,所述待执行任务的任务信息,包括,所述待执行任务的任务数据量和所述待执行任务的每单位数据处理时间;
优化单元,用于以所述任务队列的总处理时间最短为目标,利用人工鱼群算法进行策略优化,得到所述任务队列的目标调度策略;其中,所述目标调度策略包括所述任务队列中每一个待执行任务的分配比例;
分配单元,用于针对所述任务队列的每一个待执行任务,将所述待执行任务的任务数据中基于所述待执行任务的分配比例划分的一部分数据分配至云服务器,并将所述待执行任务的任务数据中的另一部分数据分配至边缘节点,使所述云服务器和所述边缘节点处理分配的数据。
可选的,所述优化单元包括:
计数单元,用于将迭代次数设定为1;
初始化单元,用于定义多个人工鱼个体,并为每一个所述人工鱼个体随机的设定初始的状态向量;其中,所述状态向量的维数与所述任务队列中待执行任务的数量一致;所述状态向量的每一个分量,用于指示对应的所述待执行任务的分配比例;
更新单元,用于对每一个所述人工鱼个体执行N次状态向量更新操作;其中,N为预设的正整数,所述状态向量更新操作指代,觅食操作,聚群操作,追尾操作和随机操作中的任意一种;
记录单元,用于在每一个所述人工鱼个体均执行N次状态向量更新操作后,针对每一个所述人工鱼个体,计算所述人工鱼个体的状态向量所对应的总处理时间,并记录其中总处理时间最优的所述状态向量;
判断单元,用于若已记录的状态向量不满足收敛条件,将所述迭代次数递增1,并触发所述初始化单元执行所述为每一个所述人工鱼个体随机的设定初始的状态向量,直至已记录的状态向量满足收敛条件,或者所述迭代次数大于迭代次数上限。
可选的,所述记录单元计算所述人工鱼个体的状态向量所对应的总处理时间时,具体用于:
针对每一个待执行任务,基于所述人工鱼个体的状态向量中针对的待执行任务的分配比例以及所述针对的待执行任务的任务数据量,确定所述待执行任务的第一数据量和第二数据量;其中,所述第一数据量指代所述待执行任务的任务数据量中,分配至云服务器的数据量;所述第二数据量指代所述待执行任务的任务数据量中,分配至边缘节点的数据量;
针对每一个待执行任务,根据所述待执行任务的每单位数据处理时间,第一数据量和所述云服务器的可用计算资源,计算所述云服务器处理所述待执行任务的第一数据量的时间,并计算所述云服务器处理所述待执行任务的第一数据量的时间与所述第一数据量从所述边缘节点传输至所述云服务器的时间之和,得到所述待执行任务的云服务器处理时间;
针对每一个待执行任务,根据所述待执行任务的每单位数据处理时间,第二数据量和所述边缘节点的可用计算资源,计算所述边缘节点处理所述待执行任务的第二数据量的时间,得到所述待执行任务的边缘节点处理时间;
将每一个待执行任务的边缘节点处理时间和云服务器处理时间中最长的处理时间确定为所述待执行任务对应的任务处理时间;
将每一个待执行任务的任务处理时间累加,得到所述人工鱼个体的状态向量所对应的总处理时间。
本申请提供一种基于物联网的边缘计算任务的调度方法和装置,包括:获取任务队列中每一个待执行任务的任务信息;以任务队列的总处理时间最短为目标,利用人工鱼群算法进行策略优化,得到任务队列的目标调度策略;目标调度策略包括任务队列中每一个待执行任务的分配比例;针对任务队列的每一个待执行任务,将待执行任务的任务数据中基于待执行任务的分配比例划分的一部分数据分配至云服务器,并将待执行任务的任务数据中的另一部分数据分配至边缘节点,使云服务器和边缘节点处理分配的数据。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的基于物联网的边缘计算任务的调度方法的应用场景示意图;
图2为本申请实施例提供的基于物联网的边缘计算任务的调度方法的流程图;
图3为本申请实施例提供的一种利用人工鱼群优化算法优化得到目标调度策略的方法的流程图;
图4为本申请实施例提供的人工鱼群优化算法的仿真结果示意图;
图5为本申请实施例提供的基于物联网的边缘计算任务的调度装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,图1为本申请提供的方案的应用场景,即物联网服务***的架构示意图。一个物联网服务***可以包括云服务器,通过核心网络和云服务器连接的多个边缘节点,以及通过边缘网络和边缘节点连接的多个用户终端。任意一个用户可以通过用户终端向边缘节点上传需要处理的计算任务(即待执行任务),从边缘节点接收到一个待执行任务开始,到边缘节点向上传这个待执行任务的用户终端反馈这个待执行任务的处理结果为止的这段时间,称为这个待执行任务的任务处理时间。
由于云服务器一般具有比边缘节点更强的计算能力,因此,边缘节点可以采用计算卸载技术,将每一个待执行任务的一部分数据发送至云服务器,相当于把一个待执行任务分隔为两个数据量相等(或者不等)的子任务,然后由云服务器和边缘节点分别处理一个子任务,达到双方合作处理一个待执行任务的效果。
其中,边缘节点处理一个任务i的耗时Ti,local可以用下述公式计算:
上述公式中,Di,local表示待执行任务i分配给边缘节点处理的任务数据的数据量,其单位可以是KB或者其他表示数据量的单位,Ci,local表示边缘节点中待执行任务可用的计算资源,具体可以理解为,边缘节点可以为待执行任务分配的进程的数量,Ki称为待执行任务i的每单位数据处理时间,用于表示单个进程处理待执行任务i的1单位数据(例如,可以是1KB数据)所需的时间,该指标的大小由待执行任务的复杂度决定,复杂度越高,则Ki越大,反之复杂度越低则Ki越小。
云服务器处理一个任务i的耗时Ti,cloud可以用下述公式计算:
在上述公式中,可以看出,云服务器处理一个任务的时间,包括任务对应的数据从边缘节点传输至云服务器的时间,以及云服务器处理完数据实际用的时间,数据处理完后的结果从云服务器发送至边缘节点时,处理结果的数据量远远小于需要处理的数据的数据量,因此可以忽略处理结果传回边缘节点的时间。
其中,Di,cloud表示待执行任务i分配给云服务器处理的任务数据的数据量,其单位可以是KB或者其他表示数据量的单位,Ci,cloud表示云服务器中待执行任务可用的计算资源,具体可以理解为,云服务器可以为待执行任务分配的进程的数量。由于云服务器的计算能力远强于边缘节点的计算能力,因此,一般认为Ci,cloud大于Ci,local。
Ti,trans表示待执行任务i分配给云服务器处理的任务数据的数据量从边缘节点传输至云服务器的总传输时间,具体的,假设边缘节点的数据传输模块的功率Plocal是信道(指边缘节点和云服务器之间的信道)内所传信号的平均功率,则根据香农公式可得出边缘和云服务器之间的数据传输速率V为:
其中,B为信道的贷款,n0为噪声功率谱密度。
相应的,上述传输时间Ti,trans可以用下述公式计算:
Ti,trans=Di,cloud×V
对于任意一个待执行任务,当该任务通过计算卸载同时分配给云服务器和边缘节点处理时,这个待执行任务i的任务处理时间,就是上述边缘节点处理时间Ti,local和云服务器处理时间Ti,cloud中的最大值。
在本案例主要考虑在***带宽,云服务器计算资源有限的情况下,如何制定计算卸载策略,以及***资源合理分配以最小化用户完成任务调度。
本申请所提供的方法,其关键在于,采用人工鱼群优化算法,对边缘节点的任务队列中的多个待执行任务,确定一个最优的目标调度策略,以尽可能缩短处理完整个任务队列的所有待执行任务所需的总处理时间。
其中,目标调度策略中指定了任务队列的每个待执行任务分配给边缘节点的数据量和分配给云服务器的数据量的比例,基于目标调度策略,可以确定任务队列中每一个待执行任务具体需要分配多少数据量该云服务器处理,以及剩余多少数据量由本地(即边缘节点)处理。
下面,请参考图2,本申请实施例提供的基于物联网的边缘计算任务的调度方法可以包括以下步骤:
S201、获取任务队列中每一个待执行任务的任务信息。
其中,待执行任务的任务信息,包括,待执行任务的任务数据量和待执行任务的每单位数据处理时间。
待执行任务的任务数据量,可以理解为,完成这个待执行任务总共需要处理的数据量,例如,若完成一个待执行任务总共需要处理300KB的数据,则这个待执行任务的任务数据量就是300KB,在后续确定了目标调度策略后,就可以将这300KB中的一部分,例如200KB分配给云服务器处理,剩余的部分,例如剩余的100KB则由边缘节点在本地处理。
S202、以任务队列的总处理时间最短为目标,利用人工鱼群算法进行策略优化,得到任务队列的目标调度策略。
其中,目标调度策略包括任务队列中每一个待执行任务的分配比例。
上述分配比例采用多种表现形式,例如,一个待执行任务的分配比例,可以是这个待执行任务分配给云服务器处理的数据量占这个待执行任务的任务数据量的比值(可以用百分数或两位小数表示),也可以是这个待执行任务分配给边缘节点处理的数据量占这个待执行任务的任务数据量的比值,还可以是这个待执行任务分配给边缘节点处理的数据量和这个待执行任务分配给云服务器处理的数据量两者之间的比值。本申请对分配比例的具体形式不做限定,只需要根据分配比例能够确定出分配多少数据量给云服务器,以及分配多少数据量给边缘节点即可。
人工鱼群算法的原理是,假设在一个N维的目标搜索空间中,有M个人工鱼个体,每一个人工鱼个体j均对应有一个状态向量Xj,在本申请中,状态向量的维数等于任务队列中待执行任务的数量q,也就是说,任意一个状态向量可以记为Xj=(x1,x2……xq),其中的每一个分量均对应于一个待执行任务,分量的数值,就是对应的待执行任务的分配比例。
在设定每一个人工鱼个体的初始状态向量之后,在人工鱼群算法中,就可以模拟真实的鱼类的觅食,聚群,追尾和随机行为,对每个人工鱼个体的状态向量进行反复迭代更新,直至最后确定出一个对应的目标函数值满足收敛条件的状态向量为止,到此,人工鱼群优化算法结束,最后确定的这个目标函数值满足收敛条件的状态向量,就是所需的目标调度策略。
在本申请中,目标函数,就是任务队列的所有待执行任务的总处理时间,相应的,对应的目标函数值满足收敛条件,就相当于,对应的总处理时间足够短。
在人工鱼群算法中,人工鱼个体的状态向量,也可以称为人工鱼个体的位置,其中,对于每一个人工鱼个体j,其当前的位置的食物浓度Yj可以表示为:
Yj=F(Xj)
其中F()就是目标函数。
每两个人工鱼个体i和j之间的距离di,j可以表示为:
di,j=||Xi-Xj||
人工鱼群算法的优化过程详见后续图3对应的实施例。
S203、针对任务队列的每一个待执行任务,按对应的分配比例将待执行任务分配给云服务器和边缘节点处理。
步骤S203,相当于针对任务队列的每一个待执行任务,将待执行任务的任务数据中基于待执行任务的分配比例划分的一部分数据分配至云服务器,并将待执行任务的任务数据中的另一部分数据分配至边缘节点,使云服务器和边缘节点处理分配的数据。
如前文所述,假设分配比例表示的是,待执行任务分配给云服务器处理的数据量占这个待执行任务的任务数据量的比值,一个待执行任务i的分配比例为70%,这个待执行任务的任务数据量为500KB,那么在执行步骤S203时,对于这个待执行任务,需要将该待执行任务的任务数据中350KB的数据分配个云服务器处理,剩余的150KB的数据则由边缘节点处理。
对于其他形式的分配比例,具体的分配过程类似,此处不再详述。
进一步的,所述步骤S2中获取完边缘节点和云服务器上待计算任务队列的任务处理时间,并根据计算卸载策略将队列基本的信息进行传输为:
假设边缘计算节点端存在N个计算任务,即T{T1,T2,......,Tn},其全部存在于待计算任务队列中,这些任务可通过计算卸载策略分别发送到卸载任务和本地执行任务队列中等待进一步处理。
步骤S203在具体执行时,可以分别创建一个边缘节点队列和一个云服务器队列,然后,针对任务队列的每一个待执行任务i,分别在上述两个队列中建立待执行任务i的子任务,其中,边缘节点队列中的子任务可以表示为(Ci,local,Di,local),云服务器队列中的子任务可以表示为(Ci,cloud,Di,cloud),上述符号的定义与前文一致,不再赘述。
本申请提供一种基于物联网的边缘计算任务的调度方法,该方法包括,获取任务队列中每一个待执行任务的任务信息;待执行任务的任务信息,包括,待执行任务的任务数据量和待执行任务的每单位数据处理时间;以任务队列的总处理时间最短为目标,利用人工鱼群算法进行策略优化,得到任务队列的目标调度策略;目标调度策略包括任务队列中每一个待执行任务的分配比例;针对任务队列的每一个待执行任务,将待执行任务的任务数据中基于待执行任务的分配比例划分的一部分数据分配至云服务器,并将待执行任务的任务数据中的另一部分数据分配至边缘节点,使云服务器和边缘节点处理分配的数据。
本方案将所要计算的任务合理的分配到相应的计算资源上,以实现任务计算开销最小化和任务执行性能的最大化。通过在边缘设备能耗、计算延时、传输数据量、带宽等指标之间寻找最优平衡,实现一种有效降低边缘设备任务执行延迟的动态调度策略。
请参考图3,前述实施例中,利用人工鱼群算法优化得到目标调度策略的步骤在具体执行时,可以包括如下的步骤:
S301、设定人工鱼群算法的参数。
人工鱼群算法具体可以包括如下参数,下述部分或者全部参数的数值,可以在优化过程中进行调整:
视野Visual,移动步长Step,迭代次数上限Loopmax,拥挤度因子Ep,和尝试次数Try,人工鱼个体数量M。
在步骤S301中,需要设定上述参数的数值,并且,需要将迭代次数初始化为1。
S302、人工鱼个体初始化。
步骤S302具体包括:
定义多个人工鱼个体,并为每一个人工鱼个体随机的设定初始的状态向量。
如前文所述,状态向量的维数与任务队列中待执行任务的数量一致;状态向量的每一个分量,用于指示对应的待执行任务的分配比例。也就是说,执行完步骤S302后,每一个人工鱼个体均对应于一个随机生成的初始的状态向量,每一个状态向量,相当于一个随机确定的调度策略。
S303、对每一个人工鱼个体执行N次状态向量更新操作。
其中,N为预设的正整数,状态向量更新操作指代,觅食操作,聚群操作,追尾操作和随机操作中的任意一种。
其中,觅食操作用于模拟真实鱼类的觅食行为,聚群操作用于模拟鱼类的聚群行为,追尾操作用于模拟鱼类的追尾行为,随机操作用于模拟鱼类的随机行为。
在步骤S303中,可以针对每一个人工鱼个体,指定该人工鱼个体每次更新状态向量时均按特定的某一种状态向量更新操作进行更新,例如,指定一个人工鱼个体,每次均通过执行觅食操作更新其状态向量,指定另一个人工鱼个体每次均执行聚群操作以更新其状态向量。
另外,也可以允许每一个人工鱼个体均执行上述四种操作中的任意一种,具体的,可以为每一种操作设定对应的权重,在每次更新一个人工鱼个体的状态向量时,基于每种操作对应的权重进行带权重的随机选取。也可以指定一个更新策略,例如,规定每一个人工鱼个体,在满足对应的条件时,优先执行聚群操作,若无法执行聚群操作,则优先执行追尾操作,若无法执行追尾操作,则优先执行觅食操作,若无法执行觅食操作,则执行随机操作。
S304、计算每一个人工鱼个体当前的状态向量所对应的总处理时间,并记录其中总处理时间最优的状态向量。
S305、判断已记录的状态向量是否满足收敛条件。
可选的,上述收敛条件可以是,在已记录的至少一个状态向量中,存在一个状态向量,其对应的总处理时间小于设定的处理时间阈值。
若已记录的状态向量不满足收敛条件,则执行步骤S306,若已记录的状态向量满足收敛条件,则执行步骤S308。
S306、将迭代次数递增1,并更新移动步长和视野。
也就是说,假设在执行步骤S306前迭代次数为1,则执行步骤S306后迭代次数变更为2,若执行S306前迭代次数为2,则执行S306后迭代次数变更为3。
S307、判断当前的迭代次数是否大于迭代次数上限。
若当前的迭代次数不大于迭代次数上限,则返回执行步骤S302,反之,若当前的迭代次数大于迭代次数上限,则执行步骤S308。
S308、将已记录的状态向量中,对应的总处理时间最短的状态向量确定为目标调度策略。
对应的总处理时间最短,也可以理解为,对应的总处理时间最优。
步骤S306中,更新移动步长和视野的方法可以是:
首先按下述公式计算得到更新因子A:
然后,按下述公式计算得到更新后的移动步长Stepnext,以及更新后的视野范围Visualnext:
其中Visual表示更新前原本的视野范围。
其中Step表示更新前原本的移动步长。
下面对步骤S303中的四种状态向量更新操作进行具体说明:
其一,觅食操作:
为目标人工鱼个体随机选取多个备选状态向量。
其中,每一个备选状态向量和目标人工鱼个体更新前的状态向量之间的距离均小于视野范围。如前文所述,在人工鱼群算法中,状态向量相当于人工鱼个体的位置,因此,上述步骤也可以认为是,在目标人工鱼个体的视野范围内随机的选取多个位置。
上述步骤也可以用如下公式表示:
Xselect=Xthis+rand()×Visual
其中,rand()表示一个大于0,并且不大于1的随机数,Xselect表示确定的备选状态向量,Xthis表示目标人工鱼个体当前的,也就是更新前的状态向量。通过反复的更改上述随机数的取值,就可以确定出多个备选状态向量。
选取的备选状态向量的数量,可以和前述尝试次数Try一致。
计算每一个备选状态向量对应的总处理时间(相当于计算每一个位置的食物浓度),并将备选状态向量的总处理时间和目标人工鱼个体当前的状态向量对应的总处理时间进行比对,以判断所有备选状态向量中,是否存在对应的总处理时间优于目标人工鱼个体当前的状态向量的总处理时间,相当于判断是否存在对应的总处理时间比Xthis的总处理时间短的备选状态向量。
如果存在满足上述条件,即总处理时间比Xthis的总处理时间的备选状态向量,将任意一个满足该条件的备选状态向量Xselect确定为目标状态向量Xdes。然后基于下述公式更新目标人工鱼个体的状态向量:
上述公式相当于,将人工鱼个体的状态向量更新为,位于更新前的状态向量和目标状态向量之间、且与更新前的状态向量的距离小于或等于移动步长的更新后的状态向量。
也就是说,完成更新后,目标人工鱼个体的状态向量变更为上述公式中计算得到的更新后的状态向量Xnext。
如果不存在满足上述条件的备选状态向量,则确定这个人工鱼个体不满足执行觅食操作的条件,此时可以对这个人工鱼个体执行随机操作,从而更新其状态向量。
可选的,上述觅食操作也可以按另一种方式执行:
确定任意一个和目标人工鱼个体更新前的状态向量之间的距离均小于视野范围的备选状态向量,若这个备选状态向量满足总处理时间比前述Xthis短的条件,将这个备选状态向量确定为目标状态向量,并执行更新操作,若这个备选状态向量不满足上述条件,则再次选取一个新的备选状态向量,反复执行,直至执行次数达到尝试次数Try之后,若仍没有确定出满足上述条件的备选状态向量,则确定这个人工鱼个体不满足执行觅食操作的条件,此时可以对这个人工鱼个体执行随机操作,从而更新其状态向量。
其二,聚群操作:
聚群操作旨在模拟真实鱼类的聚群行为,其中聚群行为是鱼群生活和规避天敌危害的一种生活习性。在鱼群算法中,执行聚群操作大致有如下两个规则,一条是尽可能像临近的同伴所在的的中心进行移动,另一条是防止发生过度的拥堵而影响自身发展。
基于此,聚群操作在具体执行时,可以包括如下过程:
确定每一个对应的状态向量和人工鱼个体的更新前的状态向量的距离小于视野范围的其他人工鱼个体。
上述步骤可以用下述公式表示:
Dother={||Xother-Xthis||≤Visual}
其中,Dother表示其他人工鱼个体的集合,Xother表示其他人工鱼个体的状态向量,上述公式表示,在聚群操作中,确定出来的每一个其他人工鱼个体,其状态向量和目标人工鱼个体当前的状态向量的距离均小于Visual,换言之,确定出的每一个其他人工鱼个体均位于目标人工鱼个体的视野范围内。
根据确定的每一个其他人工鱼个体当前的状态向量,计算得到中心状态向量Xcenter。
计算公式如下:
其中,S表示在前述步骤中确定的位于目标人工鱼个体的视野范围内的其他人工鱼个体的总数,Xother,i表示确定的第i个位于视野范围内的其他人工鱼个体的状态向量。
然后判断中心状态向量是否符合拥挤度条件。
若中心状态向量符合拥挤度条件,将中心状态向量Xcenter确定为目标状态向量Xdes。
将人工鱼个体的状态向量更新为,位于更新前的状态向量和目标状态向量之间、且与更新前的状态向量的距离小于或等于移动步长的更新后的状态向量。
具体更新操作和前述觅食操作中确定目标状态向量后的更新操作一致,此处不再详述。
若中心状态向量不符合拥挤度条件,则确定目标人工鱼个体不能执行聚群操作,这种情况下可以选择对目标人工鱼个体执行前文所述的其他状态向量更新操作。
其中,判断中心状态向量是否符合拥挤度条件的公式是:
F(Xcenter)÷S≥Ep
其中,F(Xcenter)表示中心状态向量对应的总处理时间,Ep即前述拥挤度因子。
若中心状态向量满足上述公式,即中心状态向量对应的总处理时间除以S之后得到的数值大于或等于拥挤度因子,则确定中心状态向量满足拥挤度条件,反之则确定中心状态向量不满足拥挤度条件。
其三,追尾操作:
追尾操作旨在模拟真实鱼群的追尾行为,追尾行为是指鱼类在运动过程中,当一条或多条鱼找到食物时,它的临近的同伴会很快地跟随它到食物点。即追尾行为是一种以高适应性追赶临近同伴人工鱼的行为。在优化算法中,它能够理解为追赶邻近最优解的过程。
具体的,在本申请中,追尾操作的具体执行过程可以是:
在每一个对应的状态向量和人工鱼个体的更新前的状态向量小于或等于视野范围的其他人工鱼个体中,确定出状态向量对应的总处理时间最优的人工鱼个体。确定出的这个最有人工鱼个体的状态向量可以记为Xbest。
对于任意一个人工鱼个体,若这个人工鱼个体的状态向量对应的总处理时间,并另一个人工鱼个体的状态向量对应的总处理时间短,那么可以认为前者比后者更接近于食物,或者说前者所在位置的食物浓度更高。
判断确定出的最优的人工鱼个体的状态向量Xbest是否符合拥挤度条件。
若Xbest符合拥挤度条件,将最优人工鱼个体当前的状态向量Xbest确定为目标状态向量Xdes,然后将人工鱼个体的状态向量更新为,位于更新前的状态向量和目标状态向量之间、且与更新前的状态向量的距离小于或等于移动步长的更新后的状态向量。
上述更新操作和前述两种操作中确定目标状态向量之后的更新操作一致,此处不再详述。
若最优的人工鱼个体当前的状态向量Xbest不符合拥挤度条件,则确定目标人工鱼个体不满足执行追尾操作的条件。
其四,随机操作:
确定一个小于或等于移动步长的数值作为人工鱼个体的移动距离;
随机选取一个与人工鱼个体更新前的状态向量的距离等于移动距离的状态向量作为更新后的状态向量,并将人工鱼个体的状态向量更新为更新后的状态向量。
上述过程可以用下述公式表示:
Xnext=Xthis+rand()×Step
在如图3所示的实施例中,涉及到针对人工鱼个体当前的状态向量,计算这个状态向量对应的总处理时间,其具体的计算过程如下:
针对每一个待执行任务,基于人工鱼个体的状态向量中针对的待执行任务的分配比例以及针对的待执行任务的任务数据量,确定待执行任务的第一数据量和第二数据量。
其中,第一数据量指代待执行任务的任务数据量中,分配至云服务器的数据量;第二数据量指代待执行任务的任务数据量中,分配至边缘节点的数据量。
针对每一个待执行任务,根据待执行任务的每单位数据处理时间,第一数据量和云服务器的可用计算资源,计算云服务器处理待执行任务的第一数据量的时间,并计算云服务器处理待执行任务的第一数据量的时间与第一数据量从边缘节点传输至云服务器的时间之和,得到待执行任务的云服务器处理时间。
针对每一个待执行任务,根据待执行任务的每单位数据处理时间,第二数据量和边缘节点的可用计算资源,计算边缘节点处理待执行任务的第二数据量的时间,得到待执行任务的边缘节点处理时间。
云服务器处理时间和边缘节点处理时间的计算过程可以参考前文的相应内容,此处不再详述。
将每一个待执行任务的边缘节点处理时间和云服务器处理时间中最长的处理时间确定为所述待执行任务对应的任务处理时间。
例如,假设一个待执行任务i,优化得到的目标调度策略中这个待执行任务的分配比例(待执行任务分配给云服务器处理的数据量占这个待执行任务的任务数据量的比值)为60%,该任务的任务数据量为300KB,则可以确定这个待执行任务的任务数据中,180KB的数据需要发给云服务器处理,剩余120KB的数据由边缘节点处理,180KB的数据发送至云服务器所需的时间以及云服务器处理这180KB所需的时间总和为5秒,边缘节点处理完剩余120KB的数据所需时间为6秒,则这个待执行任务对应的任务处理时间就是两者中最长的时间,即任务处理时间为6秒。
将每一个待执行任务的任务处理时间累加,得到所述人工鱼个体的状态向量所对应的总处理时间。
本发明主要是解决在单个边缘节点下的任务调度。通过了解边缘节点的任务调度层面,设计了基于改进鱼群算法的任务调度,并通过任务在边缘节点本地、云端和改进鱼群算法下的任务执行时间进行对比实验,发现改进鱼群算法在任务执行时间和增长趋势上具有明显优势,能够满足用户对任务延迟的需求。
在接下来的研究中,将考虑单个节点的内存性能,同时也将扩展到多个边缘节点和多个云服务器间的任务调度,以进一步提高任务的总体执行效率和各计算节点的计算性能。
本申请实施例对人工鱼群算法进行了收敛性仿真,仿真结果如图4所示,改进鱼群算法(指根据迭代次数动态调整视野范围和移动步长,也就是执行了步骤S306的人工鱼群算法)在大概第5次迭代完成收敛,任务执行的总时间大概在21秒左右,而传统鱼群算法在55次迭代左右完成收敛,任务执行总时间大概在19秒左右;两者相比较而言,虽然改进鱼群算法在任务执行总时间上没有得到提高,但加快了算法的收敛速度。同时由于边缘节点的两个任务调度队列是并行计算的,故以完成所有任务的实际用时来看,改进鱼群算法不仅在收敛速度上更快并且提高了任务的执行时间。
与现有技术相比,本实施例具有以下优点:
本发明考虑了不同用户任务之间的差异性和云服务器计算容量有限的情况,以最小化用户平均时延为目的,规避了边缘节点设备产生的海量数据无法通过现有的带宽资源传输到云计算中心进行集中式计算。实现更加现实场景下,用户任务卸载决策和计算资源的匹配。
本发明中,由于优化问题为边缘计算动态任务调度问题。所以本发明提出了一种基于边缘计算任务调度的优化方法,并通过任务在边缘节点本地、云端和改进鱼群算法下的任务执行时间进行对比实验,验证了改进鱼群算法在任务执行时间和增长趋势上具有明显优势。
结合本申请任一实施例所提供的基于物联网的边缘计算任务的调度方法,本申请实施例还提供一种基于物联网的边缘计算任务的调度装置,如图5所示,该装置可以包括:
获取单元501,用于获取任务队列中每一个待执行任务的任务信息。
其中,待执行任务的任务信息,包括,待执行任务的任务数据量和待执行任务的每单位数据处理时间。
优化单元502,用于以任务队列的总处理时间最短为目标,利用人工鱼群算法进行策略优化,得到任务队列的目标调度策略。
其中,目标调度策略包括任务队列中每一个待执行任务的分配比例。
分配单元503,用于针对任务队列的每一个待执行任务,将待执行任务的任务数据中基于待执行任务的分配比例划分的一部分数据分配至云服务器,并将待执行任务的任务数据中的另一部分数据分配至边缘节点,使云服务器和边缘节点处理分配的数据。
优化单元502包括:
计数单元,用于将迭代次数设定为1;
初始化单元,用于定义多个人工鱼个体,并为每一个人工鱼个体随机的设定初始的状态向量;其中,状态向量的维数与任务队列中待执行任务的数量一致;状态向量的每一个分量,用于指示对应的待执行任务的分配比例;
更新单元,用于对每一个人工鱼个体执行N次状态向量更新操作;其中,N为预设的正整数,状态向量更新操作指代,觅食操作,聚群操作,追尾操作和随机操作中的任意一种;
记录单元,用于在每一个人工鱼个体均执行N次状态向量更新操作后,针对每一个人工鱼个体,计算人工鱼个体的状态向量所对应的总处理时间,并记录其中总处理时间最优的状态向量;
判断单元,用于若已记录的状态向量不满足收敛条件,将迭代次数递增1,并触发初始化单元执行为每一个人工鱼个体随机的设定初始的状态向量,直至已记录的状态向量满足收敛条件,或者迭代次数大于迭代次数上限。
在优化单元502中,记录单元计算人工鱼个体的状态向量所对应的总处理时间时,具体用于:
针对每一个待执行任务,基于人工鱼个体的状态向量中针对的待执行任务的分配比例以及针对的待执行任务的任务数据量,确定待执行任务的第一数据量和第二数据量;其中,第一数据量指代待执行任务的任务数据量中,分配至云服务器的数据量;第二数据量指代待执行任务的任务数据量中,分配至边缘节点的数据量;
针对每一个待执行任务,根据待执行任务的每单位数据处理时间,第一数据量和云服务器的可用计算资源,计算云服务器处理待执行任务的第一数据量的时间,并计算云服务器处理待执行任务的第一数据量的时间与第一数据量从边缘节点传输至云服务器的时间之和,得到待执行任务的云服务器处理时间;
针对每一个待执行任务,根据待执行任务的每单位数据处理时间,第二数据量和边缘节点的可用计算资源,计算边缘节点处理待执行任务的第二数据量的时间,得到待执行任务的边缘节点处理时间;
将每一个待执行任务的云服务器处理时间累加,得到任务队列的云服务器处理时间,并将每一个待执行任务的边缘节点处理时间累加,得到任务队列的边缘节点处理时间;
将任务队列的云服务器处理时间和任务队列的边缘节点处理时间中最长的时间,确定为人工鱼个体的状态向量所对应的总处理时间。
在优化单元502中,更新单元对所述人工鱼个体执行觅食操作时,具体执行:
为所述人工鱼个体随机选取多个备选状态向量;其中,每一个所述备选状态向量和所述人工鱼个体更新前的状态向量之间的距离均小于视野范围;
在所述多个备选状态向量中选择一个对应的总处理时间优于所述人工鱼个体更新前的状态向量的总处理时间的备选状态向量作为目标状态向量;
将所述人工鱼个体的状态向量更新为,位于所述更新前的状态向量和所述目标状态向量之间、且与所述更新前的状态向量的距离小于或等于移动步长的更新后的状态向量。
在优化单元502中,更新单元对所述人工鱼个体执行聚群操作时,具体执行:
确定每一个对应的状态向量和所述人工鱼个体的更新前的状态向量的距离小于视野范围的其他人工鱼个体;
根据确定的每一个其他人工鱼个体当前的状态向量,计算得到中心状态向量;
若所述中心状态向量符合拥挤度条件,将所述中心状态向量确定为目标状态向量;
将所述人工鱼个体的状态向量更新为,位于所述更新前的状态向量和所述目标状态向量之间、且与所述更新前的状态向量的距离小于或等于移动步长的更新后的状态向量。
在优化单元502中,更新单元对所述人工鱼个体执行追尾操作时,具体执行:
在每一个对应的状态向量和所述人工鱼个体的更新前的状态向量小于或等于视野范围的其他人工鱼个体中,确定出状态向量对应的总处理时间最优的人工鱼个体;
若所述最优人工鱼个体当前的状态向量符合拥挤度条件,将所述最优人工鱼个体当前的状态向量确定为目标状态向量;
将所述人工鱼个体的状态向量更新为,位于所述更新前的状态向量和所述目标状态向量之间、且与所述更新前的状态向量的距离小于或等于移动步长的更新后的状态向量。
在优化单元502中,更新单元对所述人工鱼个体执行随机操作时,具体执行:
确定一个小于或等于移动步长的数值作为所述人工鱼个体的移动距离;
随机选取一个与所述人工鱼个体更新前的状态向量的距离等于所述移动距离的状态向量作为更新后的状态向量,并将所述人工鱼个体的状态向量更新为所述更新后的状态向量。
本申请实施例所提供的装置,其具体工作原理可以参考本申请任一实施例提供的方法的对应步骤,此处不再赘述。
本申请提供一种基于物联网的边缘计算任务的调度装置,其中,获取单元501获取任务队列中每一个待执行任务的任务信息;待执行任务的任务信息,包括,待执行任务的任务数据量和待执行任务的每单位数据处理时间;优化单元502以任务队列的总处理时间最短为目标,分配单元503利用人工鱼群算法进行策略优化,得到任务队列的目标调度策略;目标调度策略包括任务队列中每一个待执行任务的分配比例;针对任务队列的每一个待执行任务,将待执行任务的任务数据中基于待执行任务的分配比例划分的一部分数据分配至云服务器,并将待执行任务的任务数据中的另一部分数据分配至边缘节点,使云服务器和边缘节点处理分配的数据。
本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
需要注意,本发明中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种基于物联网的边缘计算任务的调度方法,其特征在于,包括:
获取任务队列中每一个待执行任务的任务信息;其中,所述待执行任务的任务信息,包括,所述待执行任务的任务数据量和所述待执行任务的每单位数据处理时间;
以所述任务队列的总处理时间最短为目标,利用人工鱼群算法进行策略优化,得到所述任务队列的目标调度策略;其中,所述目标调度策略包括所述任务队列中每一个待执行任务的分配比例;
针对所述任务队列的每一个待执行任务,将所述待执行任务的任务数据中基于所述待执行任务的分配比例划分的一部分数据分配至云服务器,并将所述待执行任务的任务数据中的另一部分数据分配至边缘节点,使所述云服务器和所述边缘节点处理分配的数据。
2.根据权利要求1所述的调度方法,其特征在于,所述以所述任务队列的总处理时间最短为目标,利用人工鱼群算法进行策略优化,得到所述任务队列的目标调度策略,包括:
将迭代次数设定为1;
定义多个人工鱼个体,并为每一个所述人工鱼个体随机的设定初始的状态向量;其中,所述状态向量的维数与所述任务队列中待执行任务的数量一致;所述状态向量的每一个分量,用于指示对应的所述待执行任务的分配比例;
对每一个所述人工鱼个体执行N次状态向量更新操作;其中,N为预设的正整数,所述状态向量更新操作指代,觅食操作,聚群操作,追尾操作和随机操作中的任意一种;
在每一个所述人工鱼个体均执行N次状态向量更新操作后,针对每一个所述人工鱼个体,计算所述人工鱼个体的状态向量所对应的总处理时间,并记录其中总处理时间最优的所述状态向量;
若已记录的状态向量不满足收敛条件,将所述迭代次数递增1,并返回执行所述为每一个所述人工鱼个体随机的设定初始的状态向量,直至已记录的状态向量满足收敛条件,或者所述迭代次数大于迭代次数上限。
3.根据权利要求2所述的调度方法,其特征在于,对所述人工鱼个体执行觅食操作,包括:
为所述人工鱼个体随机选取多个备选状态向量;其中,每一个所述备选状态向量和所述人工鱼个体更新前的状态向量之间的距离均小于视野范围;
在所述多个备选状态向量中选择一个对应的总处理时间优于所述人工鱼个体更新前的状态向量的总处理时间的备选状态向量作为目标状态向量;
将所述人工鱼个体的状态向量更新为,位于所述更新前的状态向量和所述目标状态向量之间、且与所述更新前的状态向量的距离小于或等于移动步长的更新后的状态向量。
4.根据权利要求2所述的调度方法,其特征在于,对所述人工鱼个体执行聚群操作,包括:
确定每一个对应的状态向量和所述人工鱼个体的更新前的状态向量的距离小于视野范围的其他人工鱼个体;
根据确定的每一个其他人工鱼个体当前的状态向量,计算得到中心状态向量;
若所述中心状态向量符合拥挤度条件,将所述中心状态向量确定为目标状态向量;
将所述人工鱼个体的状态向量更新为,位于所述更新前的状态向量和所述目标状态向量之间、且与所述更新前的状态向量的距离小于或等于移动步长的更新后的状态向量。
5.根据权利要求2所述的调度方法,其特征在于,对所述人工鱼个体执行追尾操作,包括:
在每一个对应的状态向量和所述人工鱼个体的更新前的状态向量小于或等于视野范围的其他人工鱼个体中,确定出状态向量对应的总处理时间最优的人工鱼个体;
若所述最优人工鱼个体当前的状态向量符合拥挤度条件,将所述最优人工鱼个体当前的状态向量确定为目标状态向量;
将所述人工鱼个体的状态向量更新为,位于所述更新前的状态向量和所述目标状态向量之间、且与所述更新前的状态向量的距离小于或等于移动步长的更新后的状态向量。
6.根据权利要求2所述的调度方法,其特征在于,对所述人工鱼个体执行随机操作,包括:
确定一个小于或等于移动步长的数值作为所述人工鱼个体的移动距离;
随机选取一个与所述人工鱼个体更新前的状态向量的距离等于所述移动距离的状态向量作为更新后的状态向量,并将所述人工鱼个体的状态向量更新为所述更新后的状态向量。
7.根据权利要求2至6任意一项所述的调度方法,其特征在于,所述计算所述人工鱼个体的状态向量所对应的总处理时间,包括:
针对每一个待执行任务,基于所述人工鱼个体的状态向量中针对的待执行任务的分配比例以及所述针对的待执行任务的任务数据量,确定所述待执行任务的第一数据量和第二数据量;其中,所述第一数据量指代所述待执行任务的任务数据量中,分配至云服务器的数据量;所述第二数据量指代所述待执行任务的任务数据量中,分配至边缘节点的数据量;
针对每一个待执行任务,根据所述待执行任务的每单位数据处理时间,第一数据量和所述云服务器的可用计算资源,计算所述云服务器处理所述待执行任务的第一数据量的时间,并计算所述云服务器处理所述待执行任务的第一数据量的时间与所述第一数据量从所述边缘节点传输至所述云服务器的时间之和,得到所述待执行任务的云服务器处理时间;
针对每一个待执行任务,根据所述待执行任务的每单位数据处理时间,第二数据量和所述边缘节点的可用计算资源,计算所述边缘节点处理所述待执行任务的第二数据量的时间,得到所述待执行任务的边缘节点处理时间;
将每一个待执行任务的边缘节点处理时间和云服务器处理时间中最长的处理时间确定为所述待执行任务对应的任务处理时间;
将每一个待执行任务的任务处理时间累加,得到所述人工鱼个体的状态向量所对应的总处理时间。
8.一种基于物联网的边缘计算任务的调度装置,其特征在于,包括:
获取单元,用于获取任务队列中每一个待执行任务的任务信息;其中,所述待执行任务的任务信息,包括,所述待执行任务的任务数据量和所述待执行任务的每单位数据处理时间;
优化单元,用于以所述任务队列的总处理时间最短为目标,利用人工鱼群算法进行策略优化,得到所述任务队列的目标调度策略;其中,所述目标调度策略包括所述任务队列中每一个待执行任务的分配比例;
分配单元,用于针对所述任务队列的每一个待执行任务,将所述待执行任务的任务数据中基于所述待执行任务的分配比例划分的一部分数据分配至云服务器,并将所述待执行任务的任务数据中的另一部分数据分配至边缘节点,使所述云服务器和所述边缘节点处理分配的数据。
9.根据权利要求8所述的调度装置,其特征在于,所述优化单元包括:
计数单元,用于将迭代次数设定为1;
初始化单元,用于定义多个人工鱼个体,并为每一个所述人工鱼个体随机的设定初始的状态向量;其中,所述状态向量的维数与所述任务队列中待执行任务的数量一致;所述状态向量的每一个分量,用于指示对应的所述待执行任务的分配比例;
更新单元,用于对每一个所述人工鱼个体执行N次状态向量更新操作;其中,N为预设的正整数,所述状态向量更新操作指代,觅食操作,聚群操作,追尾操作和随机操作中的任意一种;
记录单元,用于在每一个所述人工鱼个体均执行N次状态向量更新操作后,针对每一个所述人工鱼个体,计算所述人工鱼个体的状态向量所对应的总处理时间,并记录其中总处理时间最优的所述状态向量;
判断单元,用于若已记录的状态向量不满足收敛条件,将所述迭代次数递增1,并触发所述初始化单元执行所述为每一个所述人工鱼个体随机的设定初始的状态向量,直至已记录的状态向量满足收敛条件,或者所述迭代次数大于迭代次数上限。
10.根据权利要求8所述的调度装置,其特征在于,所述记录单元计算所述人工鱼个体的状态向量所对应的总处理时间时,具体用于:
针对每一个待执行任务,基于所述人工鱼个体的状态向量中针对的待执行任务的分配比例以及所述针对的待执行任务的任务数据量,确定所述待执行任务的第一数据量和第二数据量;其中,所述第一数据量指代所述待执行任务的任务数据量中,分配至云服务器的数据量;所述第二数据量指代所述待执行任务的任务数据量中,分配至边缘节点的数据量;
针对每一个待执行任务,根据所述待执行任务的每单位数据处理时间,第一数据量和所述云服务器的可用计算资源,计算所述云服务器处理所述待执行任务的第一数据量的时间,并计算所述云服务器处理所述待执行任务的第一数据量的时间与所述第一数据量从所述边缘节点传输至所述云服务器的时间之和,得到所述待执行任务的云服务器处理时间;
针对每一个待执行任务,根据所述待执行任务的每单位数据处理时间,第二数据量和所述边缘节点的可用计算资源,计算所述边缘节点处理所述待执行任务的第二数据量的时间,得到所述待执行任务的边缘节点处理时间;
将每一个待执行任务的边缘节点处理时间和云服务器处理时间中最长的处理时间确定为所述待执行任务对应的任务处理时间;
将每一个待执行任务的任务处理时间累加,得到所述人工鱼个体的状态向量所对应的总处理时间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011110565.7A CN112256413A (zh) | 2020-10-16 | 2020-10-16 | 基于物联网的边缘计算任务的调度方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011110565.7A CN112256413A (zh) | 2020-10-16 | 2020-10-16 | 基于物联网的边缘计算任务的调度方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112256413A true CN112256413A (zh) | 2021-01-22 |
Family
ID=74244482
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011110565.7A Pending CN112256413A (zh) | 2020-10-16 | 2020-10-16 | 基于物联网的边缘计算任务的调度方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112256413A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114928653A (zh) * | 2022-04-19 | 2022-08-19 | 西北工业大学 | 面向群智感知的数据处理方法及装置 |
CN115150405A (zh) * | 2022-07-11 | 2022-10-04 | 天津理工大学 | 一种基于前景理论框架的边缘计算任务卸载方法 |
CN116708451A (zh) * | 2023-08-08 | 2023-09-05 | 广东奥飞数据科技股份有限公司 | 一种边云协同调度方法及*** |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109218414A (zh) * | 2018-08-27 | 2019-01-15 | 杭州中恒云能源互联网技术有限公司 | 一种面向智能电网混合网络架构的分布式计算方法 |
CN110018834A (zh) * | 2019-04-11 | 2019-07-16 | 北京理工大学 | 一种混合移动云/边缘计算的任务卸载和数据缓存方法 |
EP3605329A1 (en) * | 2018-07-31 | 2020-02-05 | Commissariat à l'énergie atomique et aux énergies alternatives | Connected cache empowered edge cloud computing offloading |
CN111585916A (zh) * | 2019-12-26 | 2020-08-25 | 国网辽宁省电力有限公司电力科学研究院 | 基于云边协同的lte电力无线专网任务卸载和资源分配方法 |
-
2020
- 2020-10-16 CN CN202011110565.7A patent/CN112256413A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3605329A1 (en) * | 2018-07-31 | 2020-02-05 | Commissariat à l'énergie atomique et aux énergies alternatives | Connected cache empowered edge cloud computing offloading |
CN109218414A (zh) * | 2018-08-27 | 2019-01-15 | 杭州中恒云能源互联网技术有限公司 | 一种面向智能电网混合网络架构的分布式计算方法 |
CN110018834A (zh) * | 2019-04-11 | 2019-07-16 | 北京理工大学 | 一种混合移动云/边缘计算的任务卸载和数据缓存方法 |
CN111585916A (zh) * | 2019-12-26 | 2020-08-25 | 国网辽宁省电力有限公司电力科学研究院 | 基于云边协同的lte电力无线专网任务卸载和资源分配方法 |
Non-Patent Citations (2)
Title |
---|
刘胜: "《智能预报技术及其在船舶工程中的应用》", 30 November 2015 * |
刘锐: "基于移动边缘计算的任务卸载策略研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114928653A (zh) * | 2022-04-19 | 2022-08-19 | 西北工业大学 | 面向群智感知的数据处理方法及装置 |
CN114928653B (zh) * | 2022-04-19 | 2024-02-06 | 西北工业大学 | 面向群智感知的数据处理方法及装置 |
CN115150405A (zh) * | 2022-07-11 | 2022-10-04 | 天津理工大学 | 一种基于前景理论框架的边缘计算任务卸载方法 |
CN115150405B (zh) * | 2022-07-11 | 2023-08-01 | 天津理工大学 | 一种基于前景理论框架的边缘计算任务卸载方法 |
CN116708451A (zh) * | 2023-08-08 | 2023-09-05 | 广东奥飞数据科技股份有限公司 | 一种边云协同调度方法及*** |
CN116708451B (zh) * | 2023-08-08 | 2023-10-20 | 广东奥飞数据科技股份有限公司 | 一种边云协同调度方法及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108920280B (zh) | 一种单用户场景下的移动边缘计算任务卸载方法 | |
CN113950066B (zh) | 移动边缘环境下单服务器部分计算卸载方法、***、设备 | |
CN113242568B (zh) | 一种不确定网络环境中的任务卸载和资源分配方法 | |
US20210133534A1 (en) | Cloud task scheduling method based on phagocytosis-based hybrid particle swarm optimization and genetic algorithm | |
CN109656702B (zh) | 一种基于强化学习的跨数据中心网络任务调度方法 | |
CN107172166B (zh) | 面向工业智能化服务的云雾计算*** | |
CN112256413A (zh) | 基于物联网的边缘计算任务的调度方法和装置 | |
CN112380008B (zh) | 一种面向移动边缘计算应用的多用户细粒度任务卸载调度方法 | |
CN112882815B (zh) | 基于深度强化学习的多用户边缘计算优化调度方法 | |
CN110717300B (zh) | 面向电力物联实时在线监测业务的边缘计算任务分配方法 | |
CN109788046B (zh) | 一种基于改进蜂群算法的多策略边缘计算资源调度方法 | |
CN112286677A (zh) | 一种面向资源受限边缘云的物联网应用优化部署方法 | |
CN109710374A (zh) | 移动边缘计算环境下最小化任务卸载费用的vm迁移策略 | |
CN114340016B (zh) | 一种电网边缘计算卸载分配方法及*** | |
CN109840154A (zh) | 一种移动云环境下基于任务依赖的计算迁移方法 | |
CN112799823B (zh) | 边缘计算任务的在线分派调度方法和*** | |
CN111953547B (zh) | 一种基于业务的异构基站重叠分组及资源配置方法及装置 | |
CN111988787B (zh) | 一种任务的网络接入和服务放置位置选择方法及*** | |
CN109656713B (zh) | 一种基于边缘计算框架的容器调度方法 | |
CN115629865B (zh) | 一种基于边缘计算的深度学习推理任务调度方法 | |
CN111930435A (zh) | 一种基于pd-bpso技术的任务卸载决策方法 | |
CN115809148B (zh) | 一种面向边缘计算的负载均衡任务调度方法及装置 | |
CN111488208A (zh) | 基于可变步长蝙蝠算法的边云协同计算节点调度优化方法 | |
CN116932086A (zh) | 一种基于哈里斯鹰算法的移动边缘计算卸载方法及*** | |
CN115185660A (zh) | Mar任务在多接入边缘计算中的卸载和缓存放置方法及*** |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210122 |
|
RJ01 | Rejection of invention patent application after publication |