论文笔记《Physical-Virtual Collaboration Modeling for Intra-and Inter-Station Metro Ridership Prediction》

Abstract

本文主要工作有两方面,其一是基于地铁站点的流量预测,其二是在线OD预测。其中很值得学习的是三个图构造方式,也是论文题目中Physical-Virtual的体现,三个图分别是(后文详细说明):

  • 图1-传统的物理拓扑图 a physical graph
  • 图2-流量相似性图 a similarity graph
  • 图3-流量相关性图 a correlation graph

Introduction & Methodology

在引言部分,除了简单研究现状外,作者还主要介绍两方面内容:其一,针对流量相似性和相关性的说明;其二,介绍用于构造**流量相似性图(similarity graph)**的方法 Dynamic Time Warping(DTW),下文结合文中METHODOLOGY一节中的图构造相关内容一起说明。

物理图 (physical graph)

基于现实站点的连通特性构造拓扑图,并做 row normalization

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cZGnAd0E-1605595284720)(C:\Users\RuiNan W\Desktop\3.png)]

流量相似性图 (similarity graph)

在这里插入图片描述

  • 流量相似性:现实世界的地铁系统中,距离很远或没有直接相连的两点(如B/C),可能因为具有相似功能性而具有类似流量分布特性,可以用虚拟边连接它们。

  • 步骤1: 构造该图使用的是Dynamic Time Warping(DTW [1]),利用 DTW 计算各站点的相似性得分矩阵 S ( i , j ) = exp ⁡ ( − DWT ⁡ ( X i , X j ) ) S(i, j)=\exp \left(-\operatorname{DWT}\left(\boldsymbol{X}^{i}, \boldsymbol{X}^{j}\right)\right) S(i,j)=exp(DWT(Xi,Xj))

    [1] D. J. Berndt and J. Clifford, “Using dynamic time warping to find patterns in time series.” in KDD workshop, vol. 10, no. 16. Seattle, WA, 1994, pp. 359–370.

  • 步骤2: 随后利用预先设定的阈值 或 取top-k个站点对建立虚拟边

  • 步骤3: 对相似性得分矩阵 S ( i , j ) S(i, j) S(i,j)row normalization W s ( i , j ) = S ( i , j ) ∑ k = 1 N S ( i , k ) ⋅ L ( E s , i , k ) W_{s}(i, j)=\frac{S(i, j)}{\sum_{k=1}^{N} S(i, k) \cdot L\left(\mathcal{E}_{s}, i, k\right)} Ws(i,j)=k=1NS(i,k)L(Es,i,k)S(i,j),其中 如果点 i / k i/k i/k 相连 L ( E s , i , k ) = 1 L\left(\mathcal{E}_{s}, i, k\right)=1 L(Es,i,k)=1 ,反之 L ( E s , i , k ) L\left(\mathcal{E}_{s}, i, k\right) L(E

给定参考内容中未提及资源受限边缘设备使用共享内存进行多模型协作的相关内容。不过一般来说,资源受限边缘设备使用共享内存进行多模型协作具有重要意义。 资源受限边缘设备通常计算能力、存储容量和能源供应有限。共享内存是一种高效的数据通信方式,它允许不同的进程或模型直接访问同一块物理内存区域,避免了数据的复制,从而减少了数据传输的开销和时间延迟。 在多模型协作场景中,多个模型可能需要共享输入数据、中间结果或参数等信息。通过共享内存,这些模型可以快速地交换数据,提高协作效率。例如,一个图像识别系统可能包含目标检测模型和图像分类模型,它们可以通过共享内存共享图像数据,避免重复加载和处理,从而在资源受限的边缘设备上实现更高效的运行。 同时,使用共享内存也需要考虑一些问题,如内存管理、并发访问控制和数据一致性等。需要合理地分配和管理共享内存空间,确保不同模型之间的访问不会发生冲突,并且要保证数据的一致性和完整性。 以下是一个简单的Python示例,展示了如何使用`multiprocessing.shared_memory`模块在多进程间共享内存: ```python import multiprocessing import numpy as np def modify_shared_array(shm_name, shape, dtype): existing_shm = multiprocessing.shared_memory.SharedMemory(name=shm_name) arr = np.ndarray(shape, dtype=dtype, buffer=existing_shm.buf) arr[:] = [i * 2 for i in arr] existing_shm.close() if __name__ == "__main__": arr = np.array([1, 2, 3, 4, 5]) shm = multiprocessing.shared_memory.SharedMemory(create=True, size=arr.nbytes) shared_arr = np.ndarray(arr.shape, dtype=arr.dtype, buffer=shm.buf) shared_arr[:] = arr[:] p = multiprocessing.Process(target=modify_shared_array, args=(shm.name, arr.shape, arr.dtype)) p.start() p.join() print(shared_arr) shm.close() shm.unlink() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值