评分模型在路网通勤习惯分析中的应用——提出问题(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个步骤,可以得到特定车辆某一次的可能行驶轨迹,但是仅仅一次或者有限的几次行驶轨迹是无法确认车辆驾驶者的驾驶习惯的,需要一个较长时间段的多个轨迹作为分析样本,分析后才能得出驾驶习惯。

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MS SQL Server 实战 排查多列之间的值是否重复

目录 需求 范例运行环境 数据样本设计 功能实现 上传EXCEL文件到数据库 SQL语句 小结 需求 在日常的应用中,排查列重复记录是经常遇到的一个问题,但某些需求下,需要我们排查一组列之间是否有重复值的情况。比如我们有一组题库数据&am…

抖去推碰一碰系统技术源码/open SDK转发技术开发

抖去推碰一碰系统技术源码/open SDK转发技术开发 碰一碰智能系统#碰碰卡系统#碰一碰系统#碰一碰系统技术源头开发 碰碰卡智能营销系统开发是一种集成了人工智能和NFC技术的工具,碰碰卡智能营销系统通过整合数据分析、客户关系管理、自动化营销活动、多渠道整合和个…

WEB攻防-通用漏洞-文件上传-js验证-MIME验证-user.ini-语言特征

目录 定义 1.前端验证 2.MIME验证 3.htaccess文件和.user. ini 4.对内容进行了过滤,做了内容检测 5.[ ]符号过滤 6.内容检测php [] {} ; 7.()也被过滤了 8.反引号也被过滤 9.文件头检测 定义 文件上传漏洞是指攻击者上传了一个可执行文件(如木马…

未来网络技术的新征程:5G、物联网与边缘计算(10/10)

一、5G 网络:引领未来通信新潮流 (一)5G 网络的特点 高速率:5G 依托良好技术架构,提供更高的网络速度,峰值要求不低于 20Gb/s,下载速度最高达 10Gbps。相比 4G 网络,5G 的基站速度…

SuperMap iClient3D for Cesium等高线标注

kele 前言 在三维地形分析中,等高线分析是一种非常重要的分析方法,它能直观的表达出地形的高低起伏特征,在三维系统中受到广泛应用。在SuperMap iClient3D for Cesium中,等高线分析是前端GPU分析,能够分析并渲染出等高…

从 x86 到 ARM64:CPU 架构的进化与未来

在计算机发展的历史长河中,x86、x64 和 ARM64 这三大主流 CPU 架构各自书写了辉煌的篇章。它们不仅代表了技术的进步,更承载着无数创新者的梦想与努力。 x86:从 16 位到 32 位的辉煌之路 诞生与崛起 1978 年,英特尔(…

红魔电竞PadPro平板解BL+ROOT权限-KernelSU+LSPosed框架支持

红魔Padpro设备目前官方未开放解锁BL,也阉割了很多解锁BL指令,造成大家都不能自主玩机。此规则从红魔8开始,就一直延续下来,后续的机型大概率也是一样的情况。好在依旧有开发者进行适配研究,目前红魔PadPro平板&#x…

TCP Analysis Flags 之 TCP Out-Of-Order

前言 默认情况下,Wireshark 的 TCP 解析器会跟踪每个 TCP 会话的状态,并在检测到问题或潜在问题时提供额外的信息。在第一次打开捕获文件时,会对每个 TCP 数据包进行一次分析,数据包按照它们在数据包列表中出现的顺序进行处理。可…

<数据集>风力发电机损伤识别数据集<目标检测>

数据集下载链接 <数据集>风力发电机损伤识别数据集<目标检测>https://download.csdn.net/download/qq_53332949/90187097数据集格式:VOCYOLO格式 图片数量:2527张 标注数量(xml文件个数):252…

分布式版本管理工具——Git关联远程仓库(github+gitee)

Git远程仓库(Github)的基本使用 一、前言二、Git远程仓库介绍三、演示1. 关联github远程仓库2. 关联gitee(码云)远程仓库3. 重命名远程仓库名4. 移除远程仓库 四、结束语 一、前言 古之立大事者,不惟有超世之才&#x…

在 React 项目中安装和配置 Three.js

React 与 Three.js 的结合 :通过 React 管理组件化结构和应用逻辑,利用 Three.js 实现 3D 图形的渲染与交互。使用这种方法,我们可以在保持代码清晰和结构化的同时,实现令人惊叹的 3D 效果。 在本文中,我们将以一个简…

Lucene 漏洞历险记:修复损坏的索引异常

作者:来自 Elastic Benjamin Trent 有时,一行代码需要几天的时间才能写完。在这里,我们可以看到工程师在多日内调试代码以修复潜在的 Apache Lucene 索引损坏的痛苦。 做好准备 这篇博客与往常不同。它不是对新功能或教程的解释。这是关于花…

深度学习J6周 ResNeXt-50实战解析

🍨 本文为🔗365天深度学习训练营中的学习记录博客🍖 原作者:K同学啊 本周任务: 1.阅读ResNeXt论文,了解作者的构建思路 2.对比之前介绍的ResNet50V2、DenseNet算法 3.复现ResNeXt-50算法 一、模型结构…

对话 Project Astra 研究主管:打造通用 AI 助理,主动视频交互和全双工对话是未来重点

Project Astra 愿景之一:「系统不仅能在你说话时做出回应,还能在持续的过程中帮助你。」 近期,Google DeepMind 的 YouTube 频道采访了 Google DeepMind 研究主管格雷格韦恩 (Greg Wayne)。 格雷格韦恩的研究工作为 DeepMind 的诸多突破性成…

LunarVim安装

LunarVim以其丰富的功能和灵活的定制性,迅速在Nvim用户中流行开来。它不仅提供了一套完善的默认配置,还允许用户根据自己的需求进行深度定制。无论是自动补全、内置终端、文件浏览器,还是模糊查找、LSP支持、代码检测、格式化和调试&#xff…

高质量 Next.js 后台管理模板源码分享,开发者必备

高质量 Next.js后台管理模板源码分享,开发者必备 Taplox 是一个基于 Bootstrap 5 和 Next.js 构建的现代化后台管理模板和 UI 组件库。它不仅设计精美,还提供了一整套易用的工具,适合各种 Web 应用、管理系统和仪表盘项目。无论你是初学者还是…

开发场景中Java 集合的最佳选择

在 Java 开发中,集合类是处理数据的核心工具。合理选择集合,不仅可以提高代码效率,还能让代码更简洁。本篇文章将重点探讨 List、Set 和 Map 的适用场景及优缺点,帮助你在实际开发中找到最佳解决方案。 一、List:有序存…

Java包装类型的缓存

Java 基本数据类型的包装类型的大部分都用到了缓存机制来提升性能。 Byte,Short,Integer,Long 这 4 种包装类默认创建了数值 [-128,127] 的相应类型的缓存数据,Character 创建了数值在 [0,127] 范围的缓存数据,Boolean 直接返回 True or Fal…

工程师 - MinGW

MinGW Minimalist GNU for Windows,前身为mingw32,是一个免费开源的软件开发环境,从2010年开始项目停止并不再使用。后续提供MinGW-w64。 MinGW包括: - 移植到Windows上的GNU编译器集(GCC),包括C、C、ADA和…

EasyExcel(读取操作和填充操作)

文章目录 1.准备Read.xlsx(具有两个sheet)2.读取第一个sheet中的数据1.模板2.方法3.结果 3.读取所有sheet中的数据1.模板2.方法3.结果 EasyExcel填充1.简单填充1.准备 Fill01.xlsx2.无模版3.方法4.结果 2.列表填充1.准备 Fill02.xlsx2.模板3.方法4.结果 …