一种基于移动雾计算的任务卸载方法转让专利

申请号 : CN202210448728.5

文献号 : CN114866548B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张永敏向侃吕丰任炬张尧学

申请人 : 中南大学

摘要 :

本发明公开了一种基于移动雾计算的任务卸载方法,方案是构建由I个移动雾节点、一个基站、J个请求卸载任务的移动设备、一个云数据库服务器组成的任务卸载系统。基站作为部署任务卸载的第三方平台,移动设备和移动雾节点向基站提供信息。在考虑设备移动性约束以及用户服务质量对不同设备属性的偏好的情况下,将移动雾计算环境下任务卸载中的资源利用率最大化问题建模为二部图的最大加权匹配问题,通过KM算法求解出能够使得用户总体满意度最高的最优任务分配方案。基站根据最优任务分配方案通知请求卸载的移动设备将任务卸载到合适的移动雾节点,并通知对应的移动雾节点接受并执行任务。采用本发明能实现合理的任务分配,有效提高资源利用率。

权利要求 :

1.一种基于移动雾计算的任务卸载方法,其特征在于包括以下步骤:

第一步,构建基于移动雾计算的任务卸载系统;基于移动雾计算的任务卸载系统由I个移动雾节点即MFN、一个作为任务分配服务器的基站即BS、J个请求卸载任务的移动设备即MD、一个用于查询设备信息的云数据库服务器CDS四类网络实体组成,其中I个MFN用M={MFN1,...,MFNii,...,MFNI}表示,I为MFN数量,I为正整数,MFNii表示第ii个MFN,1≤ii≤I;

J个请求卸载任务的移动设备MD用D={MD1,...,MDjj,...MDJ}表示,J为MD数量,J为正整数,MDjj表示第jj个MD,1≤jj≤J;MD和MFN均与BS连接,通过蜂窝网络与BS通信;BS与CDS连接,从CDS的键值数据库中查询并读取设备信息;

BS中安装有设备信息管理模块、任务分配模块、任务卸载模块,其中设备信息管理模块负责收集并管理通信范围内的MD和MFN的设备信息、MD上待处理任务的相关信息,并负责根据设备信息构建出描述设备间点到点链路关系的点到点链路图;任务分配模块基于设备信息管理模块提供的设备信息和点到点链路图构建加权二部图,采用KM算法对加权二部图进行处理,得到最优任务分配方案,并将最优任务分配方案发送给任务卸载模块;任务卸载模块串行地遍历任务分配方案中存在的边,每找到一条边,就向这条边连接的MD和MFN发送对应的卸载指令,指示MD将任务卸载到与其连接的MFN上,指示MFN接收与其连接的MD上的任务数据,并执行任务;

MFN上安装有第一信息注册模块、第一任务卸载模块;第一信息注册模块负责向BS的设备信息管理模块注册其所属MFN的设备名、设备型号、设备资源出售价格以及移动状态信息;第一任务卸载模块负责接收BS发送的卸载指令,根据卸载指令接收对应MD的点到点连接请求,接收待处理任务的任务数据并执行从MD卸载过来的任务;

MD上安装有第二信息注册模块、第二任务卸载模块;第二信息注册模块负责向BS的设备信息管理模块注册所属MD的设备名、设备型号、移动状态信息以及任务信息,任务信息包括任务对设备属性的最低需求、任务对设备属性的服务质量偏好、用户为服务质量、价格分配的权重因子;第二任务卸载模块负责接收BS发送的卸载指令,根据卸载指令向对应MFN发送点到点连接请求,并在点到点连接建立后,将任务卸载到对应MFN上;

CDS中包含一个键值数据库,以键值对形式<设备型号、设备属性信息>存储移动设备的设备型号及设备属性信息,设备属性信息包括设备在计算能力、通信能力、存储能力、感知能力、安全性五个方面的量化得分和设备所支持的点到点通信技术信息;

第二步,I个MFN通过第一信息注册模块并行地向基站发起注册请求以加入到基于移动雾计算的任务卸载系统中,J个MD通过第二信息注册模块并行地向基站发起注册请求以加入到基于移动雾计算的任务卸载系统中;BS的设备信息管理模块在注册时间T内等待接收来自MFN或MD的注册请求,接收到注册请求后,BS的设备信息管理模块将该注册请求加入待处理队列中,继续等待接收注册请求,直至注册时间超时;注册时间超时后,BS的设备信息管理模块开始处理待处理队列中的注册请求,处理完成后,根据注册情况判断是继续等待接收注册请求,还是进入第三步开始任务分配;方法是:

2.1 BS的设备信息管理模块初始化MFN链表及MD链表为空,MFN链表用于组织MFN信息块,MFN信息块用于保存注册成功的MFN的设备信息;MD链表用于组织MD信息块,MD信息块用于保存注册成功的MD的设备信息;BS的设备信息管理模块初始化待处理队列为空,待处理队列用于保存来自MFN或MD的注册请求;

2.2 I个MFN和J个MD通过GPS确定自己的当前移动状态信息,包括当前位置的二维坐标、移动方向、移动速度和状态记录时刻,I个MFN通过第一信息注册模块并行地向基站发起注册请求,J个MD通过第二信息注册模块并行地向基站发起注册请求,具体地,集合M中第ii个MFN即MFNii的注册请求用 表示,其中分别表示MFNii的设备名、设备型号、移动状态信息

以 及 设 备资 源 出 售价 格 ;集 合 D中 第 jj 个 MD 即 MD j j的 注 册请 求 用表示,其中分别表示MDjj的设备名、设备型号、移动

状态信息、MDjj所设定的待处理任务对设备属性的最低要求、MDjj所设定的待处理任务对设备 属性的 服 务 质量 偏好 、MD j j所 设定 的 服务 质 量‑ 价格 权 重因 子 ;

为字符串类型; 为非负浮点数; 均

为六行一列的浮点型数组,且数组中的每个元素均为非负浮点数;

均为五行一列的浮点型数组; 为取值在0到1之间的非负浮点数;

2.3 BS的设备信息管理模块创建一个定时器,根据定时器是否超时确定是否继续等待接收注册请求,根据待处理队列状态确定是否开始处理注册请求,若接收到注册请求将注册请求加入到待处理队列,若待处理队列为空,则转2.3重新接收注册请求;若不为空,转

2.4;

2.4 BS的设备信息管理模块取出位于待处理队列队头的注册请求,判断该注册请求类型,若注册请求中包含四个参数,则该请求为MFN的注册请求,转步骤2.5;若注册请求中包含六个参数,则该请求为MD的注册请求,转步骤2.6;若注册请求既不是四个参数,又不是六个参数,则注册请求非法,注册失败,BS的设备信息管理模块通知该设备注册失败,转2.11;

2.5 BS的设备信息管理模块校验来自MFN的注册请求是否符合格式要求,检查注册请求中包含的设备名、设备型号是否为字符串类型,设备资源出售价格是否为非负浮点数,移动状态信息是否为五行一列浮点型数组,若不符合格式要求,则注册失败,设备信息管理模块通知该MFN注册失败,转2.11;若符合格式要求,转2.7;

2.6 BS的设备信息管理模块校验来自MD的注册请求是否符合格式要求,检查注册请求中包含的设备名、设备型号是否为字符串类型;任务需求和偏好是否为六行一列的浮点型数组,且数组中的每个元素是否为非负浮点数;服务质量‑价格权重因子是否为取值在0‑1之间的非负浮点数;移动状态信息是否为五行一列浮点型数组,若不符合格式要求,则注册失败,设备信息管理模块通知该MD注册失败,转2.11;若符合格式要求,转2.7;

2.7 BS的设备信息管理模块根据注册请求中包含的设备型号从CDS的键值数据库中查询并读取该设备型号的设备属性信息;若能够根据设备型号在键值数据库中查询到设备属性信息,则注册成功,转步骤2.8;否则注册失败,设备信息管理模块通知该设备注册失败,转2.11;

2.8 BS的设备信息管理模块根据步骤2.4中判断的注册请求类型,将注册成功的设备分类为MFN和MD;若为MFN,转步骤2.9;若为MD,转步骤2.10;

2.9 BS的设备信息管理模块为注册成功的MFN构建一个MFN信息块并将MFN信息块加入到MFN链表的尾端,MFN信息块由MFN设备名、MFN设备属性表、MFN点到点通信表、MFN移动状态表、MFN时间戳、设备资源出售价格六部分组成,转2.11;

2.10 BS的设备信息管理模块为注册成功的MD构建一个MD信息块并将MDjj的MD信息块加入到MD链表的尾端,MD信息块由MD设备名、MD点到点通信表、MD移动状态表、MD时间戳、任务信息块五部分组成,所述任务信息块由属性要求表、服务质量偏好表、服务质量‑价格权重因子三部分组成,转2.11;

2.11 BS的设备信息管理模块判断待处理队列是否为空,若不为空,说明待处理队列中还有注册请求尚未处理,转2.4;若为空,说明待处理队列中的注册请求已全部处理完毕,转

2.12;

2.12 BS的设备信息管理模块判断MD链表是否为空,若不为空,说明存在注册成功的MD,转2.13;若为空,说明不存在注册成功的MD,没有任务可进行分配,转2.3继续等待接收注册请求;

2.13 BS的设备信息管理模块判断MFN链表是否为空,若不为空,说明同时存在注册成功的MFN和MD,进入第三步;若为空,说明不存在注册成功的MFN,没有可以执行任务的设备,转2.3继续等待接收注册请求;

第三步,将注册成功的MFN用集合M′表示,M′={MFN′1,MFN′2,...,MFN′i,...,MFN′I′}表示,其中I′为MFN链表中保存的MFN信息块总数即注册成功的MFN总数,为正整数,MFN′i为MFN链表中第i个MFN信息块所表示的MFN,1≤i≤I′;将注册成功的MD用集合D′表示,D′={MD′1,MD′2,...,MD′j,...,MD′J′},其中J′为MD链表中保存的MD信息块总数即注册成功的MD总数,为正整数,MD′j为MD链表中第j个MD信息块所表示的MD,1≤j≤J′;BS的设备信息管理模块读取MFN链表中保存的I′个MFN的MFN移动状态表、MFN点到点通信表,读取MD链表中保存的J′个MD的MD移动状态表、MD点到点通信表,计算出I′个MFN和J′个MD之间的链路可维持时间,构建点到点链路图G,并将G保存到设备信息管理模块中;方法是:

3.1 BS的设备信息管理模块初始化点到点链路图G,G={M′,D′,E},其中M′为MFN集合,D′为MD集合,边集E初始为空;

3.2获取基于移动雾计算的任务卸载系统当前时间tnow;

3.3 BS的设备信息管理模块基于MFN链表中保存的I′个MFN的MFN移动状态表、MFN点到点通信表,MD链表中保存的J′个MD的MD移动状态表、MD点到点通信表,计算出I′个MFN和J′个MD之间的链路可维持时间,构建点到点链路图G,方法为:

3.3.1初始化变量i为1;

3.3.2 BS的设备信息管理模块读取MFN链表中MFN′i的MFN信息块中保存的MFN移动状态表 和MFN点到点通信表

3.3.3根据公式(1)计算出MFN′i当前的横坐标 和MFN′i当前的纵坐标 计算公式如下:

其中 表示MFN′i移动状态信息的记录时刻, 分别表示MFN′i在记

录时刻的横坐标和纵坐标, 分别表示MFN′i在记录时刻的移动方向、移动速

度;

3.3.4 BS的设备信息管理模块读取MD链表中保存的J′个MD的MD移动状态表、MD点到点通信表,计算出MFNi′与J′个MD之间的通信范围半径和链路可维持时间,并在图G中,在顶点MFN′i和能够与MFN′i建立通信链路的MD顶点间添加无向边,边的权重值即为MFN′i和通过该边与MFN′i相连的MD之间的链路可维持时间;

3.3.5若i=I′,说明当前MFN信息块已处于MFN链表的末尾,点到点链路图G构建完毕,进入第四步;否则令i=i+1,转步骤3.3.2;

第四步,BS中的任务分配模块根据设备信息管理模块中保存的MFN链表和MD链表,以及第三步中得到的点到点链路图G构建M′与D′间的加权二部图T′,T′={M′,D′,E′},方法是:

4.1 BS的任务分配模块构建初始二部图T′={M′,D′,E′},E′初始化为空集;

4.2基于MFN链表、MD链表、点到点链路图G计算出J′个MD到I′个MFN间的任务卸载满意度,构建加权二部图T′;方法为:

4.2.1初始化j为1;

4.2.2 BS的任务分配模块读取MD链表中MD′j的MD信息块中的属性要求表 服务质量偏好表 服务质量‑价格权重因子

4.2.3 BS的任务分配模块读取I′个MFN的设备属性表和设备资源出售价格,计算出MD′j到I′个MFN间的任务卸载满意度,并在图T′中,在顶点MDj′和I′个MFN间添加无向边,边的权重为MDj′将任务卸载到通过该边与其相连的MFN上的任务卸载满意度;

4.2.4若j=J′,说明当前MD信息块已处于MD链表的末尾,加权二部图T′构建完毕,进入第五步;否则令j=j+1,返回步骤4.2.2;

第五步,BS的任务分配模块采用KM算法在多项式时间内确定在只存在有限个MFN的情况下,使用户获得最高总体满意度Sat的任务分配方案,该问题用公式(7)定义:约束1

约束2

其中xji为布尔变量,表示MD′j是否将任务卸载到MFN′i上,若是,则xji为1;否则xji为0;

约束1表示一个任务只能卸载到一个MFN上执行;约束2表示一个MFN受移动性、点到点通信的约束,一次只能执行一个任务;BS的任务分配模块将图T′作KM算法的输入,确定能够使得总体用户满意度最高的任务分配方案,方法是:

5.1为T′中存在的每个顶点设置初始顶标值,对于 其初始顶标值l′

(MFN′i)为关联顶点MFN′i的边中具有最大权重的边的权重,即l′(MFN′i)=max{|e′(MFN′i,MD′j)||MD′j∈D‘},对于 令其初始顶标值l′(MD′j)=0;

5.2初始化图T′e=T′,T′e可用T′e={M′,D′,E′e}表示,T′e=T′表示图T′e初始化后的顶点集、边集与图T′的顶点集、边集完全相同;

5.3使Te′成为T‘的相等子图,图T′的相等子图T′e指T′e包含了T′中的所有顶点,并且其边集E′e满足 l′(MFN′i)+l′(MD′j)=|e′(MFN′i,MD′j)|,即E′e中任意一条边的权重都等于其关联的两个顶点的顶标值之和;

