CN112163981A - 一种线路客流计算方法及系统 - Google Patents

一种线路客流计算方法及系统 Download PDF

Info

Publication number
CN112163981A
CN112163981A CN202010960755.1A CN202010960755A CN112163981A CN 112163981 A CN112163981 A CN 112163981A CN 202010960755 A CN202010960755 A CN 202010960755A CN 112163981 A CN112163981 A CN 112163981A
Authority
CN
China
Prior art keywords
passenger flow
data
node
station
historical
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202010960755.1A
Other languages
English (en)
Inventor
周桥
张蕾
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Traffic Control Technology TCT Co Ltd
Original Assignee
Traffic Control Technology TCT Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Traffic Control Technology TCT Co Ltd filed Critical Traffic Control Technology TCT Co Ltd
Priority to CN202010960755.1A priority Critical patent/CN112163981A/zh
Publication of CN112163981A publication Critical patent/CN112163981A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/40Business processes related to the transportation industry
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/29Geographical information databases

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Remote Sensing (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Economics (AREA)
  • Data Mining & Analysis (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Train Traffic Observation, Control, And Security (AREA)

Abstract

本发明实施例提供一种线路客流计算方法及系统,包括:获取地铁全网的历史客流数据;获取地铁全网的路网车站数据,构建地铁路网图;在所述地铁路网图中,分别获取每条历史客流数据从进站至出站的最短路径;将所有最短路径上的车站与目标线路上的车站进行匹配,并根据匹配结果实现对于目标线路的客流计算。本发明实施例通过路网车站数据构建地铁路网图,并基于搜索算法确定目标线路的实际路径;再通过快速读取、解析路网进站和出站的历史客流数据,获取每个车站结点的客流值;最后根据实际路径上各个车站结点的客流值,实现对目标线路客流的精确计算,为高峰客流或者低峰客流情况下的列车出行计划安排和数据可视化提供了数据支持。

Description

一种线路客流计算方法及系统
技术领域
本发明涉及轨道交通技术领域,尤其涉及一种线路客流计算方法及系统。
背景技术
路网进出站客流数据(OD数据)是指通过闸机入口和闸机出口记录的每一条旅客进出站数据,该数据中包含统计时间段,进站名称,出站名称和相对应的客流值。由于OD数据的数据量极大,例如:以15分钟为一个周期统计从早上6:00开始,到晚上24:00结束这一时间段内的客流值,则总共需要统计72个时间段的客流值,一天下来每个闸机所统计的OD数据值就在几百Mb左右,而整个地铁全网的历史客流数据则更加庞大。
一般通过闸机获取的路网OD数据,一般仅包括某一OD数据在某个时段的进站名和出站名,但是并不知道该客流是否在中途换乘以及换乘经过哪些路线,这是现有技术在求解目标线路客流的一个难点。由于不能有效的确定出客流的具体进出站内容,导致目前在进行线路客流计算时计算难度且计算精度差。
有鉴于此,亟需改进现有的计算方法,以提供一种高效、精确的线路客流计算途径。
发明内容
本发明实施例提供一种线路客流计算方法及系统,用以解决现有技术在对目标线路的客流量进行统计时,判断过于主观、仅能确定每条历史客流数据所对应的进站口和出站口信息而无法有效的确定客流具体线路的缺陷,从而导致判断条件单一、计算结果粗略的缺陷,实现合理、高效、精确的线路客流计算。
第一方面,本发明实施例提供一种线路客流计算方法,主要包括:获取地铁全网的历史客流数据;获取地铁全网的路网车站数据,构建地铁路网图;在地铁路网图中,分别获取每条所述历史客流数据从进站至出站的最短路径;将所有最短路径上的车站与目标线路上的车站进行匹配,并根据匹配结果实现对于目标线路的客流计算。
可选地,上述获取地铁全网的历史客流数据,主要包括:收集地铁全网各个闸机入口和闸机出口记录的历史客流数据,每条历史客流数据包括统计时间段、进站名称、出站名称以及客流值;基于内存映射文件的方法,以利用基础类库函数,将各个闸机入口和闸机出口记录的历史客流数据解析存储至键值对结构的容器中。
可选地,上述基于内存映射文件的方法,以利用基础类库函数,将各个闸机入口和闸机出口记录的历史客流数据解析存储至键值对结构的容器中,主要包括:获取历史客流数据的读取路径;定义历史客流数据的文件类型;创建历史客流数据的文件句柄;获取历史客流数据的文件大小;根据历史客流数据的文件类型、文件句柄、和文件大小,采用微软提供的基础类库函数,创建历史客流数据的文件映射;根据所有历史客流数据的文件映射,获取与地铁全网的历史客流数据相对应的映射视图文件;将所述文件视图文件存储至键值对结构的容器中。
可选地,上述获取地铁全网的路网车站数据,构建地铁路网图,主要包括:调取路网车站数据;根据路网车站数据获取每个车站的数据信息,数据信息包括车站名称、车站是否可换乘、可换乘的线路代码、换乘线路的名称;将每个车站的数据信息转换成一个结构体数据;基于类创建的方法,通过实例化对象将每个结构体数据作为地铁路网图的结点;基于邻接链表的数据结构方法,构建地铁路网图中各相邻结点之间的边信息;根据地铁路网图的结点和各相邻结点之间的边信息,构建地铁路网图。
可选地,上述在地铁路网图中,分别获取每条历史客流数据从进站至出站的最短路径,主要包括:在地铁路网图中,确定每条历史客流数据所对应的进站结点和出站结点;基于广度优先搜索算法对地铁路网图进行搜索处理,获取进站结点和出站结点之间的最短结点路径,作为历史客流数据从进站至出站的最短路径。
可选地,上述基于广度优先搜索算法对所述地铁路网图进行搜索处理,获取进站结点和出站结点之间的最短结点路径,主要包括:
将地铁路网图中的每个结点的所有相邻结点生成一个邻接矩阵,并赋予邻接矩阵一个相异索引编号,获取与地铁路网图相对应的被赋予不同索引编号的邻接矩阵集;基于广度优先搜索算法,以进站结点为根结点,以出站结点为终结点进行搜索,获取由根结点至终结点之间的所有结点路径;选取所有结点路径中的结点数最少的路径作为最短结点路径。
可选地,上述将所有最短路径上的车站与目标线路上的车站进行匹配,并根据匹配结果实现对于所述目标线路的客流计算,主要包括:获取目标线路的索引编号序列;若最短路径上的进站结点和出站结点的索引编号均在所述索引编号序列上,则将最短路径中对应的历史客流数据中的客流值加入至目标线路的总客流值中;若最短路径上的进站结点或出站结点中任一结点的索引编号在索引编号序列上,则获取位于索引编号序列上的所有结点,并将与位于索引编号序列上的所有结点对应的客流值加入至目标线路的总客流值中;若最短路径上的进站结点和出站结点的索引编号均不在索引编号序列上,则继续搜索下一条历史客流数据。
第二方面,本发明实施例还提供一种线路客流计算系统,包括数据获取单元、网图构建单元、路径确定单元和客流计算单元,其中:数据获取单元主要用于获取地铁全网的历史客流数据;网图构建单元主要用于获取地铁全网的路网车站数据,构建地铁路网图;路径确定单元主要用于通过最短路径求解算法,分别获取每条历史客流数据从进站至出站的最短路径;客流计算单元主要用于将所有最短路径上的车站与目标线路上的车站进行匹配,并根据匹配结果实现对于目标线路的客流计算。
第三方面,本发明实施例还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述线路客流计算方法的步骤。
第四方面,本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述线路客流计算方法的步骤。
本发明实施例提供的线路客流计算方法及系统,通过路网车站数据构建地铁路网图,并基于搜索算法确定目标线路的实际路径;再通过快速读取、解析路网进站和出站的历史客流数据,获取每个车站结点的客流值;最后根据实际路径上各个车站结点的客流值,实现对目标线路客流的精确计算,为高峰客流或者低峰客流情况下的列车出行计划安排和数据可视化提供了数据支持。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种线路客流计算方法的流程示意图;
图2是本发明实施例提供的另一种线路客流计算方法的流程构示意图;
图3是本发明实施例提供的一种历史客流数据读取流程示意图;
图4是本发明实施例提供的一种对字符数据进行解析的流程示意图;
图5本发明实施例提供的一种邻接矩阵集结构示意图;
图6为本发明实施例提供的一种基于广度优先搜索算法进行结点路径搜索的示意图;
图7为本发明实施例提供的一种线路客流计算系统的结构示意图;
图8是本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的一种线路客流计算方法的流程示意图,如图1所示,包括但不限于以下步骤:
步骤S1:获取地铁全网的历史客流数据;
步骤S2:获取地铁全网的路网车站数据,构建地铁路网图;
步骤S3:在所述地铁路网图中,分别获取每条历史客流数据从进站至出站的最短路径;
步骤S4:将所有所述最短路径上的车站与目标线路上的车站进行匹配,并根据匹配结果实现对于目标线路的客流计算。
具体地,步骤S1中所述的获取地铁全网的历史客流数据(OD数据),包括通过收集各个地铁站点处的闸机入口和闸机出口所记录每一条客流数据,并将所有的客流数据按照站点的不同进行汇总,构建由地铁全网历史客流数据组成的历史客流数据集。其中,每条历史客流数据可以包括统计时间、进站名称,出站名称以及对应的客流值等。
作为一种可选地实施例,可以15分钟为一个周期统计该时间段内的客流值,假设从早上6:00开始统计,到晚上24:00结束,则总共可以统计72个时间段的客流值。
进一步地,在步骤S2中,收集用于构建地铁路网图的基础数据,主要包括地铁全网的路网车站数据,例如:各个车站的名称、各个车站是否可换乘、各个车站可换乘的线路代码、各个车站可换乘线路的名称等。
由于每个车站的名称是唯一的,方便快速查找车站信息,作为可选地,可以将整个地铁路网中的每个车站用从0开始的整数索引依次进行表示,以方便用数组的方式进行保存和展示,并可以通过索引的方式快速获取到各个车站信息。
由于在步骤S1中通过收集闸机记录的客流信息,所获取的路网OD数据中,只给出了各条OD数据在某个时段的进站名和出站名,但是并不知道该OD数据是否在中途发生换乘以及换乘线路经过哪些站点,而给求解目标线路OD数据的造成困难。若能通过给定的进站和出站名,利用路径搜索算法快速规划应该出现的最短路径,则可以把每条OD数据的客流值分配到目标线路上经过的车站,以实现线路客流的精确计算。
图论(Graph Theory)是数学的一个分支,其以图为研究对象。图论中的图是由若干给定的点及连接两点的线所构成的图形,以利用图形描述事物之间的特定关系。具体地,用点代表事物,用连接两点的线表示相应两个事物间具有的关联关系。图论的应用非常广泛,比如本发明实施例解决的地图问题,“任意两个车站的最短路径”,最短路径中“哪条线路最快”都是需要解决的问题,还有比如网页信息中从一个网站页面跳转到另一个网站页面,网页就是结点,网页连接就是边,互联网就是整张图。图论中,分为有向图和无向图,无向图指通过两个顶点连接的边的集合,而无向图相比有向图中边是有方向,所以称有方向连接的边的集合为有向图。
关于地铁路网中线路最短路径的计算,抽象出来其实属于图论中的最短路径规划问题。作为可选地实施例,在本发明实施例中,可以把车站当成一个结点,车站与车站之间的关联关系(包括两者之间是否是相邻站点、能否换乘等)当成边,由于车站与车站之间是相互连通的,所以由地铁车站构建的地铁路网图则是一张连通的无向图。
进一步地,在步骤S3中,确定出每一个OD数据从进站点至出站点之间的最短路径,以弥补所闸机记录的客流信息中仅仅记载了进站点和出站点,而不能完整的记载每条OD数据的乘车路线的缺陷。
作为可选地实施例,在本发明实施例中可以利用图论中两点之间最短路径的求解方式,确定进站点至出站点之间的最短路径,以获取每条OD数据所流经的各个站点。例如,可以采用广度优先搜索算法求解任意两点最短路径实现客流分配,对此本发明实施例不作具体地限定。
进一步地,在步骤S4中,由于每一条OD数据的客流值仅对应在某个时段的进站和出站名,因此在获取到每条OD数据的进站点和出站点之间的最短路径之后,则可以规划出每条OD数据从进站到最后出站的完整路径。最后,将最短路径上经过的车站与需要计算的目标线路上的车站进行匹配,若最短线路上有在目标线路中出现的车站(记为目标车站),则把该条OD数据的客流值加入相对应的目标车站中,实现对目标线路上各个目标车站的客流计算。
本发明实施例提供的线路客流计算方法,通过路网车站数据构建地铁路网图,并基于搜索算法确定目标线路的实际路径;再通过快速读取、解析路网进站和出站的历史客流数据,获取每个车站结点的客流值;最后根据实际路径上各个车站结点的客流值,实现对目标线路客流的精确计算,为高峰客流或者低峰客流情况下的列车出行计划安排和数据可视化提供了数据支持。
基于上述实施例的内容,作为一种可选实施例,上述步骤S1中所述的获取地铁全网的历史客流数据,主要包括:收集地铁全网各个闸机入口和闸机出口记录的历史客流数据,每条历史客流数据包括统计时间段、进站名称、出站名称以及客流值;基于内存映射文件的方法,以利用基础类库函数,将各个闸机入口和闸机出口记录的历史客流数据解析存储至键值对结构的容器中。
表1为本发明实施例提供的一种全网部分客流数据列表,其中每行字段统计了数据统计的时段,进站名称,出站名称以及对应的客流值等,并记录了每条OD数据的客流值。由表1可以获知,由四个小时内记录将近190万条数据可以推测一天(18个小时)所记录的数据量将达到3420万条,故采取上述实施例中所述的方式进行OD数据采集时,在每个站点处一天的OD数据大小在几百Mb左右,如果采用普通的文件处理方法,如Win32 API的CreateFile(),WriteFile(),ReadFile()函数和MFC提供的CFile类等一行行的读取文件数据,将花费大量的时间(以天为计),这对于读取几百Mb,几百GB甚至几十GB的海量数据来说,显然速度效率低下,难以满足系统快速计算的要求。
表1 全网部分客流数据列表
Figure BDA0002680469650000081
Figure BDA0002680469650000091
有鉴于此,在本发明实施例中采用基于内存映射的方法,实现快速的数据读取,然后解析数据,且能够充分发挥内存映射文件解决多个进程间数据共享的优势。
内存映射文件是一种文件的操作方式,可以通过映射的方式建立进程地址与文件位置的一一对应的逻辑关系。由于在内存映射的过程中实际数据没有被拷贝且文件没有被载入内存,而仅是逻辑上放入了内存,因此,内存映射效率要比一般函数read()、write()的读写效率高很多。
在本发明实施例中基于内存映射的原理,利用基础类库函数,读取并存储各条OD数据,并可以自动识别所读文件的大小,主动分配所需空间,既不会改变源文件的大小,也节约了空间内存。
基于上述实施例,如图3所示,上述基于内存映射文件的方法,以利用基础类库函数,将各个闸机入口和闸机出口记录的历史客流数据解析存储至键值对结构的容器中,主要包括以下步骤:获取历史客流数据的读取路径;定义历史客流数据的文件类型;创建历史客流数据的文件句柄;获取历史客流数据的文件大小;根据历史客流数据的文件类型、文件句柄、和文件大小,采用微软提供的基础类库函数,创建历史客流数据的文件映射;根据所有历史客流数据的文件映射,获取与地铁全网的历史客流数据相对应的映射视图文件;将文件视图文件存储至键值对结构的容器中。
具体地,在本发明实施例中,可以采用了表2中微软提供的基础类库函数,使用图3的数据存储及读取流程(图3的左侧部分为操作流程步骤,图3的右侧为每个流程步骤所对应的程序语言),通过设定相关合理的文件参数,以读取表1所示的全网的OD数据,并将最后的读取结果存储在一个字符数组中。
表2 c++标准库内存映射函数部分列表
Figure BDA0002680469650000101
进一步地,可以利用图4所示的流程,对由全网的OD数据所构成的字符数组进行快速解析,形成“键”-“值”关系的数据结构存储在内存中,由于采用“键”-“值”关系的数据结构进行数据存储,对于提取“键”对应的值的时间复杂度是常数级别,可以实现快速获取客流值的目的,而不需要进行一行行的遍历求解,有效的提升了数据存储、读取的效率。其主要包括以下步骤:输入保存进出站客流的字符数组;定义并初始化存储键-值对的容器和相关字段;以进出站客流的字符数组中的换行符合逗号作为分隔符,提取键-值对的客流值和其他相关字段信息;保存以键-值存储的每条客流数据信息到容器中。
基于上述实施例的内容,作为一种可选实施例,在步骤S2中所述的获取地铁全网的路网车站数据,构建地铁路网图,可以包括但不限于以下步骤:
调取路网车站数据;根据路网车站数据获取每个车站的数据信息,所述数据信息包括车站名称、车站是否可换乘、可换乘的线路代码、换乘线路的名称;将每个车站的数据信息转换成一个结构体数据;基于类创建的方法,通过实例化对象将每个结构体数据作为地铁路网图的结点;基于邻接链表的数据结构方法,构建地铁路网图中各相邻结点之间的边信息;根据地铁路网图的结点和各相邻结点之间的边信息,构建地铁路网图。
具体地,在本发明实施例中,收集了构建地铁网的基础数据类别,包括车站信息,如数据信息包括车站名称、车站是否可换乘、可换乘的线路代码、换乘线路的名称等。
在关系数据库中,索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。索引提供指向存储在表的指定列的数据值的指针,然后根据指定的排序顺序对这些指针排序。数据库使用索引以找到特定值,然后顺指针找到包含该值的行。这样可以使对应于表的SQL语句执行得更快,可快速访问数据库表中的特定信息。在本发明实施例中,由于每个车站的名称是唯一的,但为方便快速查找车站信息,最终将路网每个车站用从0开始的整数索引表示,方便用数组保存,并通过索引便可以快速获取到该车站信息。
具体地,每个车站的信息如表3所示,是一个结构体数据,所用程序中采用结构体信息保存车站信息,将每个车站当作结构体的一个实例,通过实例化对象便可以将所有车站信息保存到实例当中,所获取的每个车站结点的结构体数据如表4所示。
表3 车站信息数据表
Figure BDA0002680469650000121
表4 车站结点结构体数据
Figure BDA0002680469650000122
进一步地,边的信息如表5所示,主要包括边所在的线路名称、线路所在代码、边的两个端点车站名称及边的权重值等。专利中使用类的思想,将整张地铁图当作一个类,类的构造如表6所示,通过表6构造的类,使用类中的函数可以将所有车站结点信息和边的信息保存在vector容器中,从而使用类的构造函数创建地铁类的实例对象,方便调用例如最短路径求解函数。
其中,向量(Vector)容器是一个封装了动态大小数组的顺序容器(SequenceContainer)。跟任意其它类型容器一样,它能够存放各种类型的对象。可以简单的认为,向量是一个能够存放任意类型的动态数组。
表5 构造相邻车站连接边的信息数据表
Figure BDA0002680469650000131
表6 地铁路网图类
Figure BDA0002680469650000132
基于上述实施例的内容,作为一种可选实施例,步骤S3中所述的在地铁路网图中,分别获取每条历史客流数据从进站至出站的最短路径,主要包括:在地铁路网图中,确定每条历史客流数据所对应的进站结点和出站结点;基于广度优先搜索算法对地铁路网图进行搜索处理,获取进站结点和出站结点之间的最短结点路径,作为历史客流数据从进站至出站的最短路径。
进一步地,上述基于广度优先搜索算法对地铁路网图进行搜索处理,获取进站结点和出站结点之间的最短结点路径,主要包括:将地铁路网图中的每个结点的所有相邻结点生成一个邻接矩阵,并赋予邻接矩阵一个相异索引编号,获取与地铁路网图相对应的被赋予不同索引编号的邻接矩阵集;基于广度优先搜索算法,以进站结点为根结点,以出站结点为终结点进行搜索,获取由根结点至终结点之间的所有结点路径;选取所有结点路径中的结点数最少的路径作为最短结点路径。
广度优先搜索算法又称宽度优先搜索算法(Breadth First Search,BFS),属于一种盲目搜寻法,目的是系统地展开并检查网图中的所有结点,以找寻结果,其并不考虑结果的可能位置,彻底地搜索整张图,直到找到结果为止。
在网图中求解两点最短路径中,有众多成熟算法,比如利用深度优先算法,可以找到任意两点间最长的路径,但其解决不了本发明实施中最短路径求解的问题,故本发明实施例综合考虑现有的搜索算法的优劣性,选用广度优先搜索算法来求解任意两点最短路径实现客流分配。
具体地,以图5所示为例,在构造的地铁路网图中的任意结点车站的相邻结点被保存在了邻接矩阵中,使用邻接矩阵保存相邻结点信息,能为后续添加车站结点预留足够的空间,并且利用索引可以在常数级别的时间内迅速查找相邻结点信息,达到了效率和空间最优利用。
进一步地,图6为本发明实施例提供的一种广度优先搜索算法的简化流程示意图,假设0、1、2、3、4、5结点构成一张简易地铁网,其中0结点的相邻结点存储在索引为0的邻接矩阵adjNode[0]中,1结点相邻的结点存放在索引为1的邻接矩阵adjNode[1]中,以此类推,图6中的所有结点都可以被存储在邻接矩阵adjNode[6]中,邻接矩阵adjNod[]实质上是存储了路网中的边的信息,并通过表6中所示的类的构造函数便可以生成图6中简易地铁网的实例。
图6中使用广度优先搜索算法,首先以0结点(可以代表进站)为根结点,以5结点为(代表出站)为终结点,依次从根结点出发,将其排除,则标记为灰色;然后通过邻接矩阵adjNode[0]可以找到1、2、3结点,如果1、2、3结点没有被标记,则按照顺序将其依次均标记为灰色;然后再按照顺序从1结点开始,再次查找1结点的相邻结点,发现0、2结点已被标记结点,则标记未被标记的4、5结点。依找上述规律,到达终结点5,停止搜索,可以得到的由结点0至结点5之间的所有的路径。进一步地,根据路径的额长短,可以确定路径为0→1→5为最短路径,则最短路径求解完毕。
本发明实施例提供的线路客流计算方法,采用基于内存映射文件的操作方式,建立进程地址与文件位置的一种一一对应的纯逻辑关系,快速读取百兆级别的客流OD数据,并采用c++的vector容器,按照逐行顺序读取的方式实现数据的快速解析与保存;在构建地铁图框架过程中,首先制作了地铁网中每个车站的数据信息,然后用类的思想保存车站节点信息,使用邻接链表的数据结构保存路网边的信息,从而构建地铁路网图;最后,基于构建的地铁路网图,使用图论中的广度优先搜索算法快速查找每条OD数据的实际路径,进而达到精分配线路客流的目的,有效的提高了线路客流计算的效率和精度。
基于上述实施例的内容,作为一种可选实施例,步骤S4中所述的将所有最短路径上的车站与目标线路上的车站进行匹配,并根据匹配结果实现对于所述目标线路的客流计算,可以包括:
获取目标线路的索引编号序列;若最短路径上的进站结点和出站结点的索引编号均在所述索引编号序列上,则将最短路径中对应的历史客流数据中的客流值加入至目标线路的总客流值中;若最短路径上的进站结点或出站结点中任一结点的索引编号在所述索引编号序列上,则获取位于索引编号序列上的所有结点,并将与位于索引编号序列上的所有结点对应的客流值加入至所述目标线路的总客流值中;若最短路径上的进站结点和出站结点的索引编号均不在所述索引编号序列上,则继续搜索下一条历史客流数据。
在上述实施例的基础上,若所求目标线路车站的索引为0→1→2→10→11→12→13→14,假设已知一条数据的进站索引为0,出站索引为5,对应客流值为10,则可以按照以下步骤将该数据客流分配到目标线路车站上:
如果进站索引和出站索引都在目标线路上,则可以直接将最短路径中对应的历史客流数据中的客流值加入至加到对应线路车站。
进一步地,如果进站索引在目标线路上、出站索引不在目标线路或者出站索引在目标线路上、进站索引不在目标线路,则通过上述实施例中所述的方法,先计算出进站结点至出站结点之间的最短路径,然后按路径规划算法求解路径,通过先确定在目标线路上的车站,在将客流值加到相配的车站中,即将与位于索引编号序列上的所有结点对应的客流值加入至目标线路的总客流值中。
例如图6所示的进站索引为0,出站索引为5,是符合该情形,则将客流值10加到目标线路的0→1中。
进一步地,若进站和出站索引都不在该线路上,则说明该条OD数据不经过目标线路,则不做任何处理,继续对下一条OD数据进行分析,直至完成对所有的历史OD数据的分析,获取累加后的目标线路的客流量。
图7为本发明实施例提供的一种线路客流计算系统,如图7所示,包括但不限于数据获取单元1、网图构建单元2、路径确定单元3和客流计算单元4,其中:
数据获取单元1主要用于获取地铁全网的历史客流数据;网图构建单元2主要用于获取地铁全网的路网车站数据,构建地铁路网图;路径确定单元3主要用于通过最短路径求解算法,分别获取每条历史客流数据从进站至出站的最短路径;客流计算单元4用于将所有最短路径上的车站与目标线路上的车站进行匹配,并根据匹配结果实现对于目标线路的客流计算。
具体地,本发明实施例提供的线路客流计算系统在运行时可以执行图1或图2所示的线路客流计算方法,包括:
利用数据获取单元1收集地铁全网的历史客流数据,利用网图构建单元2路网车站数据,并确定所需要被进行线路客流计算的目标线路。
进一步地,可以基于内存映射文件的方法,以利用基础类库函数,将各个闸机入口和闸机出口记录的历史客流数据解析存储至键值对结构的容器中,以实现数据的存储和读取。
进一步地,可以通过索引的方式快速获取到各个车站数据信息,并将车站信息存储在预先构建的路网类图中。其中地铁路网图的构建方法主要包括:将每个车站的数据信息转换成一个结构体数据;基于类创建的方法,通过实例化对象将每个结构体数据作为地铁路网图的结点;基于邻接链表的数据结构方法,构建地铁路网图中各相邻结点之间的边信息;根据地铁路网图的结点和各相邻结点之间的边信息,构建地铁路网图。
进一步地,路径确定单元3在地铁路网图中,利用广度优先搜索算法寻找每条历史客流数据从进站至出站的最短路径。
最后,客流计算单元4针对每条OD数据,将路径确定单元3所获取的最短路径中的车站结点与目标线路上的车站结点进行匹配,给满足匹配的车站分配该条OD数据的客流值。按上述方法,对所有的历史客流数据依次进行读取、解析,以实现对目标线路客流的计算。
本发明实施例提供的线路客流计算系统,通过路网车站数据构建地铁路网图,并基于搜索算法确定目标线路的实际路径;再通过快速读取、解析路网进站和出站的历史客流数据,获取每个车站结点的客流值;最后根据实际路径上各个车站结点的客流值,实现对目标线路客流的精确计算,为高峰客流或者低峰客流情况下的列车出行计划安排和数据可视化提供了数据支持。
需要说明的是,本发明实施例提供的线路客流计算系统,在具体执行时,可以基于上述任一实施例所述的线路客流计算方法来实现,对此本实施例不作赘述。
图8示例了一种电子设备的实体结构示意图,如图8所示,该电子设备可以包括:处理器(processor)810、通信接口(communication interface)820、存储器(memory)830和通信总线(bus)840,其中,处理器810,通信接口820,存储器830通过通信总线840完成相互间的通信。处理器810可以调用存储器830中的逻辑指令,以执行线路客流计算方法,主要包括:获取地铁全网的历史客流数据;获取地铁全网的路网车站数据,构建地铁路网图;在地铁路网图中,分别获取每条所述历史客流数据从进站至出站的最短路径;将所有最短路径上的车站与目标线路上的车站进行匹配,并根据匹配结果实现对于目标线路的客流计算。
此外,上述的存储器830中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
此外,上述的存储器830中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的线路客流计算方法,主要包括:获取地铁全网的历史客流数据;获取地铁全网的路网车站数据,构建地铁路网图;在地铁路网图中,分别获取每条所述历史客流数据从进站至出站的最短路径;将所有最短路径上的车站与目标线路上的车站进行匹配,并根据匹配结果实现对于目标线路的客流计算。
又一方面,本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的以执行线路客流计算方法,主要包括:获取地铁全网的历史客流数据;获取地铁全网的路网车站数据,构建地铁路网图;在地铁路网图中,分别获取每条所述历史客流数据从进站至出站的最短路径;将所有最短路径上的车站与目标线路上的车站进行匹配,并根据匹配结果实现对于目标线路的客流计算。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种线路客流计算方法,其特征在于,包括:
获取地铁全网的历史客流数据;
获取地铁全网的路网车站数据,构建地铁路网图;
在所述地铁路网图中,分别获取每条所述历史客流数据从进站至出站的最短路径;
将所有所述最短路径上的车站与目标线路上的车站进行匹配,并根据匹配结果实现对于所述目标线路的客流计算。
2.根据权利要求1所述的线路客流计算方法,其特征在于,所述获取地铁全网的历史客流数据,包括:
收集地铁全网各个闸机入口和闸机出口记录的历史客流数据,每条所述历史客流数据包括统计时间段、进站名称、出站名称以及客流值;
基于内存映射文件的方法,以利用基础类库函数,将各个闸机入口和闸机出口记录的历史客流数据解析存储至键值对结构的容器中。
3.根据权利要求2所述的线路客流计算方法,其特征在于,所述基于内存映射文件的方法,以利用基础类库函数,将各个闸机入口和闸机出口记录的历史客流数据解析存储至键值对结构的容器中,包括:
获取所述历史客流数据的读取路径;
定义所述历史客流数据的文件类型;
创建所述历史客流数据的文件句柄;
获取所述历史客流数据的文件大小;
根据所述历史客流数据的文件类型、文件句柄、和文件大小,采用微软提供的基础类库函数,创建所述历史客流数据的文件映射;
根据所有所述历史客流数据的文件映射,获取与所述地铁全网的历史客流数据相对应的映射视图文件;
将所述文件视图文件存储至键值对结构的容器中。
4.根据权利要求1所述的线路客流计算方法,其特征在于,所述获取地铁全网的路网车站数据,构建地铁路网图,包括:
调取所述路网车站数据;
根据所述路网车站数据获取每个车站的数据信息,所述数据信息包括车站名称、车站是否可换乘、可换乘的线路代码、换乘线路的名称;
将每个所述车站的数据信息转换成一个结构体数据;
基于类创建的方法,通过实例化对象将每个所述结构体数据作为所述地铁路网图的结点;
基于邻接链表的数据结构方法,构建所述地铁路网图中各相邻结点之间的边信息;
根据所述地铁路网图的结点和所述各相邻结点之间的边信息,构建所述地铁路网图。
5.根据权利要求4所述的线路客流计算方法,其特征在于,所述在所述地铁路网图中,分别获取每条所述历史客流数据从进站至出站的最短路径,包括:
在所述地铁路网图中,确定每条所述历史客流数据所对应的进站结点和出站结点;
基于广度优先搜索算法对所述地铁路网图进行搜索处理,获取所述进站结点和出站结点之间的最短结点路径,作为所述历史客流数据从进站至出站的最短路径。
6.根据权利要求5所述的线路客流计算方法,其特征在于,所述基于广度优先搜索算法对所述地铁路网图进行搜索处理,获取所述进站结点和出站结点之间的最短结点路径,包括:
将所述地铁路网图中的每个结点的所有相邻结点生成一个邻接矩阵,并赋予所述邻接矩阵一个相异索引编号,获取与所述地铁路网图相对应的被赋予不同索引编号的邻接矩阵集;
基于所述广度优先搜索算法,以所述进站结点为根结点,以所述出站结点为终结点进行搜索,获取由所述根结点至所述终结点之间的所有结点路径;
选取所述所有结点路径中的结点数最少的路径作为所述最短结点路径。
7.根据权利要求6所述的线路客流计算方法,其特征在于,所述将所有所述最短路径上的车站与目标线路上的车站进行匹配,并根据匹配结果实现对于所述目标线路的客流计算,包括:
获取所述目标线路的索引编号序列;
若所述最短路径上的进站结点和出站结点的索引编号均在所述索引编号序列上,则将所述最短路径中对应的历史客流数据中的客流值加入至所述目标线路的总客流值中;
若所述最短路径上的进站结点或出站结点中任一结点的索引编号在所述索引编号序列上,则获取位于所述索引编号序列上的所有结点,并将与所述位于所述索引编号序列上的所有结点对应的客流值加入至所述目标线路的总客流值中;
若所述最短路径上的进站结点和出站结点的索引编号均不在所述索引编号序列上,则继续搜索下一条历史客流数据。
8.一种线路客流计算系统,其特征在于,包括:
数据获取单元,用于获取地铁全网的历史客流数据;
网图构建单元,用于获取地铁全网的路网车站数据,构建地铁路网图;
路径确定单元,用于通过最短路径求解算法,分别获取每条所述历史客流数据从进站至出站的最短路径;
客流计算单元,用于将所有所述最短路径上的车站与目标线路上的车站进行匹配,并根据匹配结果实现对于所述目标线路的客流计算。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任一项所述线路客流计算方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至7任一项所述线路客流计算方法的步骤。
CN202010960755.1A 2020-09-14 2020-09-14 一种线路客流计算方法及系统 Pending CN112163981A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010960755.1A CN112163981A (zh) 2020-09-14 2020-09-14 一种线路客流计算方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010960755.1A CN112163981A (zh) 2020-09-14 2020-09-14 一种线路客流计算方法及系统

Publications (1)

Publication Number Publication Date
CN112163981A true CN112163981A (zh) 2021-01-01

Family

ID=73857982

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010960755.1A Pending CN112163981A (zh) 2020-09-14 2020-09-14 一种线路客流计算方法及系统

Country Status (1)

Country Link
CN (1) CN112163981A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112686466A (zh) * 2021-01-12 2021-04-20 北京交通发展研究院 地铁乘客的路径确认方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102306243A (zh) * 2011-07-27 2012-01-04 高新现代智能系统股份有限公司 在轨道交通中的换乘客流清分方法
CN102700576A (zh) * 2012-05-18 2012-10-03 中国铁道科学研究院电子计算技术研究所 城市轨道交通线网客流监测方法
CN104217129A (zh) * 2014-09-22 2014-12-17 北京交通大学 一种城轨路网客流估算方法
CN108082224A (zh) * 2017-12-14 2018-05-29 兰州交通大学 基于afc时变客流的城市轨道交通列车运行图编制方法
US20200143566A1 (en) * 2018-11-06 2020-05-07 International Business Machines Corporation Passenger travel route inferencing in a subway system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102306243A (zh) * 2011-07-27 2012-01-04 高新现代智能系统股份有限公司 在轨道交通中的换乘客流清分方法
CN102700576A (zh) * 2012-05-18 2012-10-03 中国铁道科学研究院电子计算技术研究所 城市轨道交通线网客流监测方法
CN104217129A (zh) * 2014-09-22 2014-12-17 北京交通大学 一种城轨路网客流估算方法
CN108082224A (zh) * 2017-12-14 2018-05-29 兰州交通大学 基于afc时变客流的城市轨道交通列车运行图编制方法
US20200143566A1 (en) * 2018-11-06 2020-05-07 International Business Machines Corporation Passenger travel route inferencing in a subway system

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
DAVID A. SOLOMON等著: "Windows 2000内部揭秘", 31 October 2001, 机械工业出版社, pages: 245 - 248 *
张家超: "数据结构(C语言版)", 中国电力出版社, pages: 122 - 127 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112686466A (zh) * 2021-01-12 2021-04-20 北京交通发展研究院 地铁乘客的路径确认方法及装置
CN112686466B (zh) * 2021-01-12 2024-01-05 北京交通发展研究院 地铁乘客的路径确认方法及装置

Similar Documents

Publication Publication Date Title
CN107657267B (zh) 产品潜在用户挖掘方法及装置
CN110292775B (zh) 获取差异数据的方法及装置
CN103902653B (zh) 一种构建数据仓库表血缘关系图的方法和装置
CN111782644A (zh) 一种基于区块链技术的科研数据管理控制系统及方法
CN106598999A (zh) 一种计算文本主题归属度的方法及装置
CN109635089B (zh) 一种基于语义网络的文学作品新颖度评价系统和方法
CN107767253A (zh) 一种税务信息管理平台、方法及系统
CN114817575B (zh) 基于扩展模型的大规模电力事理图谱处理方法
CN104574159B (zh) 数据存储、查询方法和装置
CN112163981A (zh) 一种线路客流计算方法及系统
CN112199570A (zh) 基于网络爬虫的房地产信息可视化分析系统和方法
CN109299443B (zh) 一种基于最小顶点覆盖的新闻文本去重方法
CN110060472A (zh) 道路交通事件定位方法、系统、可读存储介质和设备
CN117171650A (zh) 基于网络爬虫技术的文献数据处理方法、系统及介质
CN108830302B (zh) 一种图像分类方法、训练方法、分类预测方法及相关装置
Antunes et al. Analysing public transport data through the use of big data tecnhologies for urban mobility
CN115577190A (zh) 一种游客行为数据提取方法
CN112416922B (zh) 一种群体关联数据挖掘方法、装置、设备及存储介质
CN115599985A (zh) 目标客户识别方法和系统、电子设备及可读存储介质
Bulut et al. Optimizing bus lines using genetic algorithm for public transportation
CN111523034A (zh) 一种应用程序的处理方法、装置、设备及介质
CN114065934A (zh) 一种环境影响评价领域语义知识库构建方法及系统
Cervantes et al. A new approach to detect communities in multi-weighted co-authorship networks
CN112990246B (zh) 孤立树模型建立的方法和装置
CN110196793A (zh) 针对插件数据库的日志分析方法及设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination