发明内容
针对上述问题,本发明的目的是在多用户多雾节点的场景下,提供一种基于公平的雾计算任务卸载方法及系统。为了实现以上目的,本发明采用以下技术方案:
一种基于公平的雾计算任务卸载方法,包括步骤:
S1、获取整个网络的信息,信息包括各个雾节点的历史平均能耗信息;
S2、根据步骤S1中获取的信息,计算各终端节点与雾节点之间的势能;
S3、利用Kuhn-Munkras算法,以各终端节点与雾节点之间的势能为权值,并以网络整体势能最大为目标,求解终端节点与雾节点之间的一对一匹配,以作出任务卸载决策矩阵X;
S4、以最小化任务处理时延为目标,计算终端节点卸载任务数据量;
S5、计算本轮各雾节点的能耗,并更新各雾节点的历史平均能耗信息。
优选的,步骤S1中由网络控制器获取整个网络的信息,且信息还包括:
终端节点数量M,每个终端节点的任务数据量Li、计算能力fi、发射功率i=1,2,3...M,t为transmission代表传输;
雾节点数量N,每个雾节点的计算能力fj、计算功率续航能力γj,j=1,2,3...N,c为compute代表计算;
终端节点i与雾节点j之间的距离dij、信道带宽Bij以及噪声功率
所述雾节点的历史平均能耗信息为
优选的,步骤S2中包括步骤:
S2.1、计算终端节点i与雾节点j之间的信道增益Gij、数据传输速率rij和等效数据处理速率Rij;
S2.2、根据终端节点i与雾节点j之间等效数据处理速率Rij、雾节点j的续航能力γj、雾节点j的历史平均能耗计算终端节点i与雾节点j之间的势能/>
优选的,步骤S2.1中:
计算终端节点i与雾节点j之间信道增益Gij的公式为:其中Lij为终端节点i与雾节点j之间的路径损耗;
计算终端节点i与雾节点j之间数据传输速率rij的公式为:
计算终端节点i与雾节点j之间等效数据处理速率Rij的公式为:Rij=(1/rij+1/fj)-1。
优选的,计算终端节点i与雾节点j之间的路径损耗Lij的公式为:Lij=38.46+20log10(dij)。
优选的,步骤S2.2中:
计算终端节点i与雾节点j之间势能的公式为:/>
优选的,步骤S3中,采用目标函数进行建模,以使网络整体势能最大,其中xij∈{0,1}、/>xij为0-1指示变量,当终端节点i的子任务分配给雾节点j时,xij=1,反之,xij=0,/>表明终端节点只能将任务卸载给一个雾节点,表明每个雾节点每次最多服务一个终端节点。
优选的,步骤S4中计算终端节点卸载任务数据量Qij的公式为:
优选的,步骤S5中,计算本轮雾节点能耗Ej的公式为:更新雾节点历史平均能耗信息的计算公式为:/>其中/>为更新前雾节点的历史平均能耗信息,/>为更新后雾节点的历史平均能耗信息,α为遗忘指数。
本发明还公开了一种基于公平的雾计算任务卸载系统,包括信息获取模块、势能计算模块、矩阵获取模块、数据量计算模块以及能耗计算模块;
信息获取模块,用于获取整个网络的信息,信息包括各个雾节点的历史平均能耗信息;
势能计算模块,用于根据信息获取模块获取的信息,计算各终端节点与雾节点之间的势能;
矩阵获取模块,利用Kuhn-Munkras算法,以各终端节点与雾节点之间的势能为权值,并以网络整体势能最大为目标,求解终端节点与雾节点之间的一对一匹配,以作出任务卸载决策矩阵X;
数据量计算模块,用于以最小化任务处理时延为目标,计算终端节点卸载任务数据量;
能耗计算模块,用于计算本轮各雾节点的能耗,并更新各雾节点的历史平均能耗信息。
本发明的优点在于:
(1):终端节点在选择雾节点时,不只考虑雾节点的计算能力、续航能力和距离,还会考虑雾节点的平均历史能耗,这有效解决了一些雾节点持续工作能源很快耗尽,而另一些雾节点始终处于闲置状态的问题,提高了雾节点基于能耗的公平性。
(2):在兼顾雾节点能耗公平的条件下,还能使得整个网络的势能最大;以及在网络势能最大限制条件下,使得每个终端处理任务需要的时延最短。
具体实施方式
以下通过特定的具体实施例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
实施例一:
参照图1,本实施例提供一种基于公平的雾计算任务卸载方法,包括步骤:
S1、获取整个网络的信息,信息包括各个雾节点的历史平均能耗信息;
S2、根据步骤S1中获取的信息,计算各终端节点与雾节点之间的势能;
S3、利用Kuhn-Munkras算法,以各终端节点与雾节点之间的势能为权值,并以网络整体势能最大为目标,求解终端节点与雾节点之间的一对一匹配,以作出任务卸载决策矩阵X;
S4、以最小化任务处理时延为目标,计算终端节点卸载任务数据量;
S5、计算本轮各雾节点的能耗,并更新各雾节点的历史平均能耗信息。
本实施例适用于雾计算网络,网络模型图参照图2所示,在该网络中,雾节点与终端节点在某一区域内随机分布。本实施例做出如下假设:
(1)雾节点数量不少于终端节点数量。
(2)终端节点产生的任务可以任意分为两个子任务。一个子任务在本地执行,一个子任务卸载至雾节点执行。
(3)忽略卸载至雾节点的子任务的计算结果的传输时间。
具体的:
在所述步骤S1中,由网络控制器获取整个网络的信息,网络控制器是安装在电信运营商部署的基站上的小型数据中心。
所述信息还包括:
终端节点数量M,每个终端节点的任务数据量Li、计算能力fi、发射功率i=1,2,3...M,t为transmission代表传输;
雾节点数量N,每个雾节点的计算能力fj、计算功率续航能力γj,j=1,2,3...N,c为compute代表计算;
终端节点i与雾节点j之间的距离dij、信道带宽Bij以及噪声功率
所述雾节点的历史平均能耗信息为
步骤S2中包括步骤:
S2.1、计算终端节点i与雾节点j之间的信道增益Gij、数据传输速率rij和等效数据处理速率Rij;
S2.2、根据终端节点i与雾节点j之间等效数据处理速率Rij、雾节点j的续航能力γj、雾节点j的历史平均能耗计算终端节点i与雾节点j之间的势能/>
并且,步骤S2.1中:
计算终端节点i与雾节点j之间信道增益Gij的公式为:其中Lij为终端节点i与雾节点j之间的路径损耗,且计算路径损耗Lij的公式为:Lij=38.46+20log10(dij)。;
计算终端节点i与雾节点j之间数据传输速率rij的公式为:
计算终端节点i与雾节点j之间等效数据处理速率Rij的公式为:Rij=(1/rij+1/fj)-1。
步骤S2.2中:
计算终端节点i与雾节点j之间势能的公式为:/>
由公式可知,当雾节点j的计算速率越大,历史平均能耗越小,续航能力越强,与终端节点i之间的距离越近,则/>越大。从个体角度出发,每个终端都会将任务卸载给使/>取值最大的雾节点,即最佳雾节点。但雾节点一次只能服务一个用户,所以当多个终端的最佳雾节点为同一个时,会产生冲突。为解决这一冲突,实现雾节点与终端节点的一对一匹配,应从全局考虑,使整个网络的总势能最大。
因此,参照图4,步骤S3中包括步骤:
S3.1、,采用采用目标函数进行建模,以使网络整体势能最大,其中xij∈{0,1}、/>xij为0-1指示变量,当终端节点i的子任务分配给雾节点j时,xij=1,反之,xij=0。图中实线表示xij=1,虚线表示xij=0。所有任务分配情况构成M×N维的任务卸载决策矩阵X。/>表明终端节点只能将任务卸载给一个雾节点,表明每个雾节点每次最多服务一个终端节点。
S3.2、令终端节点i与雾节点j之间的权重为势能利用Kuhn-Munkras算法求解公式/>即可得到任务卸载决策矩阵X。KM算法的功能是求完备匹配下的最大权匹配。如果不存在完备匹配,那么算法就会求最大匹配,如果最大匹配有多种,那么结果是最大匹配中权重和最大的。
在步骤S4中包括步骤:
S4.1、在大多数情况下,计算结果是诸如控制信号之类的小数据包,因此可以忽略卸载至雾节点的子任务的计算结果的传输时间。根据卸载决策矩阵X,采用下式建模终端节点i的子任务的本地处理时延Dil和卸载至雾节点j的子任务处理时延Dij:
其中Qij表示终端节点i卸载至雾节点j的任务数据量,Qil表示终端节点i在本地进行处理的任务数据量,且Qij+Qil=Li;
S4.2、当终端节点i接收到所有子任务的计算结果后,才会做出下一步决策,因此终端节点i的任务处理时延Di定义为所有子任务的最大处理时延,即:
Di=max(Dij,Dil);
S4.3、根据使用户的任务处理时延最小这个优化目标,采用下面模型进行建模:
min[max(Dij,Dil)];
S4.4、对于公式min[max(Dij,Dil)],易证当两个子任务的处理时延相等时,总时延最小,由此解得Qij和Qil分别为:
在步骤S5中包括步骤:
S5.1、采用公式计算雾节点j在本轮的能耗;
S5.2、采用公式更新节点j的历史平均能耗;
其中为更新前雾节点的历史平均能耗信息,/>为更新后雾节点的历史平均能耗信息,α为遗忘指数且其值为远小于1的正数。
为了证明本发明的任务卸载结果的公平性,引入Jain公平指数来评估卸载方案的公平性,Jain公平指数F定义为:
Jain公平指数取值范围从1/N到1,当所有雾节点的历史平均能耗相同时取最大值,Jain公平指数取值越大,任务卸载方案的公平性越好。
本实施例对在多用户多雾节点场景下的基于公平的雾计算任务卸载方法进行仿真。假定终端节点与雾节点之间的带宽Bij为10MHz,噪声功率密度为-100dBm/Hz。终端节点的任务数据量Li∈[0.01,0.02]Mbits,终端节点的计算速率fi为2Mbps,终端节点的发射功率为1W。雾节点的续航能力γj∈[1,2],雾节点的计算速率fj∈[3,7]Mbps,雾节点的计算功率/>W。遗忘指数α为0.002。仿真任务数量为1000。终端节点数量为6,雾节点数量N在集合{10,15,20,25}中选择。雾节点数量变化的同时雾节点与终端节点的距离也会变。
为了提供直观的比较,本发明对传统任务卸载方法也进行仿真,仿真参数与上述相同。传统任务卸载方法是指终端节点在选择雾节点进行任务卸载时,只考虑雾节点的计算能力和距离,不考虑雾节点的历史平均能耗。在传统任务卸载方法中,终端节点i与雾节点j之间的势能定义为:
参照图5,防真结果显示,在雾节点数量和位置发生变化时,本发明提出得任务卸载方法的Jain公平指数在0.9附近波动;传统任务卸载方法的Jain公平指数在0.55附近波动。
结果表明本发明提出的公平的雾计算任务卸载方法的公平性明显优于传统任务卸载方案,有效保证了雾节点能量消耗的均衡性。
实施例二:
参照图2,本发明还提供了一种基于公平的雾计算任务卸载系统,包括信息获取模块、势能计算模块、矩阵获取模块、数据量计算模块以及能耗计算模块;
信息获取模块,用于获取整个网络的信息,信息包括各个雾节点的历史平均能耗信息;
势能计算模块,用于根据信息获取模块获取的信息,计算各终端节点与雾节点之间的势能;
矩阵获取模块,利用Kuhn-Munkras算法,以各终端节点与雾节点之间的势能为权值,并以网络整体势能最大为目标,求解终端节点与雾节点之间的一对一匹配,以作出任务卸载决策矩阵X;
数据量计算模块,用于以最小化任务处理时延为目标,计算终端节点卸载任务数据量;
能耗计算模块,用于计算本轮各雾节点的能耗,并更新各雾节点的历史平均能耗信息。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。