文献阅读02-动态拼车服务中的高效插入操作

眉间皱痕 提交于 2020-02-24 04:57:28

题目:An Efficient Insertion Operator in Dynamic Ridesharing Services (动态拼车服务中的高效插入操作)
作者:Yi Xu (易旭), Yongxin Tong(童永新), Yexuan Shi(叶璇), Qian Tao(钱涛), Ke Xu(柯旭), Wei Li(魏丽)
单位:软件开发环境与环境国家重点实验室;北京航空航天大学北京大数据与脑计 算高级创新中心

研 究 领 域(想做 什么,功 能,应用 或 研 究 背景) 研究当前动态拼车在智能交通应用中的插入操作,改进当前当前插入操作。
针 对 的 问题(要 解 决 什 么 技 术 或 者 研 究问题) 动态拼车中的核心操作是插入操作。给定一个工作者和一条可行路线,其中包含先前 请求中的一系列起点-终点对,则插入操作将新请求的起点-终点对插入到当前路线, 从而优化某些目标。常见的优化目标包括最小化所有请求的最大等待时间/距离,最 小化总旅行时间/距离。但其时间复杂度为 O(n3),其中 n 为分配给工作者的所有请求 的数量。这个时间复杂度从根本上限制了基于城市规模的动态共享应用的效率。
解 决 方 法 的 思 路(总体 基 本 原 理,指出 创 新 之 处) 提出了一个基于分区的框架,将请求集 R+划分为四个不相交的集合,并独立地处理 它们的约束和目标值,并设计了一个 O(n2)的插入操作。基于该框架,利用高效的索 引结构(例如 fenwick 树(树状数组),sement 树(线段树)),并将 O(n2)的插入操作的时 间复杂度降低,如利用树状数组将其降为 O(n),利用线段树将其降为 O(nlogn)。
实 验 结 果 及 其 性能(最 好量化) 实验是在一台服务器上进行的,服务器上有 40 个 Intel(R)Xeon(R)E5 2.30GHz 处理器,支持超线程和 128GB 内存。所有的算法都是在 GNU C++中实现的。每个实 验重复 10 次,给出平均结果。实验数据都为现实世界的真实数据。对于现实世界中 的动态共享应用程序(超过 24 小时的物流),使用直接实现的插入操作(即 BF)是不切实 际的。ST 算法(线段树实现的基于线段基元的动态规划算法)分别在出租车方面和物流 方面比 NDP 的速度快 2 倍和 5.1 倍,而 FT 算法更快,是 NDP 的 2.9 倍到 7.6 倍。在 以最小化总行程时间为目标的大多数实验中,算法 FT(树状数组实现的基于线段基元 的动态规划算法)的运行速度快于最先进的 LDP 最小化总行程时间的插入操作。需要 注意的是,当最小化最大流时间时,FT 算法也运行得最快。
备注(其 他 方 面 值 得 学 习 或 者 关注的) 本文对动态共享服务中的插入操作做了详尽的阐述,并分析了每一个算法的时间复杂 度,同时也给出了相应的例子便于读者理解。在对插入操作的优化中,推到过程严谨, 公式意义明确。

介绍:
动态共享是指在短时间内安排一次共享服务。它支持现实世界的各种智能交通应用,例如拼车,食品配送和最后一英里的物流。对于一组工作者和一系列动态请求,动态共享的一个主要功能是为每个工作者安排一条接收交付请求的路线。工作者可以是拼车中的司机,也可以是食品运送和物流的快递员,而相应的请求可以是一个或多个乘客和包裹。插入操作已广泛用于动态共享的各种启发式解决方案中,并被视为核心操作。在这些解决方案中,给定一个工作者和一条可行路线,其中包含先前请求中的一系列起点-终点对,则插入操作将新请求的起点-终点对插入到当前路线,从而实现某些目标优化。一般插入操作的目标是从请求或工作者的角度定义的。从请求的角度来看,插入需要最小化所有请求的最大等待时间/距离。从工人的角度来看,插入应该使工人的总旅行时间/距离最小化。
本文提出了一个基于分区的框架,并设计了一个O(n2)的插入操作。另外,利用高效的索引结构(例如fenwick 树(树状数组)),并将一般插入操作的时间复杂度降低到线性时间。
系统的研究了用于动态共享的一般插入操作,并提出了一个基于分区的框架,以将一般插入的时间复杂度降低到O(n2)。
基于分区的框架,使用高效的索引结构(例如fenwick 树(树状数组))进一步将插入操作的时间复杂度降低到O(n)。
实验结果表明,在实现世界的城市数据集上,本文的算法可以将插入操作的速度提高1.5倍到998.1倍。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!