路网环境下基于有限服务范围的持续性服务资源分配方法

文档序号:26265506发布日期:2021-08-13 19:17阅读:83来源:国知局
路网环境下基于有限服务范围的持续性服务资源分配方法

本发明涉及一种服务资源分配的实现方法,具体涉及一种路网环境下基于有限服务范围的持续性服务资源分配方法。



背景技术:

随着普适计算技术、定位技术和无线通讯技术的发展与成熟,移动计算场景下的资源分配问题成为了新的研究热点,广泛应用于通信资源调度、应急事件响应、公共资源规划等领域。分配问题是一个把资源提供者(服务端)分配给资源使用者(客户端)的优化问题,常见问题有设施选址、任务分配、资源调度等。在服务资源分配问题中,距离是影响客户端和服务端之间服务质量的重要因素。例如,在使用手机连接wifi时,手机距离wifi发射器越近信号越好,手机接受的服务质量越高,所以分配问题其实是一个优化整体服务质量的最优化问题。

已有的分配方法将服务端和客户端之间的关系转化为一个二部图,如果服务端和客户端之间可能存在分配关系,则二部图中代表该服务端和客户端的节点之间就会存在一条边。然后在二部图中执行derigs提出的连续最短路径算法求出最佳的分配关系。连续最短路径算法的输入是一个流图,然后在流图上执行γ次迭代,输出所有的反向边。每次迭代中计算一次从源点p到汇点q的最短路径,然后反转这条路径进行增广。在最后一次迭代后,流图上每个从u中的点到s中的点之间的反向边就代表最优匹配中的一个匹配。

在城市地理空间中,移动计算环境下的大量客户端在道路网络中持续移动,并与服务端保持通信。受到客户端位置改变的影响,当下的分配结果无法保证最优服务效果持续有效,服务端需要根据客户端位置的变化情况快速做出调整,计算出符合当下状况的最佳分配关系。然而传统的针对静态场景的服务资源分配方法不适用于动态场景下的持续性计算问题,主要体现在以下三个方面:

实时性:由于客户端的位置频繁更新,需要针对整体用户的分布情况快速得出当前的分配关系。目前静态的算法大都时间复杂度比较高,无法实现快速响应。

普适性:从城市角度出发,不同时段,不同区域的用户数量和分布情况是严重不均匀的。目前已有的分配算法无法针对不同的客户端分布情况进行有效的资源分配,容易造成资源分配失衡。

分配关系更新:用户运动是受到道路网络限制的,所以在频繁更新时相邻时刻之间存在联系,这些联系可以用于帮助更新分配关系,已有算法忽略了这些相邻时刻之间的联系,进行了大量重复且不必要的计算,效率不高。

由于移动终端的发展,新的移动场景不断出现,需要快速的根据移动后的客户端和服务端之间的关系计算分配结果,这无疑对当前的服务资源分配技术提出了巨大挑战。



技术实现要素:

发明目的:为了克服现有技术中存在的不足,提供一种路网环境下基于有限服务范围的持续性服务资源分配方法,利用了客户端的运动特征的预计算,减少了分配更新的计算时间,可以满足快速更新场景下的持续性服务资源分配要求。

技术方案:为实现上述目的,本发明提供一种路网环境下基于有限服务范围的持续性服务资源分配方法,包括如下步骤:

s1:对客户端的初始位置进行初始分配;

s2:根据上一时刻位置数据判断客户端的运动方向;

s3:根据客户端的运动方向和速度预测客户端的运动范围;

s4:结合服务端服务范围和客户端运动范围得到用于预测的二部图;

s5:根据二部图,检查和调整服务端容量,使得所有的服务端容量都满足容量限制;

s6:根据二部图,检查和调整客户端和服务端的连接情况,使得一个客户端只对应连接一个服务端;

s7:利用步骤s6中更新后的二部图调整预测结果得到最终分配关系。

进一步地,所述步骤s2中客户端的运动方向的判断方法为利用两个时刻的位置求差得出当前运动的方向。

进一步地,所述步骤s2中客户端的当前运动方向的计算包括两种情况,分别如下:

情况1:相邻时刻两点位于同一条边上,直接对偏移量求差,如果差值大于0则说明运动方向是沿着边的方向,否则运动方向为反向;

情况2:相邻时刻两点位于不同边上,计算当前边和上个时刻所在的边的交点,判断该交点为当前边的起点还是终点,得出其当前的运动方向。

进一步地,所述步骤s3中客户端的运动范围的预测方法为:

a1:计算移动距离:采用当前时刻的偏移量d′减去上个时刻的偏移量d得到上个时刻的移动距离δd,然后假定下一时刻的移动距离的范围在0.5δd~1.5δd之间,即运动的最远距离为1.5δd,最近距离为0.5δd,沿着运动方向给当前偏移量加上移动的范围就可以得到下一时刻的客户端位置范围,即usi.l=usi-1.l+δd;

a2:结合客户端的运动方向和移动距离,预测得到客户端的运动范围。

进一步地,所述步骤a1中下一时刻的客户端位置范围包括两种情况,分别如下:

情况1:当前偏移量加上移动范围小于等于当前边的长度,则将当前偏移量和移动范围相加,获得下一时刻的客户端位置范围;

情况2:当前偏移量加上移动范围大于当前边的长度,则将当前偏移量和移动范围相加结果减去边长度得到溢出值,再根据边的端点找到邻接边,每条邻接边从起点开始的范围都是下一时刻的客户端位置范围。

进一步地,所述步骤s4中二部图的获取方法为:由于服务端的位置是固定不变的,在预处理的过程中对道路网络中的每条边建立索引,每条边的索引列表中的元素是处于这条边上的服务端,并且按照其在当前边的偏移量从小到大排序,右边的索引为左边虚线框内各个边的索引,接着新建一个空的二部图,遍历客户端列表,对每个客户端寻找其所在边的id,并查找其倒排列表,按照范围查找出对应的服务端集合,将此服务端集合和与之对应客户端之间的边加入到二部图中,就得到了预测的二部图。

进一步地,所述步骤s5中对于超出容量限制的服务端的调整方法为:采用一个最大堆来维护服务端的连接,每次取堆顶的边,检查该边是否是对应的客户端的最小代价边或者唯一边,如果不是,则删除边,直到剩余边的数量满足容量上限或者遍历完整个服务端的连接,为了保证全局的优化效果而不陷入局部最优,如果该边是对应客户端的唯一连接边或者最小代价边否则继续从堆顶弹出边;利用启发式算法采用第二次遍历,在此次遍历时,只要该连接不是对应客户端的唯一连接边,则删除该边,经过两次遍历,所有的服务端都已满足容量限制。

进一步地,所述步骤s6中客户端和服务端的连接调整方法为:对于客户端连接超过一个的服务端的冲突,对其连接的边进行排序,因为服务端已经满足了容量限制,所以对每个客户端只保留代价最小的连接边,此时解决了客户端的冲突,即为代价最小的分配。

进一步地,所述步骤s7中最终分配关系的获取方法为:在当前时刻客户端快照更新后,把当前时刻快照中的客户端和服务端之间的关系转化为二部图;当前时刻下的二部图依然是一个多对多的二部图,但是不用再去逐个地解决其中存在的冲突,因为在前一步已经有了一个基于预测的分配,接下来,遍历预测出的分配,检查其每一个分配边是否存在于当前时刻代表客户端和服务端关系的二部图中,如果存在,即预测的结果对于这个时刻是合理的,则把该边从当前时刻的二部图中删去,同时在当前时刻二部图中删除该边所连接的客户端,对应的服务端的容量也减少1,在遍历完预测的分配之后,预测正确的结果也已经得出,此时的二部图规模也仅剩下没有预测正确的部分,对预测正确的边进行删减同时对应的服务端容量也减去对应的客户端个数,对于剩余部分,采用经典的连续最短路径算法计算剩余部分的分配。

本发明采用先预测,后修正的方法,首先采用经典的连续最短路径算法对客户端的初始位置进行初始分配,然后根据其在道路网络上的运动方向预测其下一个快照中客户端可能出现的范围,分析该范围内的所有可能存在的分配关系,然后采用启发式算法得到一个预测的最优分配,到下一个时刻客户端快照更新之后再根据其更新后的位置以及和服务端之间的关系,检验预测的正确率,对于预测正确的分配,直接进行剪枝,剩余的执行连续最短路径算法得到最终的分配。

有益效果:本发明与现有技术相比,具备如下优点:

1、利用道路网络信息和客户端的运动信息进行预计算,得出预测的分布情况,从而降低了数据更新后的计算代价。

2、采用新的启发式方法代替已有方法的迭代计算增广路径求解,将相邻时刻之间联系应用到分配当中,大大节约了冲突解决阶段的耗时,从而提高了分配效率。

3、适用于所有需要分配服务资源的场景,如分配wifi资源、分配电动汽车充电桩、分配基站信号等,应用范围广,解决了目前已有的分配算法无法针对不同的客户端分布情况进行有效的资源分配,容易造成资源分配失衡的问题。