5.4求解最优任务分配方案即图T′的最大加权匹配,在图T′的相等子图T′e中执行匈牙利算法,找到T′e的匹配O,O是T′e的子图,同时O边集中的任意两条边都不依附于同一个顶点,若匹配O是T′e的完美匹配即O包含了T′e中的所有顶点,且每个顶点都关联且仅关联一条边,则O就是图T′的最大加权匹配,用O={M′,D′,EO}表示,O的边集Eo中包含的每条边都表示一个卸载决策,即O包含D′与M′间的匹配关系,Eo的每条边连接一个MD和一个MFN,边指示MD将任务卸载到与其连接的MFN上,转第六步;否则按匈牙利算法生成集合L、B,其中L为M′的子集,B为D′的子集,L为匹配O的不饱和点集,B为O的饱和点集,转步骤5.5;

5.5按如下公式更新T′e中各个顶点的顶标值:

公式(8)

δl=min{l′(MFN′i)+l′(MD′j)‑|e′(MFN′i,MD′j)||MFN′i∈L,MD′j∈D‘‑B}    公式(9)其中l′(x)表示顶点x的顶标值,|e′(MFN′i,MD′j)|为图T′中边e′(MFN′i,MD′j)的权重,更新完毕后,转步骤5.3;

第六步,BS的任务卸载模块根据第五步中获得的最优任务分配方案即最大加权匹配O进行任务卸载,如果e(MFN′i,MD′j)∈EO,且|e(MFN′i,MD′j)|>0,则边e(MFN′i,MD′j)表示MD′j上的任务应卸载给MFN′i进行处理;BS的任务卸载模块遍历EO中的每一条边,若边的权重大于0,向边相连的MD和MFN发送卸载指令,MD接收到BS发送的卸载指令后,根据卸载指令指示将任务卸载到与其相连的MFN上执行,MFN接收到BS发送的卸载指令后,根据卸载指令指示接收并执行与其相连的MD上的待处理任务;

第七步,BS的设备信息管理模块清除MD链表中已过时的MD信息块,清除MFN链表中已过时的MFN信息块,BS的设备信息管理模块和任务分配模块清除第三步到第六步中产生的中间数据,包括点到点链路图G、加权二部图T′、相等子图T′e、最大加权匹配O,转2.3开始下一轮任务分配,具体步骤如下:

7.1 BS的设备信息管理模块获取当前时间;

7.2 BS的设备信息管理模块判断MD链表是否为空,不为空,转7.3;为空转7.4;

7.3 BS的设备信息管理模块遍历MD链表,删除MD链表中移动状态信息已过时的MD信息块;

7.4 BS的设备信息管理模块判断MFN链表是否为空,若不为空,转7.5;为空,转7.6;

7.5 BS的设备信息管理模块遍历MFN链表,删除MFN链表中移动状态信息已过时的MFN信息块;

7.6 BS的设备信息管理模块删除点到点链路图G;

7.7 BS的任务分配模块删除加权二部图T′、相等子图T′e、最大加权匹配R;

7.8转2.3开始下一轮任务分配。

2.如权利要求1所述的一种基于移动雾计算的任务卸载方法,其特征在于所述键值数据库中设备在计算能力、通信能力、存储能力、感知能力、安全性五个方面的量化得分通过基准测试程序测试得出,均用非负浮点数表示。

3.如权利要求2所述的一种基于移动雾计算的任务卸载方法,其特征在于所述基准测试程序包括流测试程序集STREAM,要求版本号5.10.1;微基准测试软件LMBENCH,要求版本号3.0‑a9;系统漏洞测评及分析软件Nessus,要求版本号8.13.1。

4.如权利要求1所述的一种基于移动雾计算的任务卸载方法,其特征在于所述计算能力包括CPU型号、CPU主频数、是否支持超频;所述通信能力包括是否配置5G芯片并具备5G通信能力;所述存储能力包括内存及硬盘存储空间的大小,内存、硬盘的型号;所述感知能力包括是否配备了陀螺仪、温度、湿度传感器;所述安全性包括提供隔离化执行环境、操作系统重大漏洞数量;所述设备支持的点到点通信技术信息包括是否支持蓝牙,LTE‑Direct,WIFI‑Direct,所支持点到点通信技术的通信范围。

5.如权利要求1所述的一种基于移动雾计算的任务卸载方法,其特征在于2.3步所述BS的设备信息管理模块根据待处理队列状态确定是否开始处理注册请求的方法是:

2.3.1设定注册时间T,T为1~3s,设置定时器超时时间为T,启动定时器;

2.3.2判定定时器是否超时,若未超时,等待接收来自MFN或MD的注册请求,若接收到一个来自MFN或MD的注册请求,转2.3.3;若定时器超时,转2.3.4;

2.3.3 BS的设备信息管理模块将该注册请求加入到待处理队列的尾端,转2.3.2;

2.3.4 BS的设备信息管理模块判断待处理队列是否为空,若为空,转2.3.1重新开始接收注册请求;若不为空,结束。

6.如权利要求1所述的一种基于移动雾计算的任务卸载方法,其特征在于2.9步所述BS的设备信息管理模块为注册成功的MFN构建一个MFN信息块的方法是:

2.9.1 BS的设备信息管理模块读取MFN注册请求中的设备名,保存到MFN信息块的MFN设备名中,MFN设备名为字符串类型,用于标志该MFN信息块归属于哪个MFN;

2.9.2 BS的设备信息管理模块将从键值数据库中读取到的MFN设备属性信息保存到MFN信息块的MFN设备属性表中,MFN设备属性表为五行一列的浮点型数组;MFNii的设备属性表用 表示,其中 分别表示MFNii在计算能力、通信能力、存储能力、感知能力以及安全性上的量化得分, 均为

非负浮点数;

2.9.3 BS的设备信息管理模块将从键值数据库中读取到的MFN设备所支持的点到点通信技术信息保存到MFN信息块的MFN点到点通信表中,MFN点到点通信表为三行一列的浮点型数组;MFNii的点到点通信表用数组 表示,其中 分别代表MFNii所支持的蓝牙、LTE‑Direct、WIFI‑Direct的通信范围的半径,用非负浮点数表示,单位为m,MFNii不支持第p类点到点通信技术时,则令

2.9.4 BS的设备信息管理模块将MFN汇报的移动状态信息保存到MFN信息块的MFN移动状态表中,MFN移动状态表为五行一列的浮点型数组;MFNii的移动状态表用五行一列的浮点型数组 表示,其中 分别表示MFNii当前位置的横坐标、纵坐标,横纵坐标轴刻度均为1,横纵坐标轴单位均为m, 为移动方向与横坐标轴正向之间的角度,在由GPS提供的平面直角坐标系中表示MFNii当前的移动方向, 表示当前移动速度,单位为m/s; 表示该移动状态被记录的时刻,单位为s;

2.9.5 BS的设备信息管理模块将MFN注册请求中汇报的设备资源出售价格保存到MFN信息块的设备资源出售价格中,设备资源出售价格为浮点数类型,MFNii的设备资源出售价格用 表示,为非负浮点数;至此,MFN信息块构建完毕。

7.如权利要求1所述的一种基于移动雾计算的任务卸载方法,其特征在于2.10步所述BS的设备信息管理模块为注册成功的MD构建一个MD信息块的方法是:

2.10.1 BS的设备信息管理模块读取MD注册请求中汇报的设备名,并保存到MD信息块的MD设备名中,MD设备名为字符串类型,用于标志该MD信息块归属于哪个MD;

2.10.2 BS的设备信息管理模块将从键值数据库中读取到的MFN设备所支持的点到点通信技术信息保存到MD信息块的MD点到点通信表表中,MD点到点通信表为三行一列的浮点型数组;MDjj的点到点通信表用数组 表示,其中 分别代表MDjj所支持的蓝牙、LTE‑Direct、WIFI‑Direct的通信范围的半径,用浮点数表示,单位为m,MDjj不支持第p类点到点通信技术时,

2.10.3 BS的设备信息管理模块将MD所汇报的移动状态信息保存到MD信息块的MD移动状态表中,MD移动状态表为五行一列的浮点型数组;MDjj的移动状态表用五行一列的浮点型数组 表示,其中 分别表示MDjj当前的横坐标、纵坐标,横纵坐标轴刻度均为1,横纵坐标轴单位均为m, 为移动方向与横坐标轴正向之间的角度,在由GPS提供的平面直角坐标系中表示MDjj当前的移动方向, 表示当前移动速度,单位为m/s,表示该移动状态被记录的时刻,单位为s;

2.10.4 MD信息块的任务信息块由属性要求表、服务质量偏好表、服务质量‑价格权重因子三部分组成,属性要求表和服务质量偏好表均为六行一列浮点型数组,服务质量‑价格权重因子为取值在0‑1之间的浮点数,设备信息管理模块将MD注册请求中的后三项参数req,pre,w分别保存到任务信息块的属性要求表、服务质量偏好表、服务质量‑价格权重因子中;MDjj的MD信息块的任务信息块中的属性要求表用六行一列浮点型数组 表示,数组元素 均为非负浮点数,分别表示MD任务对计算能力、通信能力、存储能力、感知能力、安全性、链路可维持时间的最低要求,由第jj个MD自主设定;MDjj的MD信息块的任务信息块中的服务质量偏好表用六行一列浮点型数组表示,数组元素 均为非负浮点数,分别表示MD任务对计算能力、通信能力、存储能力、感知能力、安全性、链路可维持时间这6种设备属性的服务质量偏好,任务对第q种设备属性的服务质量偏好指执行任务设备的第q种属性值若增加1,任务能够获得的服务质量增益;服务质量偏好表由MDjj自主设定,0≤q≤5;MDjj的MD信息块的任务信息块中的服务质量‑价格权重因子可用 表示, 为取值在0‑1之间的浮点数,表示MDjj对服务质量和价格之间的权衡,由MDjj自主设定,用户可通过调节服务质量‑价格权重因子满足自身对服务质量或价格的不同需求;

2.10.5 MDjj的MD信息块构建完毕。

8.如权利要求1所述的一种基于移动雾计算的任务卸载方法,其特征在于3.3.4步所述BS的设备信息管理模块在图G中,在顶点MFN′i和能够与MFN′i建立通信链路的MD顶点间添加无向边的方法是:

3.3.4.1初始化j为1;

3.3.4.2 BS的设备信息管理模块读取MD链表中MD′j的MD信息块中保存的MD移动状态表和MD点到点通信表

3.3.4.3根据公式(2)计算出MFN′i与MD′j之间的通信范围半径R,若R=0,转3.3.4.6;若R≠0,转3.3.4.4;

其中 分别表示MFN′i所支持的蓝牙、LTE‑Direct、WIFI‑

Direct的通信范围的半径, 分别表示MD′j所支持的蓝牙、LTE‑

Direct、WIFI‑Direct的通信范围的半径, 表示当MFN′i与MD′j使用第p类点到点通信技术进行通信时的通信范围半径,0≤p≤2;

3.3.4.4根据公式(3)计算出MD′j当前的横坐标 和MD′j当前的纵坐标其中 表示MD′j移动状态信息的记录时刻, 分别表示MD′j在记录

时刻的横坐标和纵坐标, 分别表示MD′j在记录时刻的移动方向、移动速度;

3.3.4.5为图G新增无向边e(MFN′i,MD′j),根据公式(4)计算e(MFN′i,MD′j)的权重|e(MFN′i,MD′j)|,权重|e(MFN′i,MD′j)|表示MFN′i与MD′j间的链路可维持时间;

其中a表示MFN′i与MD′j在横轴正向方向上的速度之差,b表示MFN′i与MD′j的横坐标之差,c表示MFN′i与MD′j在纵轴正向方向上的速度之差,d表示MFN′i与MD′j的纵坐标之差,R表示MFNi′与MDj′之间的通信范围半径;

3.3.4.6若j=J′,说明当前MD信息块已处于MD链表的末尾,完成了MFN′i与J′个MD之间的通信范围半径和链路可维持时间的计算;否则令j=j+1,转步骤3.3.4.2。

9.如权利要求1所述的一种基于移动雾计算的任务卸载方法,其特征在于4.2.3步所述BS的任务分配模块在图T′中,在顶点MDj′和I′个MFN间添加无向边的方法为:

4.2.3.1初始化i为1;

4.2.3.2为图T′新增无向边e′(MFN′i,MD′j),将权重|e′(MFN′i,MD′j)|初始化为0;

4.2.3.3 BS的任务分配模块读取MFN链表中MFN′i的MFN信息块中的设备属性表 和设备资源出售价格 并根据 判断MFN′i的设备属性是否达到MD′j上待处理任务对设备属性的最低要求,即满足且

(e(MFN′i,MD′j)∈G(M′,D′,E))

即MFN′i必须同时满足MD′j任务对计算能力、通信能力、存储能力、感知能力、安全性、链路可维持时间这六个方面的最低要求并满足e(MFN′i,MD′j)∈G(M′,D′,E);其中分别表示MD′j任务对计算能力、通信能力、存储能力、感知能力、安全性、链路可维持时间这六个方面的最低要求,

分别表示MFN′i在计算能力、通信能力、存储能力、

感知能力、安全性这五个方面的量化得分,条件e(MFN′i,MD′j)∈G(M′,D′,E)表示MFN′i必须能够与MD′j建立点到点连接,|e(MFN′i,MD′j)|表示当MFN′i与MD′j建立点到点连接时,其通信链路能够维持的时间;若不能同时满足这7个条件,直接转步骤4.2.3.4;否则为边e′(MFN′i,MD′j)按公式(5)修改权重,再转步骤4.2.3.4,权重修改公式如下:其中 表示MD′j设定的服务质量‑价格权重因子, 表示MFN′i的设备资源出售价格,表示MD′j将任务卸载到MFN′i上获得的预期服务质量,的计算公式如下:其中 为MD′j的服务质量偏好表的第k项,表示MD′j任务对第k种设备属性的服务质量偏好,0≤k≤5; 为MFNi′的设备属性表的第k项,表示MFNi′在第k种设备属性上的量化得分; 为MD′j的服务质量偏好表的第5项,即MD′i对链路可维持时间的服务质量偏好;

4.2.3.4若i=I′,说明当前MFN信息块已处于MFN链表的末尾,MD′j到I′个MFN间的任务卸载满意度计算完成;否则令i=i+1,返回步骤4.2.3.2。

10.如权利要求1所述的一种基于移动雾计算的任务卸载方法,其特征在于5.3步所述使Te′成为T‘的相等子图的方法是:

5.3.1将图T′中满足边关联的两个顶点的顶标值之和等于该边权重的边加入到T′e中,遍历图T′的边集E′,对于 如果l′(MFN′i)+l′(MD′j)=|e′(MFN′i,MD′j)|并且 将边e′(MFN′i,MD′j)添加到图T′e的边集E′e中,即令E′e=E′e∪e′(MFN′i,MD′j),遍历完成后,图T′e新增边完毕;

