AAAI2020 论文笔记 一种空间众包平台同步到达匹配算法 Simultaneous Arrival Matching for New Spatial Crowdsourcing Platforms
研究背景
- 大多众包平台现有方法通常着重于两种对象worker和user的匹配,让worker前往user所在的位置提供服务,这是二维匹配的问题。然而一些新平台提供的最新服务,例如个性化理发服务(南瓜车app)和乘车共享(滴滴app),需要user和worker一起前往第三工作场所workplace完成服务,这是三维匹配的问题,现有众包平台无法很好解决此类匹配问题。
- Song 等人在论文“Trichromatic Online Matching in Real-Time Spatial Crowdsourcing”中提出了三维匹配策略,即平台通过最大化用户和工作人员的总效用得分来制定计划。这个策略只是最大限度地提高了平台的满意度,但未能全面考虑用户和工作人员的要求。
- 本文作者Li于2019年在KDD上发表的“Three-Dimensional Stable Matching Problem for Spatial Crowdsourcing Platforms”探讨了工人(worker)和用户(user)对工作场所(workplace)带偏好的三维匹配问题的求解算法。感兴趣的朋友可以参见另一位博主对这篇文章的解读:KDD2019空间众包平台的三维稳定匹配问题
- 本文是Li在3上的进一步研究,在工人和用户对工作场所带偏好的基础上,加入了工人和用户的到达时间,由此这个问题就由划分问题扩展到调度问题,难度也进一步升级。
- 下面举一个简单的例子:
考虑图1所示的一个众包平台,平台上3个工人(w1…w3)、7个用户(u1…u7)和3个工作场所(p1…p3)。每个worker的容量分别为{3,3,1},表示其能够服务的最大用户数。按照Li在3中的算法得到的匹配结果如图(a)所示。然而,在现实世界中,每个用户和工人都有一个离开时间(Departure Time),这意味着他们从当前位置离开去往工作场所的时间。
假设出发时间如表1所示,每个用户和工人的出行速度为0.5。然后u5在9:05出发,9:12到达p2。从图(a)中可以看出,w3在9:24到达p2,也就是说u5需要等w312分钟。同样的,u4在9:08到达p3,他需要等u7到9:30。u4和u5都不会满意。
在上述例子的启发下,作者提出了一个新的模型,确保工人和用户在给定的容忍时间内到达他们匹配的工作地点,并称这种匹配为同时到达匹配(SAM)问题。回到图(a)中的例子。假设工人的最大等待时长为{5, 4, 10},工人的服务半径为{5, 3, 8}。用户的最大等待时长为{3, 4, 2, 2, 3, 1, 5},可接受的服务半径为{3, 3, 4, 5, 5, 3, 6}。作者给出的匹配如图(b)所示,在这个解中,每个人的等待时长都不超过自己的最大等待时长。
作者贡献
- 作者提出了一个新的稳定匹配问题——同时到达匹配问题(SAM),该问题使用户和工人几乎同时到达他们指定的工作地点。另外他们证明了SAM问题的匹配结果不具有单调加性。
- 作者设计了一个贪心算法,名为滑动窗口算法。它贪心地根据工人的能力(capacity)进行匹配,并利用用户到达顺序和等待时间约束来减少候选用户的数量。
- 为了提高算法的有效性,作者提出了一种基于阈值的算法,名为阈值扫描算法。该算法可以动态调整结果,并根据工人的能力随机选择一个阈值,进一步减少扫描空间,表现出比滑动窗口更好的性能。
- 最后作者在真实和合成数据集上进行了实验,通过与现有算法的比较,验证了算法的有效性和高效性。
问题定义
首先来介绍一些基本概念:
- 给定 k 个工作场所, m 个用户, n 个工人,我们用 P 表示工作场所集合,U为用户集合,W 为工人集合。每个工作场所 p∈P 都与一个位置 lp 相关联。每个用户 u∈U 被描述为 u u, tu, δu, ru, vu, fu(·)> ,lu表示 u 当前的位置,tu为用户 u 离开当前位置 lu 需要的出发时间,δu是用户 u 的最大等待时长, ru是用户 u 的可到达半径范围,vu 是用户 u 行进的速度,fu(·) 是一个计算用户 u 对工作场所的偏好的函数。fu(p1) > fu(p2) 表示用户 u 相比 p2更喜欢 p1 。每个工人w∈W被描述为 w w, cw, tw, δw, rw, vw, fw(·)>,lw表示 工人w 当前的位置, cw为工人w可服务的最大用户数量,tw为工人w 离开当前位置 lw 需要的出发时间,δw是工人 w 的最大等待时长, rw是工人w 的可到达半径范围,vw 是工人w 行进的速度,fu(·) 是一个计算工人 w 对工作场所的偏好的函数。用户和工人可能对不同的工作场所有相同的偏好。两个位置之间的距离是欧氏距离,我们使用这个距离来计算偏好的顺序。用其他的偏好代替距离偏好也是一样的。
- 三元组(w, p, Us)是一个匹配,这意味着 p 是工人 w 和 Us里的用户完成服务的工作场所。注意,一个用户只能匹配一个工人和一个工作场所。一个工人可以匹配多个用户,但只能匹配一个工作场所。一个工作场所只能容纳一个工人和他/她分配的用户。 对于每一个匹配(w, p, Us),如果存在另一个工作场所p’, 工人w 和 Us 的用户 都 更喜欢 p’ ( p’ 距离更近), 那么工人和用户会感到不满。这涉及到如下稳定三元组的概念。
- 定义1(稳定三元组) 对于工人w,工作场所p,一个用户集合Us,(w, p, Us)是一个稳定的三元组当且仅当没有其他工作场所 p’∈P 满足 w 相比 p更喜欢 p’ 且任何u∈Us相比 p 更喜欢 p’ ,无论 p’ 是否已被匹配。
如果一个用户/工人需要等待很长时间他/她所匹配的人才到达,他/她会感到不高兴。这就需要匹配到同一工作场所的所有用户和工人的等待时间不应超过一个上限。具体来说,问题的定义如下。
- 定义2 (SAM问题) 给定一组工人集合W,一组用户集合U,一组工作场所集合P,在满足以下约束条件情况下,找到一个可以提供的最大用户数量的匹配结果:
- 稳定约束:三元组(w, p, Us)∈M 应该是稳定的。
- 容量约束:对每个三元组(w, p,Us)∈M,Us的大小不超过w的最大容量。
- 时间约束:对每个三元组(w, p, Us)∈M,工人w和他/她分配到的用户的等待时长不大于他们的最大等待时长。
- 唯一约束:每个工人和用户可以匹配一个工作场所,每个工作场所可以匹配一个工人。
在下文,我们称满足以上所有约束的稳定三元组为 有效三元组。
定理1 SAM问题是NP-hard的。
Pf:考虑一个SAM问题的特殊情况,其中所有工人和用户的离开时间是相同的,在0:00,最大等待时间是无穷大。这种特殊情况本质上就是3D-SSM问题[Li et al.,2019]。由于3D-SSM问题的决策问题是NP完全的 [Li et al.,2019],所以SAM问题是NP-hard。
定理2(继承自[Li et al.,2019]) 稳定三元组具有单调可加性,即如果(w1, p1,{u1})和(w1, p1,{u2})是稳定三元组,那么(w1, p1,{u1, u2})也是稳定的三元组。
定理3 有效三元组不具有单调可加性,即如果(w1, p1,{u1})和(w1, p1,{u2})是有效三元组,但是(w1, p1,{u1, u2})可能是无效的。
Pf:假设工人 w1 在 T(w1, p1) 时刻抵达工作场所 p1,并且有
T(u1, p1) − T(w1, p1) = min{δu1, δw1},
T(w1, p1) − T(u2, p1) = min{δu2, δw1}。
上述两式相加得:
T(u1, p1) − T(u2, p1) = min{δu1, δw1} + min{δu2, δw1} > min{δu1, δw1, δu2}
打破了时间约束,(w1, p1,{u1, u2})无效。
算法分析
滑动窗口算法
为了最大化匹配用户的数量,可以优先为具有较大容量的工人分配用户。但是,找到匹配三元组的最大数量需要枚举所有可能的用户、工人和地点的组合,这是不切实际的。利用用户到达顺序和等待时间约束可以对每个工人进行大量的候选三元组修剪。因此,在说明滑动窗口算法之前,需要介绍时间轴和窗口的定义。
定义3(时间轴) 时间轴显示了用户和工人从他们的位置到每个工作场所的所有到达时间。时间轴的起点是第一个工人/用户离开的时间,而终点是最后一个工人/用户到达最远的工作地点的时间。如果用户u(或工人w)在时间 t 到达工作地点 p ,我们在时间轴上标记一对(u, p)(或(w, p))。
定义4(窗口) 窗口 W~ 是在时间轴上滑动的固定时间间隔。如果[t, t+δu](或[t, t+δw])与时间间隔 W~ 重叠,我们称时间 t 上的一对(u, p)(或(w, p))被滑动窗口W~覆盖。
下图2所示为例1里9:00-9:25时刻的时间轴,(u2, p1)表示u2在9:06到达p1。(u4, p3)表示u4在9:07到达p3 。W~是一个滑动窗口,长度为5分钟。(u2, p1), (u4, p3), (u1, p1), (u4, p2), (w1, p1)和(u4, p1)都被覆盖了
算法流程图如下:
阈值扫描算法
作者在