4、能够以较快的更新速度满足了频繁更新场景下的持续性分配低延迟需求,解决了目前静态的算法大都时间复杂度比较高,无法实现快速响应的问题,具备很好的市场应用价值。

附图说明

图1为本发明方法的流程示意图;

图2为二部图的示意图;

图3为服务端容量变化时,本方法与经典方法(连续最短路径方法)的计算耗时对比图;

图4为更新间隔和运行时间的关系图;

图5为服务范围和运行时间的关系图;

图6为客户端数量和运行时间的关系图;

图7为服务端数量和运行时间的关系图;

图8为本发明方法数据规模和运行时间的关系图。

具体实施方式

下面结合附图和具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。

如图1所示,本发明提供一种路网环境下基于有限服务范围的持续性服务资源分配方法,包括如下步骤:

s1:对客户端的初始位置进行初始分配;

s2:根据上一时刻位置数据判断客户端的运动方向;

s3:根据客户端的运动方向和速度预测客户端的运动范围;

s4:结合服务端服务范围和客户端运动范围得到用于预测的二部图;

s5:根据二部图,检查和调整服务端容量,使得所有的服务端容量都满足容量限制;

s6:根据二部图,检查和调整客户端和服务端的连接情况,使得一个客户端只对应连接一个服务端;

s7:利用步骤s6中更新后的二部图调整预测结果得到最终分配关系。

本实施例步骤s2中客户端的运动方向的判断方法为利用两个时刻的位置求差得出当前运动的方向。客户端的当前运动方向的计算包括两种情况,分别如下:

情况1:相邻时刻两点位于同一条边上,直接对偏移量求差,如果差值大于0则说明运动方向是沿着边的方向,否则运动方向为反向;

情况2:相邻时刻两点位于不同边上,计算当前边和上个时刻所在的边的交点,判断该交点为当前边的起点还是终点,得出其当前的运动方向。

本实施例步骤s3中客户端的运动范围的预测方法为:

a1:计算移动距离:采用当前时刻的偏移量d′减去上个时刻的偏移量d得到上个时刻的移动距离δd,然后假定下一时刻的移动距离的范围在0.5δd~1.5δd之间,即运动的最远距离为1.5δd,最近距离为0.5δd,沿着运动方向给当前偏移量加上移动的范围就可以得到下一时刻的客户端位置范围,即usi.l=usi-1.l+δd;

a2:结合客户端的运动方向和移动距离,预测得到客户端的运动范围。

其中,步骤a1中下一时刻的客户端位置范围包括两种情况,分别如下:

情况1:当前偏移量加上移动范围小于等于当前边的长度,则将当前偏移量和移动范围相加,获得下一时刻的客户端位置范围;

情况2:当前偏移量加上移动范围大于当前边的长度,则将当前偏移量和移动范围相加结果减去边长度得到溢出值,再根据边的端点找到邻接边,每条邻接边从起点开始的范围都是下一时刻的客户端位置范围。

本实施例步骤s4中二部图的获取方法为:由于服务端的位置是固定不变的,在预处理的过程中对道路网络中的每条边建立索引,每条边的索引列表中的元素是处于这条边上的服务端,并且按照其在当前边的偏移量从小到大排序,如图2所示,右边的索引为左边虚线框内各个边的索引,接着新建一个空的二部图,遍历客户端列表,对每个客户端寻找其所在边的id,并查找其倒排列表,按照范围查找出对应的服务端集合,将此服务端集合和与之对应客户端之间的边加入到二部图中,就得到了预测的二部图。

本实施例步骤s5中对于超出容量限制的服务端的调整方法为:采用一个最大堆来维护服务端的连接,每次取堆顶的边,检查该边是否是对应的客户端的最小代价边或者唯一边,如果不是,则删除边,直到剩余边的数量满足容量上限或者遍历完整个服务端的连接,为了保证全局的优化效果而不陷入局部最优,如果该边是对应客户端的唯一连接边或者最小代价边否则继续从堆顶弹出边;经过第一次遍历,依然有可能存在超出容量的服务端,例如该服务端所有的连接均是对应客户端的最小代价连接,则在第一次遍历时都无法删除,利用启发式算法采用第二次遍历,在此次遍历时,只要该连接不是对应客户端的唯一连接边,则删除该边,经过两次遍历,所有的服务端都已满足容量限制,服务端超出容量限制的冲突已经解决。

本实施例步骤s6中客户端和服务端的连接情况检查方法为:由于一个客户端只能接受一个服务端提供的服务,因此如果一个客户端连接了超过一个服务端也是不符合要求的。需要遍历客户端列表,检查是否有客户端连接了超过一个服务端。