5.3.2删除图Te′中不满足边关联的两个顶点的顶标值之和不等于该边权重的边,遍历T′e的边集E′e,对于 如果l′(MFN′i)+l′(MD′j)≠|e′(MFN′i,MD′j)|,即边e′(MFN′i,MD′j)的权重不等于其关联的两个顶点的顶标值之和,则从边集E′e中删除边e′(MFN′i,MD′j),遍历完成后,图T′e删除边完毕,T′e成为T‘的相等子图。

11.如权利要求1所述的一种基于移动雾计算的任务卸载方法,其特征在于第六步所述BS的任务卸载模块根据最大加权匹配0进行任务卸载的具体方法是:

6.1初始化s为1;

6.2 BS的任务卸载模块读取EO中的第s条边es,es关联的MFN用 表示,es关联的MD用 表示,若es的权重|es|>0,转6.3;若|es|=0,转6.7;

6.3 BS的任务卸载模块从MD链表中读取 的设备名,从MFN链表中读取 的设备名;

6.4 BS的任务卸载模块根据 的设备名与 建立通信,将 的设备名插入

到卸载指令中后,发送卸载指令给 以通知 开始任务卸载并将任务卸载到

上;BS的任务卸载模块根据 的设备名与 建立通信,将 的设备名

插入到卸载指令中,发送卸载指令给 以通知 准备接收 上待处理任务

的数据并执行待处理任务;

6.5 上的第二任务卸载模块接收BS所发送的卸载指令,根据卸载指令中包含的设

备名向 发起点到点连接请求; 上的第一任务卸载模块接收BS所发送的卸载

指令,根据卸载指令中包含的设备名,监听并接收来自 的点到点连接请求;

6.6 与 的点到点连接建立后, 基于点到点通信将任务卸载到

上, 接收任务数据并执行任务;

6.7 BS的设备信息管理模块从MD链表中删除 所对应的MD信息块,从MFN链表中删除 所对应的信息块;

6.8若s<|EO|,|EO|表示集合EO包含的总边数,则令s=s+1,转6.2;若s=|Eo|,说明遍历EO结束,任务卸载模块已发送完所有任务卸载指令,本轮任务分配执行完毕。

12.如权利要求1所述的一种基于移动雾计算的任务卸载方法,其特征在于7.3步所述BS的设备信息管理模块删除MD链表中移动状态信息己过时的MD信息块的方法是:

7.3.1初始化j为1;

7.3.2 BS读取MD链表的第j个MD信息块的MD移动状态表中保存的状态记录时刻,若记录时刻距离当前时间超过5s,则该MD信息块中保存的移动状态信息已过时,转7.3.3;若记录时刻距离当前时间不超过5s,转7.3.4;

7.3.3若第j个MD信息块位于MD链表的尾端,设备信息管理模块从MD链表中删除该MD信息块,结束;若第j个MD信息块不是位于MD链表的尾端,设备信息管理模块从MD链表中删除该MD信息块,则该MD信息块的下一个MD信息块成为MD链表中第i个MD信息块,转7.3.2;

7.3.4若第j个MD信息块位于MD链表的尾端,结束;否则令j=j+1,转7.3.2。

13.如权利要求1所述的一种基于移动雾计算的任务卸载方法,其特征在于7.5步所述BS的设备信息管理模块删除MFN链表中移动状态信息已过时的MFN信息块的方法是:

7.5.1初始化i为1;

7.5.2 BS读取MFN链表的第i个MFN信息块的MFN移动状态表中保存的状态记录时刻,若记录时刻距离当前时间超过5s,则该MFN信息块中保存的移动状态信息已过时,转7.5.3;若记录时刻距离当前时间不超过5s,转7.5.4;

7.5.3若第i个MFN信息块位于MFN链表的尾端,设备信息管理模块从MFN链表中删除该MFN信息块,结束;若第i个MFN信息块不是位于MFN链表的尾端,设备信息管理模块从MFN链表中删除该MFN信息块,则该MFN信息块的下一个MFN信息块成为MFN链表中第i个MFN信息块,转7.5.2;

7.5.4若第i个MFN信息块位于MFN链表的尾端,结束;否则令i=i+1,转7.5.2。

说明书 :

一种基于移动雾计算的任务卸载方法

技术领域

[0001] 本发明涉及通信技术领域,特别涉及一种基于移动雾计算的任务卸载方法。

背景技术

[0002] 随着处理器,存储器等硬件能力不断提高,网络技术不断发展,各种智能设备如移动智能手机获得了巨大的普及,成为我们日常生活中不可缺少的一部分。在此背景下,越来越多的手机应用如沉浸式游戏和电影、视频流、人机交互服务等相继涌现。这些新颖的应用通常需要消耗大量的计算、通信、能量等资源,对移动设备的计算、通信、存储等各方面能力提出了更高的要求,由于受到物理尺寸的限制,移动设备通常能力受限,具有有限的计算、通信资源和电池容量,难以满足所有应用的服务质量要求。
[0003] 移动云计算最先被提出以解决这一问题,但云计算中云服务器距离任务和数据产生源头较远,难以满足任务的实时性要求,同时容易受到不稳定的无线连接(例如蜂窝信号不良)和广域网延迟的干扰,且用户需要支付较高的云服务费用。移动雾计算中移动雾节点(具有空闲资源、能够提供服务的其他移动设备,如移动用户周边的智能手机、智能平板、智能手表等)相比云服务器更靠近数据和任务产生源头,能为移动用户提供更低延迟的服务、数据在离设备端更近的移动雾节点上进行处理,传输也更高效,能够减少传输能耗。同时移动雾节点提供的资源更加多样化,例如传感器、摄像头等,能够支持执行的任务类型更多样,例如移动感知型任务等。
[0004] 移动雾计算下的任务卸载是解决终端设备计算、通信、电池容量等资源受限问题的技术,具体来说,任务卸载通过将处于高负载状态或自身能力较弱的终端设备上的任务卸载到周边具有空闲资源或具有更强能力的其他移动用户设备上,通过利用其他设备更强的计算、通信、存储、感知等能力以及设备上的空闲资源来降低本地设备的负载压力,加快任务执行速度,节省终端设备能耗,提高用户获得的服务质量。
[0005] 在进行任务卸载方法设计时,需要考虑到移动雾计算环境下任务卸载的特点:
[0006] (1)移动设备和移动雾节点间的连接不稳定,作为用户设备或移动雾节点的智能手机、智能平板、智能手表等具有移动性,而蓝牙、LTE‑Direct、WIFI‑Direct等D2D通信技术的通信范围有限,设备的移动性可能导致设备间的连接断开,进而导致任务数据传输失败,因此任务卸载方法需要考虑到设备移动性带来的影响。
[0007] (2)设备资源受限,设备间能建立的点到点连接数量受限,由于受到物理尺寸的限制,移动设备的资源高度受限,能够同时服务的任务数量有限。同时现有的移动设备支持的点到点通信技术数量大都不超过三种,一般的移动设备大都只支持蓝牙、NFC、WIFI‑Direct、LTE‑Direct中的一到三种,而NFC(Near Field ComMDnication,近场通信)技术所支持的通信范围太小,由于(1)的限制,不适合应用到移动雾计算的任务卸载中,因此移动设备能够同时建立的点到点连接数量有限。任务卸载方法必须考虑到这些特征。
[0008] (3)设备资源异构性,不同的移动智能设备例如智能手机、智能手表、平板电脑等配备了不同型号的处理器、通信芯片、感知器、存储器等,支持的操作系统也可能不同,因此不同设备在计算、通信、存储、感知、安全性等能力上具有差异性。例如智能手机都具备蜂窝通信能力,配备了多样的传感器、较为强大的处理器,有些处理器还具有超频功能,而许多智能手表只能通过蓝牙进行通信,同时计算能力相对受限。因此它们处理任务所需时间不同,提供的服务质量也不同。
[0009] (4)任务需求的异构性,不同类型的任务对设备属性的要求不同。例如大型在线游戏、AR、VR等计算密集型应用对实时性和设备计算能力有着较高的要求,用户偏向于将此类任务卸载到计算能力强例如配备了可超频CPU的设备上;而数据上传与下载此类传输密集型任务,用户则偏向于将其卸载到周边配备了5G芯片、网络环境良好的设备上;执行人脸识别此类涉及用户隐私的任务时,用户则偏好于将任务卸载到安全性高,能够提供隔离执行环境或能够有效防止恶意软件攻击的设备上。因此任务卸载方法需要根据任务的不同需求和设备的不同属性实现合理的任务分配。现有的针对移动雾计算下的任务卸载方法(如陈旭、章君山,"当D2D遇见云:雾计算中混合移动任务卸载,"‑IEEE通信国际会议(ICC),2017,pp.1‑6,,英文文献索引为X.Chen and J.Zhang,"When D2D meets cloud:Hybrid mobile task offloadings in fog computing,"2017IEEE International Conference on Communications(ICC),2017,pp.1‑6;RazieRoostaei,Marzieh Sheikhi,Zeinab Movahedi,“支持D2D的MCC环境下针对优先级约束组件的计算卸载”,AdHoc Networks,2022,卷124,英文文献索引为Razie Roostaei,Marzieh Sheikhi,Zeinab Movahedi,"Computation offloading in D2D‑enabled MCC for precedence‑constrained components",AdHoc Networks,Volume 124,2022,AdHoc Networks为期刊名,
RazieRoostaei,Marzieh Sheikhi,Zeinab Movahedi为人名)基本没有考虑移动设备移动性对任务卸载带来的影响,不能有效预防移动设备移动导致设备间连接断开,进而导致任务卸载失败的情况。另外现有的任务卸载方法通常只针对计算密集型任务,没有考虑任务对通信、安全、存储、感知等其他能力的需求,无法支持多种类型任务的卸载,资源利用率低。因此,在移动雾计算场景下如何对移动设备上的待处理任务进行任务卸载,解决目前移动雾计算环境下任务卸载方法存在的不能有效预防设备移动性导致任务卸载失败、无法支持卸载多种类型任务、资源利用率低的问题是本领域技术人员极为关注的技术问题。

发明内容

