评分模型在路网通勤习惯分析中的应用——提出问题(1)

1、问题的由来、目标和意义

最近一段时间和公司其它业务部门讨论时,发现一个有趣的交通路网问题,车辆从S点行驶到V点共用时40分钟,这段时间内路网中的卡口摄像头识别到了车辆通过的信息。如下图所示:
在这里插入图片描述
设计师需要通过这些有限的路网数据,分析出当前车辆最可能的行驶路径,并且基于一段时间(1个月、2个月甚至3个月)内某车辆多个行驶路径样本,分析后得到车辆A的通勤习惯数据。能够支持解决这个问题的基础数据是有限的,它们包括:

  • 相对静态的数据:地图交通网数据(没有结构化,需研发团队自行结构化)、道路级别数据、卡口位置数据等

  • 相对动态的数据:从外部得到的周期更新的交通网拥堵、卡口摄像数据(最关键的数据)、交通事故数据等

解决这个问题,在业务层面还需要注意以下几个关键点:

1、数据的采集主要通过设置在主道上的卡口摄像头,或者设置在路口的卡口摄像头完成。两者的区别主要在于,前者只能提供车辆车牌信息和行驶方向信息,而后者由于是安装在路口,所以不止可以提供车牌信息,还能提供车辆在路口可能的转向信息。

2、由于技术问题、采光问题、清晰度问题,卡口摄像头做不到100%正确识别车辆车牌信息,也就是说如果卡口摄像头在一段时间内没有拍摄到某个车辆的车牌信息,也不能代表这辆车在这段时间内一定没有行驶过这段道路。

3、根据车辆某一天最可能的行驶轨迹情况,是不能得到车辆一段时间的通勤习惯的,需要多个分析样本,再利用回归分析的方式,才能得出车辆在一段时间内的通勤习惯。

车辆可能的行驶路径信息、通勤习惯信息至少能够为城市的智慧交通领域提供以下业务支持:

  • **优化交通流量‌:**通过分析通勤习惯数据,交通部门可以识别交通高峰时段和瓶颈路段,从而采取措施进行改善,如调整交通信号灯、增加公交线路或建设新的交通基础设施,以优化交通流量和提高道路利用效率。

  • 提升公共交通系统效率‌:公共交通运营商可以利用通勤习惯数据来优化公交线路和时间表,提高公共交通的准点率和便捷性。例如,通过分析通勤者的出发时间和到达时间,可以调整公交和地铁的发车频率和运营时间,以满足乘客的需求‌。

  • 改善城市规划‌:城市规划者可以基于通勤习惯数据进行更合理的城市布局和基础设施建设。例如,通过分析通勤路线和交通状况,可以确定哪些区域需要更多的公共交通设施或道路改善,以减轻交通拥堵和提高居民的生活质量‌。

  • 提高通勤者生活质量‌:通过减少通勤时间和改善通勤体验,可以显著提升通勤者的生活质量和工作效率。例如,通过分析通勤者的出行习惯,可以提供个性化的出行建议和路线规划,减少通勤时间和疲劳‌。

所以通勤习惯分析属于智慧交通业务中的基础分析,其分析的结果可以用于支撑智慧交通业务的上层能力。实际上通勤习惯分析属于OD(Origin-Destination,起止点)分析中的一种具体形式,OD分析主要通过收集和分析数据,识别出行起点和终点之间的车辆流动情况。在交通规划中,OD分析可以帮助了解交通流量、识别高峰期和瓶颈区,优化交通网络设计和管理。此外,OD分析也广泛应用于物流、零售等领域,通过分析货物流动和顾客行为,提高资源配置和运营效率‌。

2、解决问题需要具备的知识结构

2.1、OD分析可能的解决方案剖析

在这里插入图片描述
上图将整个问题可能的解决方案剖析成三个部分,第一个部分主要是拍照数据的采集和数据清洗。这个阶段要解决的主要问题是,不同型号、不同通讯方式的卡扣摄像头,如何汇聚数据并初步检测出错误数据。例如一些较新型号的卡口摄像头自带5G通讯模块,可以直接连接到数据采集系统/数据集中平台,通过MQTT等标准协议传输数据。有的卡口摄像头虽然不具备5G通讯模块,但是可以统一接入到IoT网关或者集中管控终端上,再由IoT网关或者终端完成数据传输。空间路网数据亦是采用类似的思路进行数据采集。

