用户中心

资讯 > 嵌入式系统

基于数据可视化处理的嵌入式智能查询算法

来源:计算机控制2006.12.20阅读 2888

       据在许多研究领域都可采用图形来表示,图形和图形理论为人工智能决策提供了有效的可视化工具、体系化准则和相关技术。本文以交通线路自动调整系统为例,说明在嵌入式智能查询算法中如何利用图形对数据进行可视化处理的方法来避免“盲目”操作,从而提高算法的决策效率。

       图形由节点和边线组成,节点通常画作圆形,而边线则是节点之间的连线。在软件中,节点通常采用将边线作为指针或数组下标的数据结构加以实现。对图形进行遍历查询的算法有多种,常用的算法包括深度优先查询和宽度优先查询算法。深度优先和宽度优先都属于“盲目”查询算法,深度优先算法沿着一组边线从根节点一直查询到最远端的叶节点,再查询下一个叶节点;宽度优先算法则首先查询一个边线距离以内的所有节点,再查询两个边线距离以内的节点,以此类推。

       上述算法之所以具有盲目性,是因为算法在查询适当

解决方案的过程中并未指示任何有效信息控制工程网版权所有,而只是盲目地遵循遍历算法www.cechina.cn,甚至有可能在找到解决方案之前需要遍历每一个节点,因而效率比较低。本文介绍的基于数据可视化处理的嵌入式智能查询算法以车辆行驶线路自动调整系统为例来说明解决上述问题的思路。

       车辆导航

       在设计一个遍历整个公路段的网络系统中,假定存在一个自动垃圾收集站系统、运动摄像机或自动交通线路调整系统。图1显示了旧金山的部分城市交通图。 首先,需要创建代表上述数据的网络图CONTROL ENGINEERING China版权所有,以确定将哪些单元作为节点。如果其他标志不甚明显,那么道路交叉口就可选择为节点。随着这些节点的插入,就完成了网络图的一部分,不过目前得到的只是城市交通图的无目标静态表示。

       下一步是添加系统进行智能决策所需的额外信息。如果系统的目标是帮助车辆选择最佳的路径而从一个交叉口驶向另一交叉口,很自然地就会想到为那些连接交叉口的公路段分配权值。在最简单的情形中,所有的道路都不是单行道,并且具有相同的速度限制和车道数目。即便这些条件不能完全反映真实的道路状况,一旦构建好网络图和权值模型,就能很容易扩展到这些真实环境中去。

       对交通图中的边线赋以权值有助于系统找到最佳的路径。在某种程度上,这些权值可以任意分配www.cechina.cn,这里假定权值表征平均车流密度。基于特定时段或局域条件的动态权值也是可行的,并不影响以下分析。

       边线的权值表示了每小时穿过道路的平均车流量,这些统计数据并不基于任何实际的数据,但在分析中相当有效。如果车辆必须从Scott和Jackson 交叉口(节点 5)行驶到Fillmore和Vallejo 交叉口(节点17),采用最小车流量判据CONTROL ENGINEERING China版权所有,得到的查询算法应能得到总权值最小的路径。

       我们很容易就能在网络图中画出结果,但仍然希望能借助计算机解决问题。表征图形的两种最常用方法是邻接矩阵(adjacency matrix)和邻接表(adjacency list)。邻接矩阵是静态的多维阵列,矩阵中的元素表示一个节点到另一节点的权值。图2显示了示例网络中包含节点1至节点6之间边线权值的部分邻接矩阵。节点1和节点6之间的边线权值位于最右角(对应点位于左下角)。图2中36个节点的公路网络的整个邻接矩阵可包含36个元素。

       邻接表通常采用链表实现,图3显示了网络中节点1至节点6的邻接表。图中并未标出边线权值,但可以很方便地存储在数据结构中。

       对邻接矩阵和邻接表进行选择时,可以考虑如下因素:

       1. 如果网络图密集或较小,则用邻接矩阵表示。邻接矩阵的优势在于可以直接取得权值,而无须进行指针管理和链表遍历。

       2. 如果网络图稀疏或很大,那么邻接表可以减少内存浪费。

    &

版权声明:版权归控制工程网所有,转载请注明出处!

频道推荐

关于我们

控制工程网 & CONTROL ENGINEERING China 全球工业控制、自动化和仪器仪表领域的先锋媒体

CE全球

联系我们

商务及广告合作
任小姐(北京)                 夏小姐(上海)
电话:010-82053688      电话:18616877918
rendongxue@cechina.cn      xiashuxian@cechina.cn
新闻投稿:王小姐

关注我们的微信

关于我们 | 网站地图 | 联系我们
© 2003-2020    经营许可编号:京ICP证120335号
公安机关备案号:110102002318  服务热线:010-82053688