本实施例步骤s6中客户端和服务端的连接调整方法为:对于客户端连接超过一个的服务端的冲突,对其连接的边进行排序,因为服务端已经满足了容量限制,所以对每个客户端只保留代价最小的连接边,此时解决了客户端的冲突,即为代价最小的分配。

本实施例步骤s7中最终分配关系的获取方法为:在当前时刻客户端快照更新后,把当前时刻快照中的客户端和服务端之间的关系转化为二部图;当前时刻下的二部图依然是一个多对多的二部图,但是不用再去逐个地解决其中存在的冲突,因为在前一步已经有了一个基于预测的分配,接下来,遍历预测出的分配,检查其每一个分配边是否存在于当前时刻代表客户端和服务端关系的二部图中,如果存在,即预测的结果对于这个时刻是合理的,则把该边从当前时刻的二部图中删去,同时在当前时刻二部图中删除该边所连接的客户端,对应的服务端的容量也减少1,在遍历完预测的分配之后,预测正确的结果也已经得出,此时的二部图规模也仅剩下没有预测正确的部分,对预测正确的边进行删减同时对应的服务端容量也减去对应的客户端个数,对于剩余部分,采用经典的连续最短路径算法计算剩余部分的分配。

本实施例还提供一种路网环境下基于有限服务范围的持续性服务资源分配系统,该系统包括网络接口、存储器和处理器;其中,网络接口,用于在与其他外部网元之间进行收发信息过程中,实现信号的接收和发送;存储器,用于存储能够在所述处理器上运行的计算机程序指令;处理器,用于在运行计算机程序指令时,执行上述共识方法的步骤。

本实施例还提供一种计算机存储介质,该计算机存储介质存储有计算机程序,在处理器执行所述计算机程序时可实现以上所描述的方法。所述计算机可读介质可以被认为是有形的且非暂时性的。非暂时性有形计算机可读介质的非限制性示例包括非易失性存储器电路(例如闪存电路、可擦除可编程只读存储器电路或掩膜只读存储器电路)、易失性存储器电路(例如静态随机存取存储器电路或动态随机存取存储器电路)、磁存储介质(例如模拟或数字磁带或硬盘驱动器)和光存储介质(例如cd、dvd或蓝光光盘)等。计算机程序包括存储在至少一个非暂时性有形计算机可读介质上的处理器可执行指令。计算机程序还可以包括或依赖于存储的数据。计算机程序可以包括与专用计算机的硬件交互的基本输入/输出系统(bios)、与专用计算机的特定设备交互的设备驱动程序、一个或多个操作系统、用户应用程序、后台服务、后台应用程序等。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

基于上述提供的技术方案,为了验证本发明方法的效果,本实施例中将上述方案进行实例应用,具体如下:

在本次实验验证中,采用真实数据集进行实验,其中客户端数据为上海出租车gps轨迹数据,由上海市13000辆出租车在2015年4月1号产生的真实gps轨迹数据,采样频率为10秒钟一次。服务端数据集抽取自osm地图上的地铁站等公共设施的位置信息,共200个。道路网络信息为osm地图上上海市的真实道路网络数据。

分别利用本发明方法和经典方法(连续最短路径方法)进行分配,具体的实验数据整合结果如下:

如图3可见,本发明方法的运行时间远小于经典方法的运行时间,并且虽然服务端容量在变化,但是总体分配数量并没有发生变化,因此不对算法运行时间造成影响。

如图4可见,为了研究更新频率对算法的影响,本实施例对原始数据进行提取,把位置更新的时间间隔分别设置为10~50秒,每隔一定的时间间隔对客户端的位置采样一次,可以看到在不同更新频率下,本发明方法均优于经典方法。

如图5可见,随着服务范围的增加,算法运行时间和分配代价都有所增加,因为随着服务范围的增加,服务端可以覆盖更多之前不在任何服务端范围内的客户端,使其纳入到整体的分配之中,因此残剩的分配数量也逐渐增多,造成算法运行时间和分配代价增大,但是本发明方法运行时间的增加幅度要明显小于经典方法,所以分配代价也小于经典方法。

如图6和图7可见,随着客户端数量和服务端数量的不断增加,本发明方法运行时间增加的幅度远小于经典方法,且均在十秒钟之内,足以说明本发明方法的性能高于经典的分配方法。

如图8为本发明方法各个阶段的运行时间的比较图,可以看到耗时占比最多的步骤为预测分配阶段,而预测范围和调整分配阶段的耗时均远小于预测分配阶段,这是经典方法所无法实现的。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1