这些原始数据都将在数据采集系统/物联数据集中平台进行归集,后者显然需要兼容各种数据传输方式,并完成初步的数据清洗操作。从本文描述的需要解决的问题来说,这些原始数据主要就是各个交通卡口的车牌数据、时间数据、车辆行驶方向数据,等等。显然数据采集系统并不负责完成OD轨迹实时分析,也并不是本文讨论的重点。(如果需要详细了解这部分内容,可以参考《软件设计不是CRUD(21):在流式数据处理系统中进行业务抽象落地——需求分析》等文章)

基础数据准备完毕后,会在湖仓一体化的数据存储平台进行存储,以便支持后续的数据分析过程。数据分析的关键过程在流式分析平台上完成,也就是说讨论如何分析得到更匹配真实情况的OD轨迹,甚至如何基于多份OD轨迹样本分析得到单台车辆在一个较长时间段内的通勤习惯,就是讨论在流式分析平台上对数据分析的详细设计。这是解决问题的关键设计部分,也是本文(和后续几篇文章)的重点内容。

整个问题可能的解决方案,还有第三个结构部分,就是基于已分析数据向外提供数据应用能力的平台。数据应用平台至少可以基于轨迹数据、出行习惯数据,以及自身AI分析后得到的其它扩充数据,向上层业务系统/第三方系统提供诸如城市路网规划、拥堵预测与缓解、高峰管制优化、路口信号优化等多种多样的业务支持。虽然这也不是本文讨论的重点,但读者可以明确知道OD分析在智慧交通应用中的意义和重要程度。

2.2、知识准备

本文不讨论技术选型本身,技术选型仅是表象,不同技术经历、技术背景的工程师对于技术选型都有自己的理解,在选型要点和细节上都会有所区别。所以读者进需要知晓上图中涉及的中间件即可:

  • Kafka:Kafka作为在数据分析场景下,在多个中间件之间实时传输数据的消息队列,相信大家不会陌生。在解决本问题的技术架构中,Kafka负责多个任务,包括作为摄像头向数据采集平台/物联数据集中平台传输卡口监控数据的一种渠道、作为数据采集和清洗后,向湖仓一体化的存储方案传输数据的一种渠道。

  • Flink:Flink是一款开源流式数据处理框架,主要用于实时数据流的处理和分析。Flink的核心是用Java和Scala编写的分布式数据流引擎,旨在实现数据流上的有状态计算‌。Flink大量应用在对数据分析有较强实时性要求、较大数据量要求的分析场景。除了本身提供的流式分析特性外,Flink也支持数据的批处理,这也是为什么上图中所示的技术方案中,类似通勤习惯这样的周期性批处理分析,我们也放到了Flink中。

  • StarRocks:StarRocks内部通过MPP计算框架完成SQL的具体执行工作。MPP框架本身能够充分的利用多节点的计算能力,整个查询并行执行,从而实现很好的交互式分析体验。 StarRocks作为一款湖仓一体化的数据存储和计算平台,可以支持与Hive,MySQL,Elastic serach存储方案无缝构建外表。