[0010] 本发明要解决的技术问题是提供一种基于移动雾计算的任务卸载方法,该方法基于移动雾计算环境下任务卸载的特点,考虑设备移动性、设备资源受限性及异构性、任务需求异构性,能够有效预防因设备移动性导致的任务卸载失败问题、支持卸载多种类型任务,同时综合考虑设备异构性及任务需求异构性,以实现合理的任务分配,有效提高资源利用率。
[0011] 本发明的技术方案是:将基站作为部署任务卸载的第三方平台,通信范围内请求卸载任务的移动设备(MD)向基站提供移动状态、待处理任务的需求及偏好、设备型号、设备名等信息,移动雾节点(MFN)则向基站提供移动状态、移动雾节点资源出售价格、设备型号、设备名等信息。在考虑设备移动性约束以及用户服务质量对不同设备属性的偏好的情况下,将移动雾计算环境下任务卸载中的资源利用率最大化问题建模为二部图的最大加权匹配问题,通过KM(Kuhn‑Munkres)算法(Kuhn,H.W.,“分配问题的匈牙利方法”,2005.Naval Research Logistics(NRL),52(1):7‑21,英文文献索引为Kuhn,H.W.(2005).The Hungarian method for the assignment problem.Naval Research Logistics(NRL),52(1),7‑21.)求解出能够使得用户总体满意度最高的最优任务分配方案。之后,基站根据最优任务分配方案向移动设备和移动雾节点发出卸载指令,通知请求卸载的移动设备将任务卸载到合适的移动雾节点上去,并通知对应的移动雾节点接受任务数据并执行任务。
[0012] 本发明的具体技术方案是:
[0013] 第一步,构建基于移动雾计算的任务卸载系统。基于移动雾计算的任务卸载系统由I个MFN(Mobile Fog Node,移动雾节点)、一个作为任务分配服务器的基站即BS(Base Station)、J个请求卸载任务的移动设备MD(Mobile Device,由用户使用的移动设备)、一个用于查询设备信息的云数据库服务器CDS(Cloud Database Server)四类网络实体组成,其中I个MFN用M={MFN1,...,MFNii,...,MFNI}表示,I为MFN数量,I为正整数,MFNii表示第ii个MFN,1≤ii≤I;J个请求卸载任务的移动设备MD用D={MD1,...,MDjj,...MDJ}表示,J为MD数量,J为正整数,MDjj表示第jj个MD,1≤jj≤J。MD和MFN均与BS连接,通过蜂窝网络与BS通信;BS与CDS连接,从CDS的键值数据库中查询并读取设备信息。
[0014] BS中安装有设备信息管理模块、任务分配模块、任务卸载模块,其中设备信息管理模块负责收集并管理通信范围内的MD和MFN的设备信息(例如设备的移动状态信息以及设备的计算能力、通信能力等属性信息)、MD上待处理任务的相关信息(例如待处理任务对设备属性的最低要求、待处理任务对设备属性的服务质量偏好),并负责根据设备信息构建出描述设备间点到点链路关系的点到点链路图;任务分配模块基于设备信息管理模块提供的设备信息和点到点链路图构建加权二部图,采用KM算法对加权二部图进行处理,得到最优任务分配方案(任务分配方案包含MD集合D与MFN集合M间的匹配关系,匹配关系包含多条边,每条边连接一个MD和一个MFN,边指示MD将任务卸载到与其连接的MFN上),并将最优任务分配方案发送给任务卸载模块;任务卸载模块串行地遍历任务分配方案中存在的边,每找到一条边,就向这条边连接的MD和MFN发送对应的卸载指令,指示MD将任务卸载到与其连接的MFN上,指示MFN接收与其连接的MD上的任务数据,并执行任务。
[0015] MFN上安装有第一信息注册模块、第一任务卸载模块。第一信息注册模块负责向BS的设备信息管理模块注册其所属MFN的设备名、设备型号、设备资源出售价格以及移动状态信息;第一任务卸载模块负责接收BS发送的卸载指令,根据卸载指令接收对应MD的点到点连接请求,接收待处理任务的任务数据并执行从MD卸载过来的任务。
[0016] MD上安装有第二信息注册模块、第二任务卸载模块。第二信息注册模块负责向BS的设备信息管理模块注册所属MD的设备名、设备型号、移动状态信息以及任务信息,任务信息包括任务对设备属性的最低需求、任务对设备属性的服务质量偏好、用户为服务质量、价格分配的权重因子。第二任务卸载模块负责接收BS发送的卸载指令,根据卸载指令向对应MFN发送点到点连接请求,并在点到点连接建立后,将任务卸载到对应MFN上。
[0017] CDS中包含一个键值数据库,存储当今主流移动设备的设备型号及设备属性信息,以键值对形式<设备型号、设备属性信息>存储,设备属性信息包括设备在计算能力(CPU型号、CPU主频数、是否支持超频)、通信能力(是否配置5G芯片,具备5G通信能力)、存储能力(内存及硬盘存储空间的大小,内存、硬盘的型号)、感知能力(是否配备了陀螺仪、温度、湿度等传感器)、安全性(能否提供隔离化执行环境、操作系统重大漏洞数量)五个方面的量化得分,量化得分通过使用常用的基准测试程序(如STREAM、LMBENCH、Nessus)对设备的计算能力、存储能力、通信能力、感知能力、安全性进行测试得出,用非负浮点数表示,设备属性信息还包括设备所支持的点到点通信技术信息(是否支持蓝牙,LTE‑Direct,WIFI‑Direct,所支持点到点通信技术的通信范围)。
[0018] 第二步,I个MFN通过第一信息注册模块并行地向基站发起注册请求以加入到基于移动雾计算的任务卸载系统中,J个MD通过第二信息注册模块并行地向基站发起注册请求以加入到基于移动雾计算的任务卸载系统中。BS的设备信息管理模块在注册时间T内等待接收来自MFN或MD的注册请求,接收到注册请求后,BS的设备信息管理模块将该注册请求加入待处理队列中,继续等待接收注册请求,直至注册时间超时。注册时间超时后,BS的设备信息管理模块开始处理待处理队列中的注册请求,处理完成后,根据注册情况判断是继续等待接收注册请求,还是进入第三步开始任务分配。方法是:
[0019] 2.1BS的设备信息管理模块初始化MFN链表及MD链表为空,MFN链表用于组织MFN信息块,MFN信息块用于保存注册成功的MFN的设备信息;MD链表用于组织MD信息块,MD信息块用于保存注册成功的MD的设备信息;BS的设备信息管理模块初始化待处理队列为空,待处理队列用于保存来自MFN或MD的注册请求。
[0020] 2.2I个MFN和J个MD通过GPS确定自己的当前移动状态信息,包括当前位置的二维坐标、移动方向、移动速度和状态记录时刻,I个MFN通过第一信息注册模块并行地向基站发起注册请求,J个MD通过第二信息注册模块并行地向基站发起注册请求,具体地,集合M中第ii个MFN即MFNii的注册请求用 表示,其中 分别表示MFNii的设备名、设备型号、移动状态信
息以及设备资源出售价格。集合D中第jj个MD即MDjj的注册请求用
表示,其中
分别表示MDjj的设备名、设备型号、移动
状态信息、MDjj所设定的待处理任务对设备属性的最低要求、MDjj所设定的待处理任务对设备 属性的 服 务 质量 偏好 、MD j j所 设定 的 服务 质 量‑ 价格 权 重因 子 。
为字符串类型; 为非负浮点数; 均
为六行一列的浮点型数组,且数组中的每个元素均为非负浮点数;
均为五行一列的浮点型数组; 为取值在0到1之间的非负浮点数。
[0021] 2.3BS的设备信息管理模块创建一个定时器,根据定时器是否超时确定是否继续等待接收注册请求,根据待处理队列状态确定是否开始处理注册请求。方法是:
[0022] 2.3.1设定注册时间T(T为1~3s),设置定时器超时时间为T,启动定时器;
[0023] 2.3.2判定定时器是否超时,若未超时,等待接收来自MFN或MD的注册请求,若接收到一个来自MFN或MD的注册请求,转2.3.3;若定时器超时,转2.3.4;
[0024] 2.3.3BS的设备信息管理模块将该注册请求加入到待处理队列的尾端,转2.3.2;
[0025] 2.3.4BS的设备信息管理模块判断待处理队列是否为空,若为空,转2.3.1重新开始接收注册请求;若不为空,转2.4。
[0026] 2.4BS的设备信息管理模块取出位于待处理队列队头的注册请求,判断该注册请求类型,若注册请求中包含四个参数,则该请求为MFN的注册请求,转步骤2.5;若注册请求中包含六个参数,则该请求为MD的注册请求,转步骤2.6;若注册请求既不是四个参数,又不是六个参数,则注册请求非法,注册失败,BS的设备信息管理模块通知该设备注册失败,转2.11。
[0027] 2.5BS的设备信息管理模块校验来自MFN的注册请求是否符合格式要求,检查注册请求中包含的设备名、设备型号是否为字符串类型,设备资源出售价格是否为非负浮点数,移动状态信息是否为五行一列浮点型数组,若不符合格式要求,则注册失败,设备信息管理模块通知该MFN注册失败,转2.11;若符合格式要求,转2.7。
[0028] 2.6BS的设备信息管理模块校验来自MD的注册请求是否符合格式要求,检查注册请求中包含的设备名、设备型号是否为字符串类型;任务需求和偏好是否为六行一列的浮点型数组,且数组中的每个元素是否为非负浮点数;服务质量‑价格权重因子是否为取值在0‑1之间的非负浮点数;移动状态信息是否为五行一列浮点型数组,若不符合格式要求,则注册失败,设备信息管理模块通知该MD注册失败,转2.11;若符合格式要求,转2.7。
[0029] 2.7BS的设备信息管理模块根据注册请求中包含的设备型号从CDS的键值数据库中查询并读取该设备型号的设备属性信息。若能够根据设备型号在键值数据库中查询到设备属性信息,则注册成功,转步骤2.8;否则注册失败,设备信息管理模块通知该设备注册失败,转2.11。
[0030] 2.8BS的设备信息管理模块根据步骤2.4中判断的注册请求类型,将注册成功的设备分类为MFN和MD。若为MFN,转步骤2.9;若为MD,转步骤2.10。
[0031] 2.9BS的设备信息管理模块为注册成功的MFN构建一个MFN信息块,MFN信息块由MFN设备名、MFN设备属性表、MFN点到点通信表、MFN移动状态表、MFN时间戳、设备资源出售价格六部分组成,具体构建过程如下:
[0032] 2.9.1BS的设备信息管理模块读取MFN注册请求中的设备名,保存到MFN信息块的MFN设备名中,MFN设备名为字符串类型,用于标志该MFN信息块归属于哪个MFN。
[0033] 2.9.2BS的设备信息管理模块将从键值数据库中读取到的MFN设备属性信息保存到MFN信息块的MFN设备属性表中,MFN设备属性表为五行一列的浮点型数组。具体地,MFNii的设备属性表可用 表示,其中 分别表示MFNii在计算能力、通信能力、存储能力、感知能力以及安全性上的量化得分,
均为非负浮点数;
[0034] 2.9.3BS的设备信息管理模块将从键值数据库中读取到的MFN设备所支持的点到点通信技术信息保存到MFN信息块的MFN点到点通信表中,MFN点到点通信表为三行一列的浮点型数组。具体地 ,MFNii的点到点通信表 用数组 表示,其中分别代表MFNii所支持的蓝牙、LTE‑Direct、WIFI‑Direct的通信
范围的半径,用非负浮点数表示,单位为m,MFNii不支持第p类点到点通信技术时,则令[0035] 2.9.4BS的设备信息管理模块将MFN汇报的移动状态信息保存到MFN信息块的MFN移动状态表中,MFN移动状态表为五行一列的浮点型数组。具体地,MFNii的移动状态表用五行一列的浮点型数组 表示,其中 分别表示MFNii当前位置的横坐标、
纵坐标,横纵坐标轴刻度均为1,横纵坐标轴单位均为m, 为移动方向与横坐标轴正向之间的角度,在由GPS提供的平面直角坐标系中表示MFNii当前的移动方向, 表示当前移动速度,单位为m/s; 表示该移动状态被记录的时刻,单位为s。
[0036] 2.9.5BS的设备信息管理模块将MFN注册请求中汇报的设备资源出售价格保存到MFN信息块的设备资源出售价格中,设备资源出售价格为浮点数类型,具体地,MFNii的设备资源出售价格用 表示,为非负浮点数;至此,MFN信息块构建完毕。
[0037] 2.9.6BS的设备信息管理模块将MFN信息块加入到MFN链表的尾端,转2.11。
[0038] 2.10BS的设备信息管理模块为注册成功的MD构建一个MD信息块,MD信息块由MD设备名、MD点到点通信表、MD移动状态表、MD时间戳、任务信息块五部分组成,具体构建过程如下:
[0039] 2.10.1BS的设备信息管理模块读取MD注册请求中汇报的设备名,并保存到MD信息块的MD设备名中,MD设备名为字符串类型,用于标志该MD信息块归属于哪个MD。
[0040] 2.10.2BS的设备信息管理模块将从键值数据库中读取到的MFN设备所支持的点到点通信技术信息保存到MD信息块的MD点到点通信表表中,MD点到点通信表为三行一列的浮点型数 组 ;具 体地 ,MD jj的点 到点 通信表 可用数组 表 示 ,其中分别代表MDjj所支持的蓝牙、LTE‑Direct、WIFI‑Direct的通信范
围的半径,用浮点数表示,单位为m,MDjj不支持第p类点到点通信技术时,
[0041] 2.10.3BS的设备信息管理模块将MD所汇报的移动状态信息保存到MD信息块的MD移动状态表中,MD移动状态表为五行一列的浮点型数组;具体地,MDjj的移动状态表用五行一列的浮点型数组 表示,其中 分别表示MDjj当前的横坐标、纵坐标,横纵坐标轴刻度均为1,横纵坐标轴单位均为m, 为移动方向与横坐标轴正向之间的角度,在由GPS提供的平面直角坐标系中表示MDjj当前的移动方向, 表示当前移动速度,单位为m/s, 表示该移动状态被记录的时刻,单位为s;
[0042] 2.10.4MD信息块的任务信息块由属性要求表、服务质量偏好表、服务质量‑价格权重因子三部分组成,属性要求表和服务质量偏好表均为六行一列浮点型数组,服务质量‑价格权重因子为取值在0‑1之间的浮点数,设备信息管理模块将MD注册请求中的后三项参数req,pre,w分别保存到任务信息块的属性要求表、服务质量偏好表、服务质量‑价格权重因子中;具体地,MDjj的MD信息块的任务信息块中的属性要求表用六行一列浮点型数组表示,数组元素 均为非负浮点数,分别表示MD任务对计算能力、通信能力、存储能力、感知能力、安全性、链路可维持时间的最低要求,由第jj个MD自主设定;MDjj的MD信息块的任务信息块中的服务质量偏好表用六行一列浮点型数组 表示,数组元素 均为非负浮点数,
分别表示MD任务对计算能力、通信能力、存储能力、感知能力、安全性、链路可维持时间这6种设备属性的服务质量偏好,任务对第q种设备属性的服务质量偏好指执行任务设备的第q种属性值若增加1,任务能够获得的服务质量增益。服务质量偏好表由MDjj自主设定,0≤q≤
5;MDjj的MD信息块的任务信息块中的服务质量‑价格权重因子可用 表示, 为取值在0‑
1之间的浮点数,表示MDjj对服务质量和价格之间的权衡,由MDjj自主设定,用户可通过调节服务质量‑价格权重因子满足自身对服务质量或价格的不同需求;
[0043] 2.10.5MDjj的MD信息块构建完毕,BS的设备信息管理模块将MDjj的MD信息块加入到MD链表的尾端,转2.11。
[0044] 2.11 BS的设备信息管理模块判断待处理队列是否为空,若不为空,说明待处理队列中还有注册请求尚未处理,转2.4;若为空,说明待处理队列中的注册请求已全部处理完毕,转2.12。
[0045] 2.12 BS的设备信息管理模块判断MD链表是否为空,若不为空,说明存在注册成功的MD,转2.13;若为空,说明不存在注册成功的MD,没有任务可进行分配,转2.3继续等待接收注册请求。
[0046] 2.13 BS的设备信息管理模块判断MFN链表是否为空,若不为空,说明同时存在注册成功的MFN和MD,可以尝试进行任务分配,进入第三步;若为空,说明不存在注册成功的MFN,没有可以执行任务的设备,转2.3继续等待接收注册请求。
[0047] 第三步,将注册成功的MFN用集合M′表示,M′={MFN′1,MFN′2,...,MFN′i,...,MFN′I′}表示,其中I′为MFN链表中保存的MFN信息块总数即注册成功的MFN总数,为正整数,MFN′i为MFN链表中第i个MFN信息块所表示的MFN,1≤i≤I′。将注册成功的MD用集合D′表示,D′={MD′1,MD′2,...,MD′j,...,MD′J′},其中J′为MD链表中保存的MD信息块总数即注册成功的MD总数,为正整数,MD′j为MD链表中第j个MD信息块所表示的MD,1≤j≤J′。BS的设备信息管理模块读取MFN链表中保存的I′个MFN的MFN移动状态表、MFN点到点通信表,读取MD链表中保存的J′个MD的MD移动状态表、MD点到点通信表,计算出I′个MFN和J′个MD之间的链路可维持时间,构建点到点链路图G,并将G保存到设备信息管理模块中。具体方法如下:
[0048] 3.1 BS的设备信息管理模块初始化点到点链路图G,G={M′,D′,E},其中M′为MFN集合,D′为MD集合,边集E初始为空。
[0049] 3.2获取基于移动雾计算的任务卸载系统当前时间tnow。
[0050] 3.3 BS的设备信息管理模块基于MFN链表中保存的I′个MFN的MFN移动状态表、MFN点到点通信表,MD链表中保存的J′个MD的MD移动状态表、MD点到点通信表,计算出I′个MFN和J′个MD之间的链路可维持时间,构建点到点链路图G,方法为:
[0051] 3.3.1初始化变量i为1。
[0052] 3.3.2 BS的设备信息管理模块读取MFN链表中第i个MFN信息块(即MFN′i的MFN信息块)中保存的MFN移动状态表 和MFN点到点通信表
[0053] 3.3.3根据公式(1)计算出MFN′i当前的横坐标 和MFN′i当前的纵坐标 计算公式如下:
[0054]
[0055] 其中 表示MFN′i移动状态信息的记录时刻, 分别表示MFN′i在记录时刻的横坐标和纵坐标, 分别表示MFN′i在记录时刻的移动方
向、移动速度。
[0056] 3.3.4 BS的设备信息管理模块读取MD链表中保存的J′个MD的MD移动状态表、MD点到点通信表,计算出MFNi与J′个MD之间的通信范围半径和链路可维持时间,并在图G中,在顶点MFN′i和能够与MFN′i建立通信链路的MD顶点间添加无向边,边的权重值即为MFN′i和通过该边与MFN′i相连的MD之间的链路可维持时间。方法为:
[0057] 3.3.4.1初始化j为1。
[0058] 3.3.4.2 BS的设备信息管理模块读取MD链表中第j个MD信息块(即MD′j的MD信息块)中保存的MD移动状态表 和MD点到点通信表
[0059] 3.3.4.3根据公式(2)计算出MFN′i与MD′j之间的通信范围半径R,若R=0,转3.3.4.6;若R≠0,转3.3.4.4。
[0060]
[0061] 其中 分别表示MFN′i所支持的蓝牙、LTE‑Direct、WIFI‑Direct的通信范围的半径, 分别表示MD′j所支持的蓝牙、
LTE‑Direct、WIFI‑Direct的通信范围的半径, 表示当MFN′i与MD′j
使用第p类点到点通信技术进行通信时的通信范围半径(例如当MFNi′与MDj′均使用蓝牙进行通信时,若MFNi′的蓝牙通信半径为3,MDj′的蓝牙通信半径为2,只有当MFNi′与MDj′均处于各自的蓝牙通信半径内,双方才可建立通信链路,因此MFNi′与MDj′之间的蓝牙通信范围半径应为MFNi′蓝牙通信半径、MDj′蓝牙通信半径中较小的那个),0≤p≤2。
[0062] 3.3.4.4根据公式(3)计算出MD′j当前的横坐标 和MD′j当前的纵坐标
[0063]
[0064] 其中 表示MD′j移动状态信息的记录时刻, 分别表示MD′j在记录时刻的横坐标和纵坐标, 分别表示MD′j在记录时刻的移动方向、移
动速度。
[0065] 3.3.4.5为图G新增无向边e(MFN′i,MD′j),根据公式(4)计算e(MFN′i,MD′j)的权重|e(MFN′i,MD′j)|,权重|e(MFN′i,MD′j)|表示MFN′i与MD′j间的链路可维持时间。
[0066]
[0067] 其中a表示MFN′i与MD′j在横轴正向方向上的速度之差,b表示MFN′i与MD′j的横坐标之差,c表示MFN′i与MD′j在纵轴正向方向上的速度之差,d表示MFN′i与MD′j的纵坐标之差,R表示MFN′i与MD′j之间的通信范围半径。
[0068] 3.3.4.6若j=J′,说明当前MD信息块已处于MD链表的末尾,完成了MFN′i与J′个MD之间的通信范围半径和链路可维持时间的计算,转3.3.5;否则令j=j+1,转步骤3.3.4.2。
[0069] 3.3.5若i=I′,说明当前MFN信息块已处于MFN链表的末尾,点到点链路图G构建完毕,进入第四步;否则令i=i+1,转步骤3.3.2。
[0070] 第四步,BS中的任务分配模块根据设备信息管理模块中保存的MFN链表和MD链表,以及第三步中得到的点到点链路图G构建M′与D′间的加权二部图T′,T′={M′,D′,E′},方法如下:
[0071] 4.1 BS的任务分配模块构建初始二部图T′={M′,D′,E′},E'初始化为空集;
[0072] 4.2基于MFN链表、MD链表、点到点链路图G计算出J′个MD到I′个MFN间的任务卸载满意度,构建加权二部图T′。方法为:
[0073] 4.2.1初始化j为1;
[0074] 4.2.2 BS的任务分配模块读取MD链表中第j个MD信息块(即MD′j的MD信息块)中的属性要求表 服务质量偏好表 服务质量‑价格权重因子
[0075] 4.2.3 BS的任务分配模块读取I′个MFN的设备属性表和设备资源出售价格,计算出MD′j到I′个MFN间的任务卸载满意度,并在图T′中,在顶点MDj′和I′个MFN间添加无向边,边的权重为MDj′将任务卸载到通过该边与其相连的MFN上的任务卸载满意度,方法为:
[0076] 4.2.3.1初始化i为1;
[0077] 4.2.3.2为图T′新增无向边e′(MFN′i,MD′j),将权重|e′(MFN′i,MD′j)|初始化为0;
[0078] 4.2.3.3 BS的任务分配模块读取MFN链表中第i个MFN信息块(即MFN′i的MFN信息块)中的设备属性表 和设备资源出售价格 并根据步骤4.2.2读取到的 判断MFN′i的设备属性是否达到MD′j上待处理任务对设备属性的最低要求,具体地,MFN′i满足MD′j上待处理任务的最低要求需满足7个条件,即满足
[0079] 且
[0080] 且
[0081] 且
[0082] 且
[0083] 且
[0084] 且
[0085] (e(MFN′i,MD′j)∈G(M′,D′,E))
[0086] 即MFN′i必须同时满足MD′j任务对计算能力、通信能力、存储能力、感知能力、安全性、链路可维持时间这六个方面的最低要求(例如移动感知任务要求感知数据收集时间不少于2s,则执行该任务的MFN与卸载该任务的MD之间点到点通信的链路可维持时间至少不能少于2s,否则感知数据无法传回)并满足e(MFN′i,MD′j)∈G(M′,D′,E)。其中分别表示MD′j任务对计算能力、通信能力、存储能力、感知能力、安全性、链路可维持时间这六个方面的最低要求,
分别表示MFN′i在计算能力、通信能力、存储能力、
感知能力、安全性这五个方面的量化得分,条件e(MFN′i,MD′j)∈G(M′,D′,E)表示MFN′i必须能够与MD′j建立点到点连接,|e(MFN′i,MD′j)|表示当MFN′i与MD′j建立点到点连接时,其通信链路能够维持的时间。若不能同时满足这7个条件,直接转步骤4.2.3.4;否则为边e′(MFN′i,MD′j)按公式(5)修改权重,再转步骤4.2.3.4,权重修改公式如下:
[0087]
[0088] 其中 表示MD′j设定的服务质量‑价格权重因子, 表示MFN′i的设备资源出售价格, 表示MD′j将任务卸载到MFN′i上获得的预期服务质量, 的计算公式如下:
[0089]
[0090] 其中 为MD′j的服务质量偏好表的第k项,表示MD′j任务对第k种设备属性的服务质量偏好,0≤k≤5。 为MFNi′的设备属性表的第k项,表示MFNi′在第k种设备属性上的量化得分。 为MD′j的服务质量偏好表的第5项,即MD′j对链路可维持时间的服务质量偏好。
[0091] 4.2.3.4若i=I′,说明当前MFN信息块已处于MFN链表的末尾,MD′j到I′个MFN间的任务卸载满意度计算完成,转步骤4.2.4;否则令i=i+1,返回步骤4.2.3.2。
[0092] 4.2.4若j=J′,说明当前MD信息块已处于MD链表的末尾,加权二部图T′构建完毕,进入第五步;否则令j=j+1,返回步骤4.2.2。
[0093] 第五步,BS的任务分配模块采用KM算法在多项式时间内确定在只存在有限个MFN的情况下,使用户获得最高总体满意度Sat的任务分配方案,该问题可用公式(7)定义:
[0094]
[0095] 约束1
[0096] 约束2
[0097] 其中xji为布尔变量,表示MD'j是否将任务卸载到MFN'i上,若是,则xji为1;否则xji为0;约束1表示一个任务只能卸载到一个MFN上执行;约束2表示一个MFN受移动性、点到点通信的约束,一次只能执行一个任务。因此求解Sat的问题转化为在加权二部图T'中寻找最大加权匹配问题,可通过KM算法在多项式时间内求解。本步骤中,BS的任务分配模块将图T′作KM算法的输入,以确定能够使得总体用户满意度最高的任务分配方案,具体步骤如下:
[0098] 5.1为T′中存在的每个顶点设置初始顶标值,对于 其初始顶标值l′(MFN′i)为关联顶点MFN′i的边中具有最大权重的边的权重,即l′(MFN′i)=max{|e′(MFN′i,MD′j)||MD′j∈D‘},对于 令其初始顶标值l′(MD′j)=0。
[0099] 5.2初始化图T′e=T′,T′e可用T′e={M‘,D′,E′e}表示,T′e=T′表示图T′e初始化后的顶点集、边集与图T′的顶点集、边集完全相同。
[0100] 5.3使Te′成为T‘的相等子图,图T′的相等子图T′e指T′e包含了T′中的所有顶点,并且其边集E′e满足 即E′e中任意一条边的权重都等于其关联的两个顶点的顶标值之和,方法是:
[0101] 5.3.1将图T′中满足条件的边(边关联的两个顶点的顶标值之和等于该边权重)加入到T′e中,遍历图T′的边集E',对于 如果l′(MFN′i)+l′(MD′j)=|e′(MFN′i,MD′j)|并且 将边e′(MFN′i,MD′j)添加到图T′e的边集E′e中,即令E′e=E′e∪e′(MFN′i,MD′j),遍历完成后,图T′e新增边完毕。
[0102] 5.3.2删除图Te′中不满足条件的边(边关联的两个顶点的顶标值之和不等于该边权重),遍历T′e的边集E′e,对于 如果l′(MFN′i)+l′(MD′j)≠|e′(MFN′i,MD′j)|,即边e′(MFN′i,MD′j)的权重不等于其关联的两个顶点的顶标值之和,则从边集E'e中删除边e′(MFN′i,MD′j),遍历完成后,图T′e删除边完毕,T′e成为T‘的相等子图。
[0103] 5.4求解最优的任务分配方案即图T′的最大加权匹配,在图T′的相等子图T′e中执行匈牙利算法(参见Edmonds,Jack,"路径、树和花."‑加拿大数学杂志,1965,449‑467,英文文献索引为Edmonds,J.(1965)“. Paths,trees,and flowers.”Canadian Journal of mathematics,17,449‑467.),找到匹配O(O是T′e的子图,同时O边集中的任意两条边都不依附于同一个顶点,此时称O为T′e的一个匹配),若匹配O是T′e的完美匹配(即O包含了T′e中的所有顶点,且每个顶点都关联且仅关联一条边),则O就是图T′的最大加权匹配,可用O={M′,D′,EO}表示,O的边集Eo中包含的每条边都表示一个卸载决策,转第六步;否则按匈牙利算法生成集合L、B,其中L为M′的子集,B为D′的子集,L为匹配O的不饱和点(若顶点v不与O中的任意一条边相关联,则称顶点v是匹配O的不饱和点)集,B为O的饱和点(若O中存在一条边与顶点v相关联,则称顶点v是匹配O的饱和点)集,转步骤5.5。
[0104] 5.5按如下公式更新T′e中各个顶点的顶标值:
[0105]
[0106] δl=min{l′(MFN′i)+l′(MD′j)‑|e′(MFN′i,MD′j)||MFN′i∈L,MD′j∈D‘‑B}  公式(9)
[0107] 其中l′(x)表示顶点x的顶标值,|e′(MFN′i,MD′j)|为图T′中边e′(MFN′i,MD′j)的权重,更新完毕后,由于顶标值的改变,T′e可能不再是图T′的相等子图,需要对图T′e进行处理,使其重新成为图T′的相等子图,转步骤5.3对图T′e进行处理;
[0108] 第六步,BS的任务卸载模块根据第五步中获得的最优任务分配方案即最大加权匹配O进行任务卸载,具体地,如果e(MFN′i,MD′j)∈EO,且|e(MFN′i,MD′j)|>0,则边e(MFN′i,MD′j)表示MD′j上的任务应卸载给MFN′i进行处理。BS的任务卸载模块遍历EO中的每一条边,若边的权重大于0,向边相连的MD和MFN发送卸载指令,MD接收到BS发送的卸载指令后,根据卸载指令指示将任务卸载到与其相连的MFN上执行,MFN接收到BS发送的卸载指令后,根据卸载指令指示接收并执行与其相连的MD上的待处理任务,具体步骤如下:
[0109] 6.1初始化s为1。
[0110] 6.2 BS的任务卸载模块读取EO中的第s条边es,es关联的MFN用 表示,es关联的MD用 表示,若es的权重|es|>0,转6.3;若|es|=0,转6.7。
[0111] 6.3 BS的任务卸载模块从MD链表中读取 的设备名,从MFN链表中读取的设备名;
[0112] 6.4 BS的任务卸载模块根据 的设备名与 建立通信,将 的设备名插入到卸载指令中后,发送卸载指令给 以通知 开始任务卸载并将任务卸载到
上;BS的任务卸载模块根据 的设备名与 建立通信,将 的设备名
插入到卸载指令中,发送卸载指令给 以通知 准备接收 上待处理任务
的数据并执行待处理任务。
[0113] 6.5 上的第二任务卸载模块接收BS所发送的卸载指令,根据卸载指令中包含的设备名向 发起点到点连接请求; 上的第一任务卸载模块接收BS所发送的卸载指令,根据卸载指令中包含的设备名,监听并接收来自 的点到点连接请求。
[0114] 6.6 与 的点到点连接建立后, 基于点到点通信将任务卸载到上, 接收任务数据并执行任务。
[0115] 6.7 BS的设备信息管理模块从MD链表中删除 所对应的MD信息块,从MFN链表中删除 所对应的信息块。
[0116] 6.8若S<|EO|,|EO|表示集合EO包含的总边数,则令s=s+1,转6.2;若s=|Eo|,说明遍历EO结束,任务卸载模块已发送完所有任务卸载指令,本轮任务分配执行完毕,进入第七步。
[0117] 第七步,BS的设备信息管理模块清除MD链表中已过时的MD信息块,清除MFN链表中已过时的MFN信息块,BS的设备信息管理模块和任务分配模块清除第三步到第六步中产生的中间数据,包括点到点链路图G、加权二部图T′、相等子图T′e、最大加权匹配O,转2.3开始下一轮任务分配,具体步骤如下:
[0118] 7.1 BS的设备信息管理模块获取当前时间。
[0119] 7.2 BS的设备信息管理模块判断MD链表是否为空,不为空,转7.3;为空转7.4;
[0120] 7.3 BS的设备信息管理模块遍历MD链表,删除MD链表中移动状态信息已过时的MD信息块,方法如下:
[0121] 7.3.1初始化j为1;
[0122] 7.3.2 BS读取MD链表的第j个MD信息块的MD移动状态表中保存的状态记录时刻,若记录时刻距离当前时间超过5s,则该MD信息块中保存的移动状态信息已过时,转7.3.3;若记录时刻距离当前时间不超过5s,转7.3.4;
[0123] 7.3.3若第j个MD信息块位于MD链表的尾端,设备信息管理模块从MD链表中删除该MD信息块,转步骤7.4;若第j个MD信息块不是位于MD链表的尾端,设备信息管理模块从MD链表中删除该MD信息块,删除后,该MD信息块的下一个MD信息块是MD链表中第j个MD信息块(从链表头到链表尾数),转7.3.2;
[0124] 7.3.4若第j个MD信息块位于MD链表的尾端,转7.4,否则令j=j+1,转7.3.2;
[0125] 7.4 BS的设备信息管理模块判断MFN链表是否为空,若不为空,转7.5;为空,转7.6;
[0126] 7.5 BS的设备信息管理模块遍历MFN链表,删除MFN链表中移动状态信息已过时的MFN信息块,方法如下:
[0127] 7.5.1初始化i为1;
[0128] 7.5.2 BS读取MFN链表的第i个MFN信息块的MFN移动状态表中保存的状态记录时刻,若记录时刻距离当前时间超过5s,则该MFN信息块中保存的移动状态信息已过时,转7.5.3;若记录时刻距离当前时间不超过5s,转7.5.4;
[0129] 7.5.3若第i个MFN信息块位于MFN链表的尾端,设备信息管理模块从MFN链表中删除该MFN信息块,转步骤7.6;若第i个MFN信息块不是位于MFN链表的尾端,设备信息管理模块从MFN链表中删除该MFN信息块,删除后,该MFN信息块的下一个MFN信息块是MFN链表中第i个MFN信息块(从链表头到链表尾数),转7.5.2;
[0130] 7.5.4若第i个MFN信息块位于MFN链表的尾端,转7.6;否则令i=i+1,转7.5.2;
[0131] 7.6 BS的设备信息管理模块删除点到点链路图G;
[0132] 7.7 BS的任务分配模块删除加权二部图T′、相等子图T′e、最大加权匹配R;
[0133] 7.8转2.3开始下一轮任务分配。
[0134] 与现有技术相比,采用本发明可达到以下技术效果:
[0135] 1.本发明第一步设计的基于移动雾计算的任务卸载系统将设备的计算能力、通信能力、存储能力、感知能力、安全性等多种设备属性考虑在内,与传统方法相比,本发明能够支持用户对多种类型任务的卸载。
[0136] 2.本发明第三步将设备移动性考虑在内,构建了点到点链路可维持时间图G,并允许用户根据任务类型设定最低的连接时间要求,能够预防移动用户与卸载设备在给定时间要求内因移动性和点到点通信范围限制发生设备间通信中断进而导致任务卸载失败的情况。
[0137] 3.本发明第五步采用基于KM算法的任务分配方法,能够在多项式时间内确定使得系统内用户整体满意度最高的最优任务分配方案,有效提高资源利用率,同时能够确保基站不会产生过量的能量消耗,并保证基站执行任务分配决策时不产生过量的时间开销。

附图说明

[0138] 图1是本发明总体流程图;
[0139] 图2是本发明第一步构建的基于移动雾计算的任务卸载系统逻辑结构图。

具体实施方式

[0140] 图1为本发明的总体流程图;如图1所示,本发明包括以下步骤:
[0141] 第一步,构建基于移动雾计算的任务卸载系统。基于移动雾计算的任务卸载系统如图2所示,由I个MFN、一个作为任务分配服务器的基站即BS、J个请求卸载任务的移动设备MD、一个用于查询设备信息的云数据库服务器CDS四类网络实体组成,其中I个MFN用M={MFN1,...,MFNii,...,MFNI}表示,I为MFN数量,I为正整数,MFNii表示第ii个MFN,1≤ii≤I;J个请求卸载任务的移动设备MD用D={MD1,...,MDjj,...MDJ}表示,J为MD数量,J为正整数,MDjj表示第jj个MD,1≤jj≤J。MD和MFN均与BS连接,通过蜂窝网络与BS通信;BS与CDS连接,从CDS的键值数据库中查询并读取设备信息。
[0142] BS中安装有设备信息管理模块、任务分配模块、任务卸载模块,其中设备信息管理模块负责收集并管理通信范围内的MD和MFN的设备信息(如设备的移动状态信息以及设备的计算能力、通信能力等属性信息)、MD上待处理任务的相关信息(如待处理任务对设备属性的最低要求、待处理任务对设备属性的服务质量偏好),并负责根据设备信息构建出描述设备间点到点链路关系的点到点链路图;任务分配模块基于设备信息管理模块提供的设备信息和点到点链路图构建加权二部图,采用KM算法对加权二部图进行处理,得到最优任务分配方案(任务分配方案包含MD集合D与MFN集合M间的匹配关系,匹配关系包含多条边,每条边连接一个MD和一个MFN,边指示MD将任务卸载到与其连接的MFN上),并将最优任务分配方案发送给任务卸载模块;任务卸载模块串行地遍历任务分配方案中存在的边,每找到一条边,就向这条边连接的MD和MFN发送对应的卸载指令,指示MD将任务卸载到与其连接的MFN上,指示MFN接收与其连接的MD上的任务数据,并执行任务。
[0143] MFN上安装有第一信息注册模块、第一任务卸载模块。第一信息注册模块负责向BS的设备信息管理模块注册其所属MFN的设备名、设备型号、设备资源出售价格以及移动状态信息;第一任务卸载模块负责接收BS发送的卸载指令,根据卸载指令接收对应MD的点到点连接请求,接收待处理任务的任务数据并执行从MD卸载过来的任务。
[0144] MD上安装有第二信息注册模块、第二任务卸载模块。第二信息注册模块负责向BS的设备信息管理模块注册所属MD的设备名、设备型号、移动状态信息以及任务信息,任务信息包括任务对设备属性的最低需求、任务对设备属性的服务质量偏好、用户为服务质量、价格分配的权重因子。第二任务卸载模块负责接收BS发送的卸载指令,根据卸载指令向对应MFN发送点到点连接请求,并在点到点连接建立后,将任务卸载到对应MFN上。
[0145] CDS中包含一个键值数据库,存储当今主流移动设备的设备型号及设备属性信息,以键值对形式<设备型号、设备属性信息>存储,设备属性信息包括设备在计算能力(CPU型号、CPU主频数、是否支持超频)、通信能力(是否配置5G芯片,具备5G通信能力)、存储能力(内存及硬盘存储空间的大小,内存、硬盘的型号)、感知能力(是否配备了陀螺仪、温度、湿度等传感器)、安全性(能否提供隔离化执行环境、操作系统重大漏洞数量)五个方面的量化得分,量化得分通过使用常用的基准测试程序(如STREAM(版本号5.10.1)、LMBENCH(版本号3.0‑a9)、Nessus(版本号8.13.1))对设备的计算能力、存储能力、通信能力、感知能力、安全性进行测试得出,用非负浮点数表示,设备属性信息还包括设备所支持的点到点通信技术信息(是否支持蓝牙,LTE‑Direct,WIFI‑Direct,所支持点到点通信技术的通信范围)。
[0146] 第二步,I个MFN通过第一信息注册模块并行地向基站发起注册请求以加入到基于移动雾计算的任务卸载系统中,J个MD通过第二信息注册模块并行地向基站发起注册请求以加入到基于移动雾计算的任务卸载系统中。BS的设备信息管理模块在注册时间T内等待接收来自MFN或MD的注册请求,接收到注册请求后,BS的设备信息管理模块将该注册请求加入待处理队列中,继续等待接收注册请求,直至注册时间超时。注册时间超时后,BS的设备信息管理模块开始处理待处理队列中的注册请求,处理完成后,根据注册情况判断是继续等待接收注册请求,还是进入第三步开始任务分配。方法是:
[0147] 2.1 BS的设备信息管理模块初始化MFN链表及MD链表为空,MFN链表用于组织MFN信息块,MFN信息块用于保存注册成功的MFN的设备信息;MD链表用于组织MD信息块,MD信息块用于保存注册成功的MD的设备信息;BS的设备信息管理模块初始化待处理队列为空,待处理队列用于保存来自MFN或MD的注册请求。
[0148] 2.2 I个MFN和J个MD通过GPS确定自己的当前移动状态信息,包括当前位置的二维坐标、移动方向、移动速度和状态记录时刻,I个MFN通过第一信息注册模块并行地向基站发起注册请求,J个MD通过第二信息注册模块并行地向基站发起注册请求,具体地,集合M中第ii个MFN即MFNii的注册请求用 表示,其中 分别表示MFNii的设备名、设备型号、移动状态信
息以及设备资源出售价格。集合D中第jj个MD即MDjj的注册请求用
表示,其中
分别表示MDjj的设备名、设备型号、移动
状态信息、MDjj所设定的待处理任务对设备属性的最低要求、MDjj所设定的待处理任务对设备 属性的 服 务 质量 偏好 、MD j j所 设定 的 服务 质 量‑ 价格 权 重因 子 。
为字符串类型; 为非负浮点数; 均
为六行一列的浮点型数组,且数组中的每个元素均为非负浮点数;
均为五行一列的浮点型数组; 为取值在0到1之间的非负浮点数。
[0149] 2.3 BS的设备信息管理模块创建一个定时器,根据定时器是否超时确定是否继续等待接收注册请求,根据待处理队列状态确定是否开始处理注册请求。方法是:
[0150] 2.3.1设定注册时间T(T为1~3s),设置定时器超时时间为T,启动定时器;
[0151] 2.3.2判定定时器是否超时,若未超时,等待接收来自MFN或MD的注册请求,若接收到一个来自MFN或MD的注册请求,转2.3.3;若定时器超时,转2.3.4;
[0152] 2.3.3 BS的设备信息管理模块将该注册请求加入到待处理队列的尾端,转2.3.2;
[0153] 2.3.4 BS的设备信息管理模块判断待处理队列是否为空,若为空,转2.3.1重新开始接收注册请求;若不为空,转2.4。
[0154] 2.4 BS的设备信息管理模块取出位于待处理队列队头的注册请求,判断该注册请求类型,若注册请求中包含四个参数,则该请求为MFN的注册请求,转步骤2.5;若注册请求中包含六个参数,则该请求为MD的注册请求,转步骤2.6;若注册请求既不是四个参数,又不是六个参数,则注册请求非法,注册失败,BS的设备信息管理模块通知该设备注册失败,转2.11。
[0155] 2.5 BS的设备信息管理模块校验来自MFN的注册请求是否符合格式要求,检查注册请求中包含的设备名、设备型号是否为字符串类型,设备资源出售价格是否为非负浮点数,移动状态信息是否为五行一列浮点型数组,若不符合格式要求,则注册失败,设备信息管理模块通知该MFN注册失败,转2.11;若符合格式要求,转2.7。
[0156] 2.6 BS的设备信息管理模块校验来自MD的注册请求是否符合格式要求,检查注册请求中包含的设备名、设备型号是否为字符串类型;任务需求和偏好是否为六行一列的浮点型数组,且数组中的每个元素是否为非负浮点数;服务质量‑价格权重因子是否为取值在0‑1之间的非负浮点数;移动状态信息是否为五行一列浮点型数组,若不符合格式要求,则注册失败,设备信息管理模块通知该MD注册失败,转2.11;若符合格式要求,转2.7。
[0157] 2.7 BS的设备信息管理模块根据注册请求中包含的设备型号从CDS的键值数据库中查询并读取该设备型号的设备属性信息。若能够根据设备型号在键值数据库中查询到设备属性信息,则注册成功,转步骤2.8;否则注册失败,设备信息管理模块通知该设备注册失败,转2.11。
[0158] 2.8 BS的设备信息管理模块根据步骤2.4中判断的注册请求类型,将注册成功的设备分类为MFN和MD。若为MFN,转步骤2.9;若为MD,转步骤2.10。
[0159] 2.9 BS的设备信息管理模块为注册成功的MFN构建一个MFN信息块,MFN信息块由MFN设备名、MFN设备属性表、MFN点到点通信表、MFN移动状态表、MFN时间戳、设备资源出售价格六部分组成,具体构建过程如下:
[0160] 2.9.1 BS的设备信息管理模块读取MFN注册请求中的设备名,保存到MFN信息块的MFN设备名中,MFN设备名为字符串类型,用于标志该MFN信息块归属于哪个MFN。
[0161] 2.9.2 BS的设备信息管理模块将从键值数据库中读取到的MFN设备属性信息保存到MFN信息块的MFN设备属性表中,MFN设备属性表为五行一列的浮点型数组。具体地,MFNii的设备属性表可用 表示,其中 分别表示MFNii在计算能力、通信能力、存储能力、感知能力以及安全性上的量化得分,
均为非负浮点数;
[0162] 2.9.3BS的设备信息管理模块将从键值数据库中读取到的MFN设备所支持的点到点通信技术信息保存到MFN信息块的MFN点到点通信表中,MFN点到点通信表为三行一列的浮点型数组。具体地,MFNii的 点到点通 信表用数组 表示,其中分别代表MFNii所支持的蓝牙、LTE‑Direct、WIFI‑Direct的通信
范围的半径,用非负浮点数表示,单位为m,MFNii不支持第p类点到点通信技术时,则令[0163] 2.9.4BS的设备信息管理模块将MFN汇报的移动状态信息保存到MFN信息块的MFN移动状态表中,MFN移动状态表为五行一列的浮点型数组。具体地,MFNii的移动状态表用五行一列的浮点型数组 表示,其中 分别表示MFNii当前位置的横坐标、
纵坐标,横纵坐标轴刻度均为1,横纵坐标轴单位均为m, 为移动方向与横坐标轴正向之间的角度,在由GPS提供的平面直角坐标系中表示MFNii当前的移动方向, 表示当前移动速度,单位为m/s; 表示该移动状态被记录的时刻,单位为s。
[0164] 2.9.5 BS的设备信息管理模块将MFN注册请求中汇报的设备资源出售价格保存到MFN信息块的设备资源出售价格中,设备资源出售价格为浮点数类型,具体地,MFNii的设备资源出售价格用 表示,为非负浮点数;至此,MFN信息块构建完毕。
[0165] 2.9.6 BS的设备信息管理模块将MFN信息块加入到MFN链表的尾端,转2.11。
[0166] 2.10 BS的设备信息管理模块为注册成功的MD构建一个MD信息块,MD信息块由MD设备名、MD点到点通信表、MD移动状态表、MD时间戳、任务信息块五部分组成,具体构建过程如下:
[0167] 2.10.1 BS的设备信息管理模块读取MD注册请求中汇报的设备名,并保存到MD信息块的MD设备名中,MD设备名为字符串类型,用于标志该MD信息块归属于哪个MD。
[0168] 2.10.2 BS的设备信息管理模块将从键值数据库中读取到的MFN设备所支持的点到点通信技术信息保存到MD信息块的MD点到点通信表表中,MD点到点通信表为三行一列的浮点型数组;具体地 ,MDjj的点到点通信表可用数组 表示 ,其中分别代表MDjj所支持的蓝牙、LTE‑Direct、WIFI‑Direct的通信范
围的半径,用浮点数表示,单位为m,MDjj不支持第p类点到点通信技术时,
[0169] 2.10.3 BS的设备信息管理模块将MD所汇报的移动状态信息保存到MD信息块的MD移动状态表中,MD移动状态表为五行一列的浮点型数组;具体地,MDjj的移动状态表用五行一列的浮点型数组 表示,其中 分别表示MDjj当前的横坐标、纵坐标,横纵坐标轴刻度均为1,横纵坐标轴单位均为m, 为移动方向与横坐标轴正向之间的角度,在由GPS提供的平面直角坐标系中表示MDjj当前的移动方向, 表示当前移动速度,单位为m/s, 表示该移动状态被记录的时刻,单位为s;
[0170] 2.10.4 MD信息块的任务信息块由属性要求表、服务质量偏好表、服务质量‑价格权重因子三部分组成,属性要求表和服务质量偏好表均为六行一列浮点型数组,服务质量‑价格权重因子为取值在0‑1之间的浮点数,设备信息管理模块将MD注册请求中的后三项参数req,pre,w分别保存到任务信息块的属性要求表、服务质量偏好表、服务质量‑价格权重因子中;具体地,MDjj的MD信息块的任务信息块中的属性要求表用六行一列浮点型数组表示,数组元素 均为非负浮点数,分别表示MD任务对计算能力、通信能力、存储能力、感知能力、安全性、链路可维持时间的最低要求,由第jj个MD自主设定;MDjj的MD信息块的任务信息块中的服务质量偏好表用六行一列浮点型数组 表示,数组元素 均为非负浮
点数,分别表示MD任务对计算能力、通信能力、存储能力、感知能力、安全性、链路可维持时间这6种设备属性的服务质量偏好,任务对第q种设备属性的服务质量偏好指执行任务设备的第q种属性值若增加1,任务能够获得的服务质量增益(例如对于执行移动感知任务的设备,移动感知任务要求其将每秒内收集到的感知数据传回给被服务设备,收集到的数据量越多,任务获得的服务质量越高,此时该设备与被服务设备间的链路持续时间每增加1s,实时传回的感知数据便多一份,任务完成时的服务质量增加k分,k为非负浮点数,此时该移动感知任务对于链路可维持时间的服务质量偏好即为k;又例如,若移动感知任务只要求执行该任务的设备收集和传输感知数据,该任务完成时获得的服务质量与执行任务设备的计算能力强弱无关,则该任务对计算能力的服务质量偏好为0)。服务质量偏好表由MDjj自主设定,0≤q≤5;MDjj的MD信息块的任务信息块中的服务质量‑价格权重因子可用 表示,为取值在0‑1之间的浮点数,表示MDjj对服务质量和价格之间的权衡,由MDjj自主设定,用户可通过调节服务质量‑价格权重因子满足自身对服务质量或价格的不同需求;
[0171] 2.10.5 MDjj的MD信息块构建完毕,BS的设备信息管理模块将MDjj的MD信息块加入到MD链表的尾端,转2.11。
[0172] 2.11 BS的设备信息管理模块判断待处理队列是否为空,若不为空,说明待处理队列中还有注册请求尚未处理,转2.4;若为空,说明待处理队列中的注册请求已全部处理完毕,转2.12。
[0173] 2.12 BS的设备信息管理模块判断MD链表是否为空,若不为空,说明存在注册成功的MD,转2.13;若为空,说明不存在注册成功的MD,没有任务可进行分配,转2.3继续等待接收注册请求。
[0174] 2.13 BS的设备信息管理模块判断MFN链表是否为空,若不为空,说明同时存在注册成功的MFN和MD,可以尝试进行任务分配,进入第三步;若为空,说明不存在注册成功的MFN,没有可以执行任务的设备,转2.3继续等待接收注册请求。
[0175] 第三步,将注册成功的MFN用集合M′表示,M′={MFN′1,MFN′2,...,MFN′i,...,MFN′I′}表示,其中I′为MFN链表中保存的MFN信息块总数即注册成功的MFN总数,为正整数,MFN′i为MFN链表中第i个MFN信息块所表示的MFN,1≤i≤I′。将注册成功的MD用集合D′表示,D′={MD′1,MD′2,...,MD′j,...,MD′J′},其中J′为MD链表中保存的MD信息块总数即注册成功的MD总数,为正整数,MD′j为MD链表中第j个MD信息块所表示的MD,1≤j≤J′。BS的设备信息管理模块读取MFN链表中保存的I′个MFN的MFN移动状态表、MFN点到点通信表,读取MD链表中保存的J′个MD的MD移动状态表、MD点到点通信表,计算出I′个MFN和J′个MD之间的链路可维持时间,构建点到点链路图G,并将G保存到设备信息管理模块中。具体方法如下:
[0176] 3.1 BS的设备信息管理模块初始化点到点链路图G,G={M′,D′,E},其中M′为MFN集合,D′为MD集合,边集E初始为空。
[0177] 3.2获取基于移动雾计算的任务卸载系统当前时间tnow。
[0178] 3.3 BS的设备信息管理模块基于MFN链表中保存的I′个MFN的MFN移动状态表、MFN点到点通信表,MD链表中保存的J′个MD的MD移动状态表、MD点到点通信表,计算出I′个MFN和J′个MD之间的链路可维持时间,构建点到点链路图G,方法为:
[0179] 3.3.1初始化变量i为1。
[0180] 3.3.2 BS的设备信息管理模块读取MFN链表中第i个MFN信息块(即MFN′i的MFN信息块)中保存的MFN移动状态表 和MFN点到点通信表
[0181] 3.3.3根据公式(1)计算出MFN′i当前的横坐标 和MFN′i当前的纵坐标 计算公式如下:
[0182]
[0183] 其中 表示MFN′i移动状态信息的记录时刻, 分别表示MFN′i在记录时刻的横坐标和纵坐标, 分别表示MFN′i在记录时刻的移动方
向、移动速度。
[0184] 3.3.4 BS的设备信息管理模块读取MD链表中保存的J′个MD的MD移动状态表、MD点到点通信表,计算出MFNi′与J′个MD之间的通信范围半径和链路可维持时间,并在图G中,在顶点MFN′i和能够与MFN′i建立通信链路的MD顶点间添加无向边,边的权重值即为MFN′i和通过该边与MFN′i相连的MD之间的链路可维持时间。方法为:
[0185] 3.3.4.1初始化j为1。
[0186] 3.3.4.2 BS的设备信息管理模块读取MD链表中第j个MD信息块(即MD′j的MD信息块)中保存的MD移动状态表 和MD点到点通信表
[0187] 3.3.4.3根据公式(2)计算出MFN′i与MD′j之间的通信范围半径R,若R=0,转3.3.4.6;若R≠0,转3.3.4.4。
[0188]
[0189] 其中 分别表示MFN′i所支持的蓝牙、LTE‑Direct、WIFI‑Direct的通信范围的半径, 分别表示MD′j所支持的蓝牙、
LTE‑Direct、WIFI‑Direct的通信范围的半径, 表示当MFN′i与MD′j
使用第p类点到点通信技术进行通信时的通信范围半径(例如当MFNi′与MDj′均使用蓝牙进行通信时,若MFNi′的蓝牙通信半径为3,MDj′的蓝牙通信半径为2,只有当MFNi′与MDj′均处于各自的蓝牙通信半径内,双方才可建立通信链路,因此MFNi′与MDj′之间的蓝牙通信范围半径应为MFNi′蓝牙通信半径、MDj′蓝牙通信半径中较小的那个),0≤p≤2。
[0190] 3.3.4.4根据公式(3)计算出MD′j当前的横坐标 和MD′j当前的纵坐标
[0191]
[0192] 其中 表示MD′j移动状态信息的记录时刻, 分别表示MD′j在记录时刻的横坐标和纵坐标, 分别表示MD′j在记录时刻的移动方向、移
动速度。
[0193] 3.3.4.5为图G新增无向边e(MFN′i,MD′j),根据公式(4)计算e(MFN′i,MD′j)的权重|e(MFN′i,MD′j)|,权重|e(MFN′i,MD′j)|表示MFN′i与MD′j间的链路可维持时间。
[0194]
[0195] 其中a表示MFN′i与MD′j在横轴正向方向上的速度之差,b表示MFN′i与MD′j的横坐标之差,c表示MFN′i与MD′j在纵轴正向方向上的速度之差,d表示MFN′i与MD′j的纵坐标之差,R表示MFNi′与MDj′之间的通信范围半径。
[0196] 3.3.4.6若j=J′,说明当前MD信息块已处于MD链表的末尾,完成了MFN′i与J′个MD之间的通信范围半径和链路可维持时间的计算,转3.3.5;否则令j=j+1,转步骤3.3.4.2。
[0197] 3.3.5若i=I′,说明当前MFN信息块已处于MFN链表的末尾,点到点链路图G构建完毕,进入第四步;否则令i=i+1,转步骤3.3.2。
[0198] 第四步,BS中的任务分配模块根据设备信息管理模块中保存的MFN链表和MD链表,以及第三步中得到的点到点链路图G构建M′与D′间的加权二部图T′,T′={M′,D′,E′},方法如下:
[0199] 4.1 BS的任务分配模块构建初始二部图T′={M′,D′,E′},E'初始化为空集;
[0200] 4.2基于MFN链表、MD链表、点到点链路图G计算出J′个MD到I′个MFN间的任务卸载满意度,构建加权二部图T′。方法为:
[0201] 4.2.1初始化j为1;
[0202] 4.2.2 BS的任务分配模块读取MD链表中第j个MD信息块(即MD′j的MD信息块)中的属性要求表 服务质量偏好表 服务质量‑价格权重因子
[0203] 4.2.3 BS的任务分配模块读取I′个MFN的设备属性表和设备资源出售价格,计算出MD′j到I′个MFN间的任务卸载满意度,并在图T′中,在顶点MDj′和I′个MFN间添加无向边,边的权重为MDj′将任务卸载到通过该边与其相连的MFN上的任务卸载满意度,方法为:
[0204] 4.2.3.1初始化i为1;
[0205] 4.2.3.2为图T′新增无向边e′(MFN′i,MD′j),将权重|e′(MFN′i,MD′j)|初始化为0;
[0206] 4.2.3.3 BS的任务分配模块读取MFN链表中第i个MFN信息块(即MFN′i的MFN信息块)中的设备属性表 和设备资源出售价格 并根据步骤4.2.2读取到的 判断MFN′i的设备属性是否达到MD′j上待处理任务对设备属性的最低要求,具体地,MFN′i满足MD′j上待处理任务的最低要求需满足7个条件,即满足
[0207] 且
[0208] 且
[0209] 且
[0210] 且
[0211] 且
[0212] 且
[0213] (e(MFN′i,MD′j)∈G(M′,D′,E))
[0214] 即MFN′i必须同时满足MD′j任务对计算能力、通信能力、存储能力、感知能力、安全性、链路可维持时间这六个方面的最低要求(例如移动感知任务要求感知数据收集时间不少于2s,则执行该任务的MFN与卸载该任务的MD之间点到点通信的链路可维持时间至少不能少于2s,否则感知数据无法传回)并满足e(MFN′i,MD′j)∈G(M′,D′,E)。其中分别表示MD′j任务对计算能力、通信能力、存储能力、感知能力、安全性、链路可维持时间这六个方面的最低要求,
分别表示MFN′i在计算能力、通信能力、存储能力、
感知能力、安全性这五个方面的量化得分,条件e(MFN′i,MD′j)∈G(M′,D′,E)表示MFN′i必须能够与MD′j建立点到点连接,|e(MFN′i,MD′j)|表示当MFN′i与MD′j建立点到点连接时,其通信链路能够维持的时间。若不能同时满足这7个条件,直接转步骤4.2.3.4;否则为边e′(MFN′i,MD′j)按公式(5)修改权重,再转步骤4.2.3.4,权重修改公式如下:
[0215]
[0216] 其中 表示MD′j设定的服务质量‑价格权重因子, 表示MFN′i的设备资源出售价格, 表示MD′j将任务卸载到MFN′i上获得的预期服务质量, 的计算公式如下:
[0217]
[0218] 其中 为MD′j的服务质量偏好表的第k项,表示MD′j任务对第k种设备属性的服务质量偏好,0≤k≤5。 为MFNi′的设备属性表的第k项,表示MFNi′在第k种设备属性上的量化得分。 为MD′j的服务质量偏好表的第5项,即MD′j对链路可维持时间的服务质量偏好。
[0219] 4.2.3.4若i=I′,说明当前MFN信息块已处于MFN链表的末尾,MD′j到I′个MFN间的任务卸载满意度计算完成,转步骤4.2.4;否则令i=i+1,返回步骤4.2.3.2。
[0220] 4.2.4若j=J′,说明当前MD信息块已处于MD链表的末尾,加权二部图T′构建完毕,进入第五步;否则令j=j+1,返回步骤4.2.2。
[0221] 第五步,BS的任务分配模块采用KM算法在多项式时间内确定在只存在有限个MFN的情况下,使用户获得最高总体满意度Sat的任务分配方案,该问题可用公式(7)定义:
[0222]
[0223] 约束1
[0224] 约束2
[0225] 其中xji为布尔变量,表示MD'j是否将任务卸载到MFN′i上,若是,则xji为1;否则xji为0;约束1表示一个任务只能卸载到一个MFN上执行;约束2表示一个MFN受移动性、点到点通信的约束,一次只能执行一个任务。因此求解Sat的问题转化为在加权二部图T'中寻找最大加权匹配问题,可通过KM算法在多项式时间内求解。本步骤中,BS的任务分配模块将图T′作KM算法的输入,以确定能够使得总体用户满意度最高的任务分配方案,具体步骤如下:
[0226] 5.1为T′中存在的每个顶点设置初始顶标值,对于 其初始顶标值l′(MFN′i)为关联顶点MFN′i的边中具有最大权重的边的权重,即l′(MFN′i)=max{|e′(MFN′i,MD′j)||MD′j∈D‘},对于 令其初始顶标值l′(MD′j)=0。
[0227] 5.2初始化图T′e=T′,T′e可用T′e={M‘,D′,E′e′}表示,T′e=T′表示图T′e初始化后的顶点集、边集与图T′的顶点集、边集完全相同。
[0228] 5.3使Te′成为T‘的相等子图,图T′的相等子图T′e指T′e包含了T′中的所有顶点,并且其边集E′e满足 即E′e中任意一条边的权重都等于其关联的两个顶点的顶标值之和,方法是:
[0229] 5.3.1将图T′中满足条件的边(边关联的两个顶点的顶标值之和等于该边权重)加入到T′e中,遍历图T′的边集E',对于 如果l′(MFN′i)+l′(MD′j)=|e′(MFN′i,MD′j)|并且 将边e′(MFN′i,MD′j)添加到图T′e的边集E′e中,即令E′e=E′e∪e′(MFN′i,MD′j),遍历完成后,图T′e新增边完毕。
[0230] 5.3.2删除图Te′中不满足条件的边(边关联的两个顶点的顶标值之和不等于该边权重),遍历T′e的边集E′e,对于 如果l′(MFN′i)+l′(MD′j)≠|e′(MFN′i,MD′j)|,即边e′(MFN′i,MD′j)的权重不等于其关联的两个顶点的顶标值之和,则从边集E′e中删除边e′(MFN′i,MD′j),遍历完成后,图T′e删除边完毕,T′e成为T‘的相等子图。
[0231] 5.4求解最优的任务分配方案即图T′的最大加权匹配,在图T′的相等子图T′e中执行匈牙利算法,找到匹配O,若匹配O是T′e的完美匹配,则O就是图T′的最大加权匹配,可用O={M′,D′,EO}表示,O的边集Eo中包含的每条边都表示一个卸载决策,转第六步;否则按匈牙利算法生成集合L、B,其中L为M′的子集,B为D′的子集,L为匹配O的不饱和点(若顶点v不与O中的任意一条边相关联,则称顶点v是匹配O的不饱和点)集,B为O的饱和点集,转步骤5.5。
[0232] 5.5按如下公式更新T′e中各个顶点的顶标值:
[0233]
[0234] δl=min{l′(MFN′i)+l′(MD′j)‑|e′(MFN′i,MD′j)||MFN′i∈L,MD′j∈D‘‑B}  公式(9)
[0235] 其中l′(x)表示顶点x的顶标值,|e′(MFN′i,MD′j)|为图T′中边e′(MFN′i,MD′j)的权重,更新完毕后,由于顶标值的改变,T′e可能不再是图T′的相等子图,需要对图T′e进行处理,使其重新成为图T′的相等子图,转步骤5.3对图T′e进行处理;
[0236] 第六步,BS的任务卸载模块根据第五步中获得的最优任务分配方案即最大加权匹配O进行任务卸载,具体地,如果e(MFN′i,MD′j)∈EO,且|e(MFN′i,MD′j)|>0,则边e(MFN′i,MD′j)表示MD′j上的任务应卸载给MFN′i进行处理。BS的任务卸载模块遍历EO中的每一条边,若边的权重大于0,向边相连的MD和MFN发送卸载指令,MD接收到BS发送的卸载指令后,根据卸载指令指示将任务卸载到与其相连的MFN上执行,MFN接收到BS发送的卸载指令后,根据卸载指令指示接收并执行与其相连的MD上的待处理任务,具体步骤如下:
[0237] 6.1初始化s为1。
[0238] 6.2BS的任务卸载模块读取EO中的第s条边es,es关联的MFN用 表示,es关联的MD用 表示,若es的权重|es|>0,转6.3;若|es|=0,转6.7。
[0239] 6.3BS的任务卸载模块从MD链表中读取 的设备名,从MFN链表中读取的设备名;
[0240] 6.4BS的任务卸载模块根据 的设备名与 建立通信,将 的设备名插入到卸载指令中后,发送卸载指令给 以通知 开始任务卸载并将任务卸载到
上;BS的任务卸载模块根据 的设备名与 建立通信,将 的设备名
插入到卸载指令中,发送卸载指令给 以通知 准备接收 上待处理任务
的数据并执行待处理任务。
[0241] 6.5 上的第二任务卸载模块接收BS所发送的卸载指令,根据卸载指令中包含的设备名向 发起点到点连接请求; 上的第一任务卸载模块接收BS所发送的卸载指令,根据卸载指令中包含的设备名,监听并接收来自 的点到点连接请求。
[0242] 6.6 与 的点到点连接建立后, 基于点到点通信将任务卸载到上, 接收任务数据并执行任务。
[0243] 6.7 BS的设备信息管理模块从MD链表中删除 所对应的MD信息块,从MFN链表中删除 所对应的信息块。
[0244] 6.8若s<|EO|,|Eo|表示集合EO包含的总边数,则令s=s+1,转6.2;若s=|Eo|,说明遍历Eo结束,任务卸载模块已发送完所有任务卸载指令,本轮任务分配执行完毕,进入第七步。
[0245] 第七步,BS的设备信息管理模块清除MD链表中已过时的MD信息块,清除MFN链表中已过时的MFN信息块,BS的设备信息管理模块和任务分配模块清除第三步到第六步中产生的中间数据,包括点到点链路图G、加权二部图T′、相等子图T′e、最大加权匹配0,转2.3开始下一轮任务分配,具体步骤如下:
[0246] 7.1BS的设备信息管理模块获取当前时间。
[0247] 7.2 BS的设备信息管理模块判断MD链表是否为空,不为空,转7.3;为空转7.4;
[0248] 7.3 BS的设备信息管理模块遍历MD链表,删除MD链表中移动状态信息已过时的MD信息块,方法如下:
[0249] 7.3.1初始化j为1;
[0250] 7.3.2 BS读取MD链表的第j个MD信息块的MD移动状态表中保存的状态记录时刻,若记录时刻距离当前时间超过5s,则该MD信息块中保存的移动状态信息已过时,转7.3.3;若记录时刻距离当前时间不超过5s,转7.3.4;
[0251] 7.3.3若第j个MD信息块位于MD链表的尾端,设备信息管理模块从MD链表中删除该MD信息块,转步骤7.4;若第j个MD信息块不是位于MD链表的尾端,设备信息管理模块从MD链表中删除该MD信息块,删除后,该MD信息块的下一个MD信息块是MD链表中第j个MD信息块(从链表头到链表尾数),转7.3.2;
[0252] 7.3.4若第j个MD信息块位于MD链表的尾端,转7.4,否则令j=j+1,转7.3.2;
[0253] 7.4 BS的设备信息管理模块判断MFN链表是否为空,若不为空,转7.5;为空,转7.6;
[0254] 7.5 BS的设备信息管理模块遍历MFN链表,删除MFN链表中移动状态信息已过时的MFN信息块,方法如下:
[0255] 7.5.1初始化i为1;
[0256] 7.5.2 BS读取MFN链表的第i个MFN信息块的MFN移动状态表中保存的状态记录时刻,若记录时刻距离当前时间超过5s,则该MFN信息块中保存的移动状态信息已过时,转7.5.3;若记录时刻距离当前时间不超过5s,转7.5.4;
[0257] 7.5.3若第i个MFN信息块位于MFN链表的尾端,设备信息管理模块从MFN链表中删除该MFN信息块,转步骤7.6;若第i个MFN信息块不是位于MFN链表的尾端,设备信息管理模块从MFN链表中删除该MFN信息块,删除后,该MFN信息块的下一个MFN信息块是MFN链表中第i个MFN信息块(从链表头到链表尾数),转7.5.2;
[0258] 7.5.4若第i个MFN信息块位于MFN链表的尾端,转7.6;否则令i=i+1,转7.5.2;
[0259] 7.6 BS的设备信息管理模块删除点到点链路图G;
[0260] 7.7 BS的任务分配模块删除加权二部图T′、相等子图T′e、最大加权匹配R;
[0261] 7.8转2.3开始下一轮任务分配。
[0262] 为了验证本发明的效果,做以下实验,如图2所示:
[0263] 第一步,基于移动雾计算的任务卸载系统共包含I(I=4)个MFN和J(J=4)个MD,一个BS以及一个CDS,其中MD1上存在一个待处理的视频解码任务、MD2上存在一个待处理的移动感知任务、MD3上存在一个待处理的人脸图像处理任务、MDJ上存在一个待处理的视频上传任务。MFN1为智能手机,配备了5G芯片和各类传感器,具有较强的通信和感知能力。MFN2为智能手机,配备了强大且支持超频的CPU,具有较强的计算能力。MFN3为边缘服务器,能够提供隔离化的执行环境,计算能力和安全性最强。MFNI为智能运动手表,配备了各类传感器,感知能力强但计算、通信、存储、安全性等能力较弱。
[0264] 第二步,MD1、MD2、MD3、MDJ由于本地资源受限或本身处于高负载状态,希望将待处理任务卸载到其他设备上执行,因此构建注册请求,并向BS发起注册请求。
[0265] 其中,MD1的任务对设备属性的最低要求为<8,0,5,0,0,5>(视频解码任务为计算密集型任务,对设备的计算能力要求较高,同时视频的存储和传输对设备的存储能力、设备间的链路维持时间也有较高的要求)。MD1的服务质量偏好为<8,0,0,0,0,0>(视频解码任务的服务质量主要受视频解码速度的影响,即主要受设备计算能力的影响),MD1的服务质量‑价格权重因子为0.7(相比于价格,用户MD1更看重服务质量)。
[0266] MD2的任务对设备属性的最低要求为<0,0,2,10,0,8>(移动感知任务要求设备尽可能多地收集并传回周围环境的感知数据,对设备的感知能力及链路可维持时间要求较高。)MD2的服务质量偏好为<0,0,0,9,0,7>(移动感知任务的服务质量主要受设备感知能力及链路可维持时间的影响)。MD2的服务质量‑价格权重因子为0.5(用户MD2既看重服务质量也看重价格)。
[0267] MD3的任务对设备属性的最低要求为<8,0,2,0,10,3>(人脸图像处理任务要求快速处理人脸图像,其对设备的计算能力要求较高,同时由于其包含了用户的隐私信息,因此对设备的安全性要求也高,对存储和链路维持的时间则要求较低),MD3的服务质量偏好为<11,0,0,0,0,0>(人脸图像处理任务的服务质量主要受设备计算能力的影响),MD3的服务质量‑价格权重因子为0.5(用户MD3即看重服务质量也看重价格)。
[0268] MDJ的任务对设备属性的最低要求为<0,8,5,0,0,5>(视频上传任务要求设备通过蜂窝或者无线网络将视频上传到云,为传输密集型任务,对设备的通信能力要求最高,同时视频的存储和传输对设备的存储能力及链路维持时间也有较高的要求),MDJ的服务质量偏好为<0,8,0,0,0,0>(视频上传任务的服务质量主要受设备通信能力的影响),MDJ的服务质量‑价格权重因子为0.3(相比于服务质量,用户MDJ更看重价格,希望以较低的价格获得服务)。
[0269] MFN1、MFN2、MFN3、MFNI由于本地资源空闲,希望通过为其他设备执行任务获取收益,因此构建注册请求并向BS发起注册请求。MFN1、MFN2、MFN3、MFNI的设备资源出售价格分别为32、24、50、12。
[0270] BS在注册时间内等待接收注册请求,超时后,BS的设备信息管理模块开始处理注册请求,校验注册请求的合法性,由于在CDS中未查询到MD2的相关设备信息,因此MD2的注册请求被校验为非法,BS通知MD2注册失败,其余设备则注册成功。在CDS中查询到的MFN1的设备属性为<8,15,6,8,5>、MFN2的设备属性表为<10,5,6,4,5>、MFN3的设备属性为<18,10,15,0,12>、MFNI的设备属性为<2,3,2,9,2>。
[0271] 第三步,BS的设备信息管理模块为注册成功的设备构建MD信息块或MFN信息块,并将注册请求中包含的移动状态、设备名等相关设备信息以及从CDS中读取到的设备属性信息保存到MD信息块或MFN信息块中。BS的设备信息管理模块基于MD设备的MD移动状态表、MD点到点通信表以及MFN设备的MFN移动状态表,MFN点到点通信表,计算各个MD与各个MFN间的链路可维持时间,并构建点到点链路图G,图G可用表1表示:
[0272]
[0273]
[0274] 表1
[0275] 表1中的数字表示对应的MD和MFN间的链路可维持时间,\表示对应的MD和MFN间不能建立通信链路,由于MD2注册失败,因此图G中不包含MD2。
[0276] 第四步,BS的任务分配模块基于点到点链路图、各个MD的任务信息块、各个MFN的MFN设备属性表和设备资源出售价格计算出各个MD到各个MFN间的任务卸载满意度,首先构建出加权二部图。加权二部图可用表2表示:
[0277]   MFN1 MFN2 MFN3 MFNIMD1 0 48.8 85.8 0
MD3 0 0 74 0
MDJ 13.6 0 ‑11 0
[0278] 表2
[0279] 表2中的数字表示对应MD将任务卸载到对应MFN上的任务卸载满意度。由于MD2注册失败,因此加权二部图中不包含MD2。
[0280] 第五步,采用KM算法在多项式时间内确定加权二部图中的最大加权匹配,即最优任务分配方案。得到能够使得用户总体满意度最高的任务分配方案为R={,,},MFNI由于在设备属性上未达到MD1、MD3、MDJ的任务最低要求,在本轮未分配到任务执行。
[0281] 第六步,BS的任务卸载模块基于最优任务分配方案发出卸载指令,向MD1、MD3、MDJ分别发出卸载指令,指示MD1将任务卸载到MFN2上,MD3将任务卸载到MFN3上,MDJ将任务卸载到MFN1上,向MFN1、MFN2、MFNI分别发出卸载指令,指示MFN2准备接收MD1的任务,MFN3准备接收MD3的任务上,MFN1准备接收MDJ的任务,并删除MD1、MD2、MDJ的MD信息块,删除MFN1、MFN2、MFNI的MFN信息块。
[0282] MFN2、MFN3、MFN1在接收到卸载指令后,分别等待接收来自MD1、MD3、MDJ的连接请求,MD1、MD3、MDJ在接收到卸载指令后,分别向MFN2、MFN3、MFN1发起连接请求,连接建立后,MD1、MD3、MDJ分别将任务卸载到MFN2、MFN3、MFN1上,MFN2、MFN3、MFN1分别接收并执行来自MD1、MD3、MDJ的任务。
[0283] 第七步,本轮任务分配结束,BS的任务卸载模块删除加权二部图、点到点链路图、最优任务分配方案,同时更新MFN链表和MD链表,删除MFN链表中移动状态信息已过时的MFN信息块和MD链表中移动状态信息已过时的MD信息块。
[0284] 开始下一轮任务分配,BS再次开始等待接收注册请求。
[0285] 由上述示例中的第一步可知:
[0286] 本发明第一步设计的基于移动雾计算的任务卸载系统将设备的计算能力、通信能力、存储能力、感知能力、安全性等多种设备属性考虑在内,与传统方法相比,本发明能够支持用户对多种类型任务的卸载。
[0287] 由上述示例中的第三步可知:
[0288] 本发明第三步将设备移动性考虑在内,构建了点到点链路可维持时间图G,并允许用户根据任务类型设定最低的链路维持时间要求,能够预防移动用户与卸载设备在给定时间要求内因移动性和点到点通信范围限制发生设备间通信中断进而导致任务卸载失败的情况。
[0289] 如表2所示,MFN1满足MD1任务在计算能力、通信能力、存储能力、感知能力及安全性方面的最低要求,但由于其未达到MD1的最低链路维持时间要求,为了避免任务卸载失败,MD1到MFN1间的任务卸载满意度被赋值为0,最终的任务分配方案中即最大加权匹配中不会包含MD1到MFN1的边。
[0290] 由上述示例中的第五步可知:
[0291] 本发明第五步采用基于KM算法的任务分配方法,能够在多项式时间内确定使得系统内用户整体满意度最高的最优任务分配方案,有效提高资源利用率,同时能够确保基站不会产生过量的能量消耗,并保证基站执行任务分配决策时不产生过量的时间开销。