这篇文章主要应用在车联网中,在混合基础设施和车辆之间(V2I)、车辆和车辆之间(V2V)环境下的数据协同调度。
目的:尽可能让更多的车辆检索他们需要的数据。
CDS(Cooperative Data Scheduling)是一个NP-hard问题【能够在多项式时间复杂度内归纳的问题】https://blog.csdn.net/qwer7512090/article/details/93720209[P问题、NP问题、NP-HARD问题、NPC问题]
这篇文章利用了最大加权独立集问题构造多项式时间简约,证明CDS是NP-hard问题
Maximum Weighted Independent Set(MWIS)最大加权独立集
这篇文章比较相比于其他的先发出来的几篇文章更难一点,因为里面涉及了很多生僻的概念和数学证明问题,尤其是没有基础的朋友很容易看不懂这些事如何优化求解的,这些朋友可以大致了解下上面链接的知识。
这篇文章的主要贡献
- 车辆可能会请求共同特征文件(停车点、道路信息、充电站等)。调查了开发V2V通信协助基于路边单元的数据服务的潜在好处,并讨论了在混合I2V/V2V环境下提供高效数据服务的挑战。
- 模型组成:一个控制频道、两个设备频道 控制频道:传播管理信息、服务广告、控制消息。RSU->CAR 设备频道:I2V/V2V数据传播 到目前为止,文献中还咩有考虑到这种渠道协调和数据同步传播
- 在调度周期,车辆能够通过I2V频道接收从RSU发送来的数据项,同时,其他啊车辆能够通过V2V频道同步传输或者接收数据项。 每个汽车保存一个请求数据集。在每个调度周期仅有一条数据项能够被传输/接收。
- 车辆不能同时传输接收数据项。 每辆车都有一个服务权重(所述重量与所述接收车辆的估计剩余停留时间成反比) 调度的目的是为了最大化权重收益,是周期时间内被服务的车辆权重总和
- 利用最大加权独立集(MWIS)问题构造多项式时间简式来解决CDS这个NP难问题。
- 一个中心化的RSU控制数据在I2V/V2V频道上的传播。RSU为汽车提供调度决策,指引他们以什么样的频道传播什么样的数据的接收,这就能够实现协作数据传输。为了让这种方法变得更容易,将一个调度周期划分成三段。 第一段:所有车辆设定为V2V模式,并且广播他们自己的心跳信息,所以每辆汽车能够识别邻居列表(车辆)。 第二段:所有车辆切换到I2V模式,每辆车通知RSU有关自己的邻居列表。 第三段:每辆车在调度策略的基础上选择I2V/V2V任意频道。数据传播的多个实例的同步传输在这个时间段。
- 解决CDS问题并提出通过混合的I2V和V2V通信细节的实施 在线调度算法中,调度策略通过基于贪心方法的RSU计算,近似解决了MWIS问题(最大加权独立集问题)
- 介绍了SDN
- 基于真实的交通情况、通信特征和评估所提出的解决方案在各种流量工作负载下的性能。建立仿真模型
结论
这篇论文,提出了通过混合I2V/V2V通信模式的数据传播系统,并且讨论了调度挑战出现在这样的环境中(I2V,V2Vt混合通信环境)。本文详细分析了混合通信汽车环境中对数据传播的要求和约束。在此基础上,给出了协同数据调度问题(CDS)的形式化描述。通过MWIS的减少证明了CDS是一个NP-hard问题。在线调度算法CDD提升数据传输效率(协同I2V/V2V通信模式)。CDD通过将CDS转化为MWIS,并用贪婪算法求解MWIS的近似解进行调度决策。基于可靠的交通和通信特征建立仿真模型。在大流量范围下的仿真结果表明了CDD的优越性。
=====================================================
预备知识
这篇论文考虑基于专用短程通信技术(DSRC<802.11p>,专为ITS应用开发的通信技术;eg:WIFI和蜂窝网络)的混合I2V/V2V通信方式,数据服务由RSU提供。但是不能适当地处理一些ITS应用问题:延迟感知和位置依赖。DSRC是为了不需要等待授权和连接程序进行数据交换而设计的通信方式。频繁的和蜂窝网络进行通信将产生大量的通信费用,因此DSRC是最合适的解决方案。
以协同交叉控制系统为例进行DSRC可行性的讲解。
在这个系统中,车辆需要上传位置、速度、行驶方向等信息给RSU。根据最新的车辆信息,RSU周期性计算每辆车最佳的运动状态,并广播操作消息(eg:建议速度、加速度)。车辆可以将他们的需求加入到基本安全消息(BSM,Basic Safety Message)中
NOTE:SAE J2735 标准:应用层数据类型及交互标准;
[SAE J2735 标准] https://zhuanlan.zhihu.com/p/55425000?from_voters_page=true
调度周期设定为1s
由于无线电通信的本质,在车辆非常接近的时候会遭遇数据传输碰撞。
假设车辆每次仅选择一种通信方式(V2V/I2V)即无法同时使用两种通信频道。
因为车载单元(OBUs,on road unit)半双工(half-duplex)通信模式所以车辆无法同时收发消息。
证明CDS(协同数据调度)问题是一个NP难问题:
通过最大加权独立集来构建多项式时间简式。MWIS是一个注明的NP-hard问题,简单介绍如下:
G={V,E}为加权无向图,V是顶点集,E是边集,v是顶点
v∈V,每个顶点均有对应的权重W(v)
独立集:任意两个顶点u,v∈I(V的子集I),满足{u,v}∉E【两点不相邻】
独立子集I的权重W(I)是W(v)的总和 v∈I
WMIS是从加权无向图中寻找最大独立集I*的问题 W(I *)≥W(I),所有的I∈G
使用贪婪的方法来近似求解MWIS:
数据传播系统
一个中心化的RSU控制数据在I2V/V2V频道上的传播。RSU为汽车提供调度决策,指引他们以什么样的频道传播什么样的数据的接收,这就能够实现协作数据传输。为了让这种方法变得更容易,将一个调度周期划分成三段。 第一段:所有车辆设定为V2V模式,并且广播他们自己的心跳信息,所以每辆汽车能够识别邻居列表(车辆)。 第二段:所有车辆切换到I2V模式,每辆车通知RSU有关自己的邻居列表。每个请求只针对一个数据项,只要通过I2V或V2V通信检索or响应的数据项,该请求就被满足。未解决的需求加入服务队列。根据一定算法,调度策略通过控制信道传输。 第三段:每辆车在调度策略的基础上选择I2V/V2V任意频道。数据传播的多个实例的同时传输在这个时间段。
这篇论文仅考虑了单跳路由(一个RSU的情况)V2V数据传输情况。
为了能够让I2V/V2V数据传输协同起来,算法应当满足以下调度策略:
- 算法将车辆划分为两个组,一组是I2V通信,另外一组是V2V通信
- 算法选择一个数据项从RSU进行传输,以至于在I2V组中的车辆能够通过I2V服务频道接收到这个数据项
- 对于V2V组中的车辆,该算法确定了一组发送方车辆和由每个发送方车辆分发的相应数据项,每个发送车辆的邻居有机会通过V2V服务频道接收到他们请求的数据项。车辆被认为在短时间(一个调度周期)内处于同一邻里域中。
图解:
- V3,V5,V7是I2V组中的车辆;
- 没有阴影的数据块:车辆请求但从来没有被检索的通信数据项。
- 阴影数据块:被缓存和检索过的通信数据块。
- a是被RSU广播的,所以V3.5.7都通过I2V信道能收到。
- 双向箭头:两头车辆互为邻居,被发送车辆发送的数据项预先缓存
- 由于无线电通信的特征,V1在收到V4和V2同时发来的数据时,产生碰撞。
问题分析
协同数据调度(CDS)问题:
这个表中表示的是文章中各种符号所表示的意思
NOTE:只要数据项被请求,则该数据项属于SQvi(t)
RSU中存在一个服务队列,由三元组组成<Vi,Qvi(t),Nvi(t)>,其中Qvi(t),Nvi(t)在每个调度周期进行更新。
为了简化CDS公式,有以下定义:
在I2V通信模式中,RSU在每个调度周期广播一个数据项,dI(t)∈D
Vrsu(t):在RSU覆盖范围内的车辆
只有当Vi∈Vrsu(t)的时候,车辆才能够通过I2V信道接收到dI(t)
I2V通信模式下的车辆集定义:
RV(dI(t)):接收车辆从RSU收到的dI(t),由任何车辆Vi组成,Vi满足以下条件:(1、Vi在RSU的覆盖范围中 2、 Vi是I2V模式 3、dI(t)被Vi请求,并且并没有被Vi检索缓存过)
V2V通信模式下的车辆集定义:大写字母为集合,小写字母为数据项
被发送的数据都是预选缓存的。
接收d(SVi)车辆:RV(d(SVi)),需要满足一下条件:(1、Vj在SVi的邻居列表中 2、d(SVi)需要被Vj请求,且从来没有被检索过 3、Vj没有在发送车辆集中 4、Vj不是除了SVi之外任何发送车辆的邻居车辆)第一二条件是简单明了的,第三条确保车辆无法同时发送和接收数据包,第四条保证了接收车辆不会发生数据碰撞。
接收车辆在V2V通信中的定义:
V2V通信中的接收车辆集【RV(D(SV(t)))】是接收车集数据集的并集
the gain of scalability(G(t)):可伸缩性收益是在一个调度周期内通过I2V或V2V通信可以提供服务的车辆总数。
dI(t):通过RSU传递的数据项。 SV(t):发送车辆集。 V2V通信模式下相对应的数据传输集D(SV(t))。
加号左侧:I2V通信中接收车辆的总数
加号右侧:V2V通信中接收车辆的总数
服务不同车辆在系统性能方面有着不同的影响。
权重收益:
Wvi(t):Vi在t时刻的权重
CDS(协作数据调度)公式化:
算法做以下调度决策:
- 将车辆划分为I2V和V2V两个集,换句话说,VI(t)和Vv(t)
- 一个数据项dI(t)被选做通过I2V通信广播通道传播
- 在V2V通信中选择一组发送车辆SV(t)和相应的一组数据项D(SV(t))【因为有很多V2V链路,可以传输不同的数据,所以D(SV(t))是个集合;而dI(t)是个数据项,因为RSU广播一次只能广播一个数据项】。
CDS例子:
阴影:被检索的数据块;非阴影:未解决的需求数据块;边:车辆的邻居关系
假设所有车辆都在RSU覆盖范围内(V=Vrsu);每辆车的服务收益为1(Wvi=1,i=1,2,3....6)
不难观察到一下最优解:
- c从RSU被调度传输(dI=c)
- V3、V5是I2V模式,其他4个车辆是V2V模式
- V1和V4是发送车辆集SV={V1,V4}为了分别分发a、b数据块;D(SV)={a,b}:V2V通信中的数据集;RV(dI)={V3,V5}:I2V组中接收车辆集;RV(D(SV))={V2,V6}:V2V通信模式下的接收车辆集。所有为解决的请求都会在这个调度周期中进行服务。
NP-Hardness问题:
概述:
- 引进了一组操作(Tentative Schedules,TSs),这规定了找到CDS最优解的基础
- 基于车联网协作数据传播的一些限制情况,建立起了一组规则用来识别冲突的操作,如此以至任何一对冲突的操作不能共存在CDS的最优解中。
- 我们通过为每个操作创建一个顶点的方式来构建无向图G,并在任意两个冲突的操作之间创建边。 每个顶点的权重被设置为相应操作的权重。
有了以上的映射关系,CDS最优方案仅且仅当G的MWIS(最大加权独立集)被计算的时候才被找到。因此CDS是NP-hard问题。
图解:
每个顶点的标识符表示一个可行的操作;V1cV3:V1将c传送给V3(图二可知,V1早已缓存c,所以可以进行传递)。因此,每个操作和每个顶点之间存在一对一的关系。
两个顶点之间的边:两个对应的操作彼此冲突。
举个例子:V1cV3和V3aV2表示两个操作(V1将c传给V3,V3将a传给V2)不能同时进行。也就是无法同时接受和传输数据。
定义一个规则集来捕获所有在数据传输中的限制以至于每对冲突的操作能够被识别。
令Wvi=1,每个顶点的权重设为1
图中阴影顶点RcV3、RcV5、V1aV2、V4bV6是G的MWIS(最大加权独立集),总权重是4=1+1+1+1
形式化描述:
Tentative Schedules(TS)实验调度:
一个TS指一个操作有能够通过I2V/V2V通信模式服务未解决的请求的可能。
TS分为TSi2v(t)和TSv2v(t)。其中TSi2v(t)是通过I2V通信的服务请求集;TSv2v(t)是通过V2V通信的服务请求集。
V1aV2是个TS,V1aV3不是TS,因为V3已经检索过a了,并且这个调度不能够服务任何未解决的需求
TS必须要解决一个数据项的传输,不能是请求车辆已经获取缓存的。
冲突TSs:
不同TSs可能会和其他的冲突,由于以下协作数据传输的限制:
- RSU一个周期只能广播一个数据项
- 每个发送车辆一个周期只能发送一个数据项
- 一个车辆不能同时接收/发送数据
- 接收者会发生数据碰撞
- 每辆车在一个周期内仅能处于一种模式下(I2V/V2V)
相应的5个识别冲突TSs的规则:
图的构造:
首先通过每辆车的等待获取的数据项和检索过的(已经获取的)数据项找到TSs集;然后无向图G由以下程序进行创建:
- 为每个TS创建顶点
- 每个顶点的权重集对应TS中接收车辆的权重集
- 对于任意两个冲突的TS,在两个对应顶点之间增加一条边
G很明显能在几何时间内构造完成。每个顶点和TS是一一对应的关系。
G中任何两个非相邻节点:两个相对应的TSs彼此不会冲突,因此他们的权重收益可以累积(accumulated,两个顶点的权重之和)。
CDS的最大权重收益值当且仅当G的MWIS(最大加权独立集)计算出来才能得到。
综上证明CDS是NP-hard问题。
调度算法CDD
CDD: cooperative data dissemination
为了提高系统在数据服务各方面的性能表现,简单地最大化可伸缩性收益(通信周期内I2V/V2V服务车辆的总数)(在五-A.2 Definitions中)每个调度周期不能保证全局最优调度性能,因为不能区别不同服务车辆在一个特定的调度周期的紧急性。
基于以上观点,捕获服务紧急性,并提升全部调度性能。预计车辆有高的优先级,能够有更短的剩余停留时间。
图四例子是对CDD算法设计的更深层次的理解。
(a)图展示了一个在t1时刻的方案,V1,V2,V3,V4分别请求数据b,a,a,b。V1已经预存了a数据块,服务区域范围是虚线框的范围。V5,V6在t2时刻开进服务区域,然后他们分别请求b,a数据块。同时,V1离开了服务区域。
当考虑让服务车辆的数量在时间t1达到最大值,最好的方案是设置VI(t1)={V4},Vv(t1)={V1,V2,V3},dI(t1)=b,SV(t1)={V1},D(SV(t1))=a。
按照这样的安排,V2和V3从V1检索a,从V4通过RSU检索B。但是V1不能在t1时刻检索到b(因为V1在t1的时候是V2V模式,为V2,V3提供数据块a,一个车辆不能同时处于V2V/I2V模式)。当V5和V6在t2时刻时,这一轮最好的调度安排是让V4bV5通过V2V通道,RSU将a通过I2V通道传递给V6。
尽管以上的调度能够让每个周期内的服务车辆数量达到最大值,但是不能区分不同车辆的服务紧急性,这就导致了V1无法接收到服务。相反,如果我们考虑以下的策略:
在t1时刻:VI(t1)={V1,V4},dI(t1)={b},并且没有车辆加入V2V通信模式。尽管只有V1,V4在t1的时候被服务,但是所有剩余的车辆能够在t2时刻获得服务,VI(t2)={V2,V3,V6},Vv(t2)={V4,V5},dI(t2)=a,SV(t2)={V4},D(SV(t2))={b}。
根据以上调度情况:V2,V3,V6从RSU获取数据a,V5从V4获取数据b
根据以上的观点,预估的在服务区域内车辆的剩余时间空隙是Slackvi(t)
CDD调度分为三步:
- CDD审查所有的TSs(I2V/V2V两种方式的TS)来找到每对冲突的TSs,并计算每个TS的权重
- CDD构建了图G,并将CDS转化为了MWIS。然后基于贪婪方法选择了TSs的子集
- CDD生成以下输出:
- 数据项dI(t)通过RSU转发
- dI(t)数据的接收车辆集RV(dI(t))
- V2V通信模式下的发送车辆集SV(t)
- 每个发送车辆的数据集D(SV(t))
- 接收车辆集RV(D(SV(t))),V2V模式下
每步的详细说明如下,CDD的伪代码在附录:
A. 识别冲突TSs,并计算权重:
- CDD确定在RSU覆盖范围内的车辆集Vrsu(t)【伪代码:1-6行】
- 找到I2V/V2V所有的TSs【伪代码:7-22】
- 识别每对冲突的TS【伪代码:23-43】
- 计算每个TS的权重【伪代码:44-50】
B. 构建无向图G并选择TSs:
- CDD基于映射规则构建无向图G【伪代码:1-10】
- 使用贪婪方法近似解决独立权重集问题【伪代码:11-22】
- 构建TSs选择集【伪代码:23-27】
为了构建无向图G,C DD在Step 1为每个TS创建顶点V,并设置了相应TS对应的权重W(v)。对于每对识别的冲突的TSs,他们对应相应的顶点,边eij表示在Vi和Vj之间的边。为了选择独立顶点,CDD采用了贪婪的方式来选取,将在第三部分Section三种叙述。
C. 生成输出,更新服务队列:
- CDD解析每个选择的TS来制定决策,包括dI(t),RV(dI(t)),SV(t),D(SV(t)),RV(D(ST(t)))的确定。【伪代码:1-11】
- 通过增加新到达车辆实体或移除离开的车辆实体来更新服务队列【伪代码:12-21】
为了说明调度的可伸缩性。
假设|V|车辆,|Q|每辆车的最大请求数
TSi2v的上界是|V|*|PQ|,其中|PQ|是车辆未解决请求(pending requests)的数量,|PQ|≤|Q|
TSv2v的上界是|V|*|SQ| *(|V|-1) *|PQ|,|SQ|是车辆已经解决请求的数量,|SQ|≤|Q|
NOTE:(|V|-1)*|PQ|代表最坏的情况下,一个车是所有其他车辆邻居,并且它需要检查所有邻居的未解决的请求来找到有效的TSs。
Step 1的复杂度是O(|V|^2)
Step 2中,假设有n个顶点在构成的无向图里面,根据贪婪算法,最坏的请看是找到独立集需要检索所有的顶点,当所有的顶点都相互独立的时候,复杂度是O(N);另一方面,根据映射规则,我们知道n=|TSi2v|+|TSv2v|。当|TSi2v|≤|V|*|Q|,|TSv2v|≤|V| *|Q| *(|V|-1),复杂度是O(|V|^2)。
总的来讲:CDD的时间复杂度是O(|V|^2),是合理的,不会影响调度可伸缩性。
性能评估
B. Metrics:数据记录/指标
设计以下指标用于数量化分析算法性能:
- 可伸缩收益: 在一个调度周期通过I2V/V2V通信服务的车辆总和
- I2V广播生产率:nrs/nr nr:从RSU广播的数据项数量 nrs:通过I2V信道服务请求的总数 高的I2V广播生产率暗示算法善于利用广播效应,且能够更高效地使用RSU的带宽
- 收益分配: 这个度量标准将服务请求分成两个集合:一个集合包含通过RSU的服务请求;另一个集合包含通过邻居车辆的服务请求。每台设备的比例反映了I2V和V2V通信对整体性能的贡献
- 服务率:ns/n ns:所有车辆服务请求总数 n:所有车辆提交请求总数
- 服务延迟: 测量服务请求等待时间,当请求提交的时间到相应数据项收到的时间是实例持续时间
C. Simulation Results:仿真结果
图解:交通负载成线性。 对于FCFS和MRF来讲,他们的调度通过纯I2V通信模式,他们的可伸缩性收益是在每个调度周期通过I2V通信模式车辆的平均数。
相反,CDD致力于追求I2V/V2V通信模式下数据服务的平衡,以至于服务车辆总数能够最大化。
根据以前的论文,通过优先调度热数据项,提高了广播效果的有效性。
MRF总是调度pending请求最多的数据项。因此MRF达到了最高的I2V广播生产率。
CDD也考虑了数据项的流行程度【个人理解:数据的被请求的程度】。但依然排在FCFS后面,FCFS没有考虑数据流行程度。这是因为CDD考虑不仅是通过I2V通信模式下的服务车辆的数目,也考虑了V2V通信模式下的服务车辆。V2V模式下的车辆无法在同一调度周期接收RSU发送的数据,这就导致了I2V广播生产率的低值。
结果表明:纯I2V通信模式算法在RSU广播效果上有更好的表现。如果没有I2V和V2V数据分发之间的适当协调,CDD无法为性能带来显著的好处。
CDD在I2V/V2V构成的收益分配。
当交通负载轻的时候,更多的车辆通过I2V通信模式进行数据传播。【这是因为每条道路上的车辆密度很低,因此车辆的邻居很少,通过V2V传递数据的车辆就很少。】
随着交通负载增大,V2V数据传播的贡献值也随之增大。
【原因:
1、车辆密度变大,这就会有更多的邻居车辆,因此在邻居车辆中会有更多的请求
NOTE:不同车辆的常规请求可能会在不同的时间段里面提交。因此,它不太可能通过一个I2V广播服务所有这些人,剩下的请求更可能通过V2V通信模式来服务车辆。
2、大的交通负载会造成长时间的车辆在RSU服务区的停留时间。这让车辆通过V2V通信模式来获取数据项的机会变多
3、当交通负载大的时候,有更多的车辆提交请求不同的数据项,但是只有一个数据项能通过RSU广播。这限制了通过I2V通信模式数据传输的贡献值。相反,多种不同的数据项,能够在不同的V2V链路进行传输。
】
所有算法,在开始交通负载增大的时候,服务率均有所下降,随着交通负载逐步增大,所有算法的服务率又开始攀升。
【原因:一开始,车辆通过RSU覆盖范围的速度很快,系统仍然能够达到一个合理不错的性能(因为车的数量很少,仅有少量提交的数据请求)。当车辆到达率开始增加的时候,尽管速度会相应下降,请求数量 的增加会影响性能,这导致了服务率的下降。当车辆速度持续下降(交通负载增大),车辆的长时间停留逐渐成为了性能的主导因素。因此,服务率开始增加。】
NOTE:尽管这些数据仅来自于一个RSU的服务区域,当多个rsu可以协作提供数据服务时,扩展解决方案并进一步提高系统性能是很简单的
算法的服务延迟。
一开始MRF和CDD服务延迟差不多,但是随着交通负载的增大,V2V通信模式就发挥出了更好的效果,使得CDD的服务延迟更低。
NOTE:平均服务延迟(mean service delay)来自于所有的服务请求。
结论
这篇论文,提出了通过混合I2V/V2V通信模式的数据传播系统,并且讨论了调度挑战出现在这样的环境中(I2V,V2Vt混合通信环境)。本文详细分析了混合通信汽车环境中对数据传播的要求和约束。在此基础上,给出了协同数据调度问题(CDS)的形式化描述。通过MWIS的减少证明了CDS是一个NP-hard问题。在线调度算法CDD提升数据传输效率(协同I2V/V2V通信模式)。CDD通过将CDS转化为MWIS,并用贪婪算法求解MWIS的近似解进行调度决策。基于可靠的交通和通信特征建立仿真模型。在大流量范围下的仿真结果表明了CDD的优越性。