本文的重点是介绍启发式搜索在交通通勤领域的应用,更具体的说,是解决启发式搜索如何有效降低遍历搜索算法的计算成本,提高问题的解决效率。所以以下“图”结构中的基础算法知识,需要读者掌握(本文不会讲解这些基础知识,会直接认为读者已掌握):

  • 加权有向图:‌加权有向图‌是一种图论中的数据结构,它是在有向图的基础上,每条边都赋予了一个权重值。这个权重值,一般和应用场景有关。在交通应用场景中每个顶点代表两个或者多个路段的交汇点(可能是十字路口、丁字路口、匝道、隧道出入口、高速出入口等),每条边代表一个独立的路段,每条边越高的权重,代表出于主观或客观的原因车辆行驶时对路段越高的选择度。

  • 图的最小搜索树:在一个加权有向图中,如果存在一棵各边权重和最小的生成树,那么这棵树就被称为最小生成树。生成树是原图的一个子集,包含图中所有顶点,但仅有n-1条边(n为顶点数),这些边构成了一棵无环的树。

  • 两个顶点的所有路径:既是通过一种算法,找到图结构中两个顶点间所有的联通路径。这种算法一般是某种遍历算法,因为只有了解了图中每个顶点的具体联通情况,才能找出所有联通路径,这就导致要找到两个顶点所有路径的算法时间复杂度一般会比较高——O(N2)

  • 两个顶点的加权最短路径:在加权有向图中,从顶点s到顶点t的最短路径是所有从s到t的路径中权重最小的那条路径。

  • 遍历搜索:遍历搜索,也称为暴力搜索,是一种简单但全面的搜索策略。它不考虑任何智能或优化,只是逐个访问数据结构中的每个节点,直到找到目标值或遍历完所有节点。这种搜索策略适用于没有任何特殊性质的数据结构,如普通的树或图。在遍历搜索中,常见的两种方法是深度优先搜索(DFS)和广度优先搜索(BFS)。

  • 启发式搜索:是一种更智能、更高效的搜索策略。它使用问题相关业务知识来指导搜索过程,以提高搜索效率。具体到图的交通应用场景中,启发式搜索考虑的就是交通常识、驾驶习惯等因素。这种策略在现实业务场景和深度学习中更为适用,常见于最优解、可能性等问题的处理。

3、问题概要分析

3.1、可能性问题与最优解问题的区别

有的读者会疑问,本文开头提出的问题和目前导航服务厂商提供的多途径点规划功能类似,为什么不直接使用地图厂商提供的相关服务,而要作为一个基础问题自己解决呢?这里暂时不分析业务、安全等层面的考虑,单从问题本身的性质来说,这两个问题就存在较大区别:

多途经点规划和可能的OD轨迹分析,两个问题的研究场景不一样。前者是在交通行为还没有发生的情况,在满足多个途径点位的要求下,寻找一个最优解;后者是在交通行为已经发生的情况下,基于交通网的各种历史状态和经过的点位,推导出多种可能性作为分析样本。再基于一段较长时间后,对足够多的样本进行多次回归等方式,找到可能性中的最可能得情况。前者属于单纯的最优解问题,后者属于可能性问题。

可能性问题:可能性问题关注的是某个事件或情况发生的概率或存在的程度。这通常涉及到对不确定性的评估和预测。很明显通过有限的数据在交通路网上还原点位A到点位B可能的路径,就属于可能性问题。可能性问题得到的解并不是最优解,而是根据目前现状后得到最有可能的情况。

最优解问题:最优解是指在问题或情境中能找到的最佳或最理想的解决方案。这个定义涵盖了在一定条件下,没有任何其他解能比这个解更优越,即达到了问题解决的极限状态。

3.2、对问题进行分析

推测可能的行驶轨迹,并最终得出驾驶习惯,可以通过以下步骤,结合流处理过程和批处理过程进行问题的解决:
在这里插入图片描述

  1. 对交通地图进行结构化处理

    地图的数据结构本质上是一种加权有向图,且图中存在环状结构。要解决地图上的问题,首先需要将地图进行结构化。实际工作中,这个步骤可以由技术团队自行完成——描述成二维矩阵或者二维表(邻接表),也可以借助市场上成熟的中间件产品,例如PostgreSQL with PostGIS 、Neo4j、Cassandra等数据库都对地理空间数据有专门的存储格式和能力支持。作为后续的技术方案演练,本文将自行构建邻接表来进行空间数据的结构化描述。

  2. 利用具有通勤业务特点的DFS/BFS算法,求A点到B点权值较大的多条可能路径

    这是非常关键的步骤,也是本文讨论的技术核心之一。由于上文已经描述了可能性问题和最优解问题的区别,所以后续内容不再解释为什么核心算法不是诸如Dijkstra这样的最优解算法,而重点放在讨论如何结合启发式信息对常规DFS/BFS算法进行优化,以寻求各种可能的结果。

    在这里插入图片描述
    (导航软件中,这条红色的目标方向辅助线,到底有什么作用?仅仅是为了识别方向吗?)

    另外,在寻找可能路径的过程中,由于路径权重涉及多个领域的基础数据,且这些基础数据并没有一个规范的评分方式,所以确认路径的过程中,就可能使用熵权法对每条路径进行确权,并且需要保证这些评分维度,可以进行扩展。

  3. 利用模糊综合评价法,对路径进行打分,分数最高者为最可能路径

    由上一步骤得到的可能路径如果只有一条,那么就不需要进行本步骤。如果存在多条可能路径,则需要利用综合评分法,找到其中评分最高的一条路径,作为最可能路径。综合评分涉及的评分维度至少包括实际时间和线路预计时间的差异,因为不同的业务场景可能存在的差异,参与综合评分的维度允许进行扩展。

  4. 通过以上分析方式,积累一定规模的路径样本(例如1个月、2个月),通过线性回归方式,求得车辆A在一定时间周期内的通勤习惯。

    通过以上3个步骤,可以得到特定车辆某一次的可能行驶轨迹,但是仅仅一次或者有限的几次行驶轨迹是无法确认车辆驾驶者的驾驶习惯的,需要一个较长时间段的多个轨迹作为分析样本,分析后才能得出驾驶习惯。

下面,我们就对以上解决问题的步骤逐一进行详细讨论。讨论将基于以下的示意性路网结构(片段)进行:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/945002.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

机器学习DAY7: 特征工程和特征选择(数据预处理)(完)

本文通过特征提取、特征转换、特征选择三个过程介绍数据预处理方法,特征提取将原始数据转换为适合建模的特征,特征转换将数据进行变换以提高算法的准确性,特征选择用来删除无用的特征。 知识点 特征提取特征转换特征选择 本次实验的一些示…

【Unity3D】Jobs、Burst并行计算裁剪Texture3D物体

版本:Unity2019.4.0f1 PackageManager下载Burst插件(1.2.3版本) 利用如下代码,生成一个Texture3D资源,它只能脚本生成,是一个32*32*32的立方体,导出路径记得改下,不然报错。 using UnityEditor; using Uni…

紫光同创-盘古200pro+开发板

本原创文章由深圳市小眼睛科技有限公司创作,版权归本公司所有,如需转载,需授权并注明出处(www.meyesemi.com) 一、开发系统介绍 开发系统概述 MES2L676-200HP 开发板采用紫光同创 logos2 系列 FPGA,型号:…

【后端】LNMP环境搭建

长期更新各种好文,建议关注收藏! 本文近期更新完毕。 LNMPlinuxnginxmysqlphp 需要的资源 linux服务器 web服务软件nginx 对应的语言编译器代码文件 数据库mysql安装 tar.gz包或者命令行安装 进入root: sodu 或su mkdir path/{server,soft}…

VSCode设置Playwright教程

1.安装扩展 打开VS Code,在扩展—>搜索"Playwright Test for VSCode",点击安装 按快捷键CommandShiftP,输入install playwright,点击安装Playwright 安装成功会有如下提示 2.调试脚本 打开tests/example.spec.ts文…

RK3566和Robo_C的EMC防护设计细节

USB部分的防护细节: ROBO C的USB接口: PF级别的电容滤波: TVS电容(TVS Capacitor):用于与TVS二极管配合,保护电路免受瞬态电压冲击。电容一般较小,通常为几十皮法(pF&am…

MicroDiffusion——采用新的掩码方法和改进的 Transformer 架构,实现了低预算的扩散模型

介绍 论文地址:https://arxiv.org/abs/2407.15811 现代图像生成模型擅长创建自然、高质量的内容,每年生成的图像超过十亿幅。然而,从头开始训练这些模型极其昂贵和耗时。文本到图像(T2I)扩散模型降低了部分计算成本&a…

使用 Three.js 创建一个 3D 人形机器人仿真系统

引言 在这篇文章中,我们将探讨如何使用 Three.js 创建一个简单但有趣的 3D 人形机器人仿真系统。这个机器人可以通过键盘控制进行行走和转向,并具有基本的动画效果。 技术栈 HTML5Three.jsJavaScript 实现步骤 1. 基础设置 首先,我们需要…

【c++高阶DS】最小生成树

🔥个人主页:Quitecoder 🔥专栏:c笔记仓 目录 01.最小生成树Kruskal算法Prim算法 01.最小生成树 连通图中的每一棵生成树,都是原图的一个极大无环子图,即:从其中删去任何一条边,生成…

自学记录鸿蒙API 13:实现人脸比对Core Vision Face Comparator

完成了文本识别和人脸检测的项目后,我发现人脸比对是一个更有趣的一个小技术玩意儿。我决定整一整,也就是对HarmonyOS Next最新版本API 13中的Core Vision Face Comparator API的学习,这项技术能够对人脸进行高精度比对,并给出相似…

2024/12/29 黄冈师范学院计算机学院网络工程《路由期末复习作业一》

一、选择题 1.某公司为其一些远程小站点预留了网段 172.29.100.0/26,每一个站点有10个IP设备接到网络,下面那个VLSM掩码能够为该需求提供最小数量的主机数目 ( ) A./27 B./28 C./29 D./30 -首先审题我们需要搞清楚站点与网…

redis cluster集群

华子目录 什么是redis集群redis cluster的体系架构什么是数据sharding?什么是hash tag集群中删除或新增节点,数据如何迁移?redis集群如何使用gossip通信?定义meet信息ping消息pong消息fail消息(不是用gossip协议实现的&#xff0…

PrimeVue菜单模块(Menu),看api的重要性

以下是对PrimeVue菜单模块(Menu)的API属性的中文详解: 一、整体概述 PrimeVue的菜单(Menu)是一个支持动态和静态定位的导航/命令组件,其API通过定义一些辅助的属性(props)、事件等&…

STM32中断详解

STM32中断详解 NVIC 中断系统中断向量表相关寄存器中断优先级中断配置 外部中断实验EXTI框图外部中断/事件线映射中断步骤初始化代码实现 定时器中断通用定时器相关功能标号1:时钟源标号 2:控制器标号 3:时基单元 代码实现 NVIC 中断系统 STM…

从零开始开发纯血鸿蒙应用之逻辑封装

从零开始开发纯血鸿蒙应用 一、前言二、逻辑封装的原则三、实现 FileUtil1、统一的存放位置2、文件的增删改查2.1、文件创建与文件保存2.2、文件读取2.2.1、读取内部文件2.2.2、读取外部文件 3、文件删除 四、总结 一、前言 应用的动态,借助 UI 响应完成&#xff0…

《机器学习》——线性回归模型

文章目录 线性回归模型简介一元线性回归模型多元线性回归模型误差项分析一元线性模型实例完整代码 多元线性模型实例完整代码 线性回归模型简介 线性回归是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。 相关关系&…

【深度学习环境】NVIDIA Driver、Cuda和Pytorch(centos9机器,要用到显示器)

文章目录 一 、Anaconda install二、 NIVIDIA driver install三、 Cuda install四、Pytorch install 一 、Anaconda install Step 1 Go to the official website: https://www.anaconda.com/download Input your email and submit. Step 2 Select your version, and click i…

在HTML中使用Vue如何使用嵌套循环把集合中的对象集合中的对象元素取出来(我的意思是集合中还有一个集合那种)

在 Vue.js 中处理嵌套集合(即集合中的对象包含另一个集合)时,使用多重 v-for 指令来遍历这些层次结构。每个 v-for 指令可以用于迭代一个特定级别的数据集,并且可以在模板中嵌套多个 v-for 来访问更深层次的数据。 例如&#xff…

ip归属地是什么意思?ip归属地是实时定位吗

在数字化时代,IP地址作为网络设备的唯一标识符,不仅关乎设备间的通信,还涉及到用户的网络身份与位置信息。其中,IP归属地作为IP地址的地理位置信息,备受用户关注。本文将详细解析IP归属地的含义,并探讨其是…

基于BP训练深度学习模型(用于回归)以及验证误差值

用原生Python训练了一个BP网络,适合没有pytorch等环境的电脑,并用训练的模型对原始数据进行了预测,拿来估测比较误差值了,可以直接拿去用(需根据个人数据来调训练次数、学习效率),代码在文章末。…