本文讲解关于warshall求传递闭包举例和离散数学传递闭包warshall算法的题,希望能帮助到大家。


如果说过去是算法基于芯片优化的时代,那么英特尔收购Mobileye则预示着一个新时代的到来算法与芯片共同进化的时代。今天我们重点了解智能驾驶发展带动的“算法”细分技术领域的创新和进步。

决策算法成为竞争焦点

从技术角度来看,自动驾驶分为感知与定位、规划与决策、执行控制三个部分。随着ADAS系统的广泛部署和技术的长期发展,可以说感知技术不再是主要瓶颈;控制是OEM和一级供应商非常擅长的领域。毋庸讳言,自动驾驶技术实现的真正门槛显然落到了决策层面。

事实是,区分一个系统是ADAS还是自动驾驶,主要看该系统是否有决策部分。无论谷歌还是特斯拉,其核心竞争力基本体现在决策算法上。

传统车企的研发基于功能安全的设计方法论,渗透到开发过程的每一个环节,在近百年的时间里将汽车的安全性提升到了极高的水平。如今,顶级公司已经可以保证汽车发动机可以使用一百万公里。然而,面对汹涌而来的机器学习热潮,整车厂突然发现自己严重缺乏技术储备,这已经成为制约传统汽车厂商发展自动驾驶的最大短板。因此,不少整车厂选择或收购或合作,试图尽快弥补自身的短板。

来自传统汽车工厂的约翰克拉夫西克(JohnKrafcik)显然知道这一点。在他出任Waymo首席执行官后,谷歌改变了之前模糊的商业策略,明确表示将为汽车制造商提供解决方案。这实际上是把自己定位为Tier1角色。在这个解决方案中,外包硬件不能成为谷歌的竞争障碍。最有价值的是一整套经过验证的软件,尤其是决策算法。可以想象,谷歌将向业界授予软件许可,就像之前对Android所做的那样。

如何解决智能车的路径规划题

路径规划是智能车辆导航与控制的基础。从轨迹决策角度考虑,可分为局部路径规划和全局路径规划。

全局路径规划的任务是根据全局地图数据库信息,规划一条从起点到目标点的无碰撞、可通行的路径。目前正在研究准结构化道路环境下各种约束下的路径规划技术、自然地形环境下的路径规划技术以及重规划技术。由于全局路径规划生成的路径只能是从起点到目标点的粗略路径,因此没有考虑路径的方向、宽度、曲率、道路交叉口和路障等。而受自身状态不确定性的影响,会遇到各种不可预知的情况。因此,智能车辆在行驶过程中,必须根据局部环境信息和自身状态信息,规划出一条理想的、不发生碰撞的局部路径,这就是局部路径规划。常用的路径规划方法有空间搜索法、层次法、动作行为法、势场法、网格法、模糊逻辑法和神经网络法等。

汽车驾驶任务可以分为三层,如下图所示,每一层执行不同的任务,包括上层路径规划、中层驾驶行为规划、下层轨迹规划。车辆路径规划题还包括路网模型、路径规划算法和交通信息智能预测等几个关键点。下面简单讨论一下决策层的路径规划算法。

车辆自动驾驶任务执行示意图

车辆路径规划算法

根据车辆导航系统的研究历史,车辆路径算法可分为静态路径算法和动态路径算法。静态路径规划是根据自然地理信息、交通规则等条件寻找最短路线。静态路径规划算法已经日趋成熟且相对简单,但对于实际交通状况来说,其应用意义并不大。动态路线规划是在静态路线规划的基础上,结合实时路况信息,对预先规划的行驶路线进行及时调整,直至到达目的地,最终获得路线。下面介绍几种常见的车辆路径规划算法。

1Dijkstra算法

Dijkstra算法是最短路径算法的经典算法之一,由EWDijkstra于1959年提出。该算法适用于计算道路权重非负的最短路径题。它可以给出图中从某个节点到所有其他节点的最短路径。善于思维清晰,搜索准确。相比之下,由于输入是大的稀疏矩阵,因此具有耗时长、占用空间大的缺点。其算法复杂度为On,n为节点数。

2Lee算法

Lee算法首先用于印刷电路和集成电路的路径追踪。与Dijkstra算法相比,它更适合数据随时变化的道路路径规划,并且其运行成本比Dijkstra算法低。只要路径存在,算法就能找到优化路径。Lee算法的复杂度难以表达,需要大量的空间进行多层路径规划。

3弗洛伊德算法

Floyd算法由Floyd于1962年提出,是一种计算图中任意两点之间最短距离的算法。它可以正确处理有向图或负权重的最短路径题,也用于计算有向图的传递闭包。Floyd-Warshall算法的时间复杂度为On3,空间复杂度为On2,n为节点数。它与在每个节点上执行Dijkstra算法具有相同的时间复杂度,但实际运行效果优于Dijkstra算法。

4启发式搜索算法——A算法

启发式搜索算法有很多种,如局部最优搜索法、优先搜索法、A算法等。其中A算法最先由Hart、Nilsson、Raphael等人提出。该算法通过引入评价函数,加快了搜索速度,提高了局部最优算法的搜索精度,因此得到广泛应用,是目前最流行的最短路径算法。A算法比Dijkstra算法占用的存储空间更少。其时间复杂度为Obd,b为节点的平均出度,d为从起点到终点的最短路径的搜索深度。

5双向搜索算法

双向搜索算法是Dantzig提出的基本思想,Nicholson正式提出了该算法。该算法从起点开始搜索最短路径,并从终点开始向前搜索。最好的结果是两者在中间点汇聚,这样可以缩短搜索时间。但如果终止规则不当,算法很可能会使搜索时间加倍,即两个方向都搜索到最后才终止。

6蚁群算法

蚁群算法由意大利学者MDorigo于1991年提出,是一种随机搜索算法。Rod,且易于与其他方法结合,蚁群算法的复杂度优于Dijkstra算法。

此外,还有实时启发式搜索算法、基于分层道路网络、神经网络、遗传算法和模糊理论的搜索算法等。由于实际需求不同,算法的要求和侧重点也会有所不同,因此对于上述许多算法还有各种改进算法。大多数算法在应用于解决车辆路径规划题时都存在一定的缺陷,因此目前的研究重点是利用多种算法融合来构建混合算法。

主流决策算法的优缺点齐头并进

从上一部分的内容不难发现,决策算法面临的最大挑战是如何实现自动驾驶所需的极高的安全性和可靠性。自动驾驶决策的结果将输出给控制器。根据ISO26262现有的功能安全法规,这又将要求决策系统也满足ASIL-D标准。目前,ISO自动驾驶功能安全标准仍在制定中,可能会考虑采用新标准,但功能安全的基本原则仍然有效。

由于自动驾驶要处理的场景极其复杂,需要考虑所有已知和未知的极端情况,并适应各个国家和地区的交通状况。目前识别和决策算法部分有很多技术路线,其中最重要的就是深度学习加强化学习,这也是AlphaGo采用的方法。然而,这些算法路线并不是万能的,每种算法都有其明显的优点和缺点。

端到端深度学习算法存在隐患

深度学习适合大数据时代。只要需要大量的训练,就更容易调整可用的算法,因此专门用于处理复杂的场景。然而深度学习受到质疑,因为它的算法是一个端到端的决策系统,计算过程无法解释,即没有透明度,也无法调试。

基于规则的专家系统不灵活

专家系统基于独立的知识库,允许条件IF生成相应的动作或结论THEN系统;它还可以使用AND、OR、NOT运算来复合输入和输出。但专家系统的缺点是一是采访“专家”建模时间太长,成本太高;其次,知识库可能存在错误,多个规则可能相互矛盾,从而造成系统脆弱。因此,该方法不能单独用于构建自动驾驶的决策算法。

因此,我们需要在自动驾驶领域引入新的决策机制。自动驾驶决策技术路线的一大趋势是从关联推理转向因果推理。

理性决策是必然趋势

20世纪80年代初,以JudeaPearl为代表的学术界出现了一个新的想法从基于规则的系统到贝叶斯网络。贝叶斯网络是一种概率推理系统。贝叶斯网络在数据处理、事件发生概率、事件可信度分析等方面具有良好的分类效果。它有两个决定性的优势模块化和透明性。

JudeaPearl,图灵获得者、贝叶斯之父

模块化的优势非常重要。我们可以将深度学习系统集成为一个子模块,而专家系统可以是另一个子模块,这意味着我们有多个冗余的路径选择,而这种冗余构成了贝叶斯网络的子节点,会有效地强化输出结果的可靠性并避免一些低级错误。

透明度是贝叶斯网络的另一个主要优势。对于自动驾驶来说,这一点尤其关键,因为你可以分析整个决策过程并了解哪个部分出了题。可以说,贝叶斯网络是理性决策的优秀实现,适合设计整个决策的顶层框架。

因果推理的另一个典型例子是基于强化学习的决策框架,它将决策题视为决策系统与其环境之间的博弈。这个系统需要做出持续的决策,就像驾驶汽车一样。优化的是长期的总回报,而不是眼前的回报。这有点像巴菲特的价值投资。优化的目标不是明天的收入,而是明年或十年后的长期总收入。

谷歌使用这样的框架来下围棋并取得了革命性的成功。自动驾驶的场景也非常适合应用这样的决策系统。例如,构建价值网络,评估当前驾驶环境风险,评估当前时间到未来时间的整体风险;然后利用策略网络输出车辆的控制决策,选择最优的行驶路径和动态输出。

同时,我们还可以根据模拟路况构建模拟环境,利用增强学习进行虚拟运算,获得最优决策模型,并生成大量模拟数据,这对于道路的成熟度至关重要。决策算法。可以说,向因果推理决策模型的转变是自动驾驶技术成熟的一大标志。

概括

在训练和测试自动驾驶汽车决策能力的过程中,收集的数据大部分是正常路况下的驾驶数据,极端情况极为罕见。深度学习加强化学习的算法只能无限逼近来处理所有场景,而贝叶斯网络的因果推理逻辑可以在一定程度上处理未知的极端情况。决策层面不同的技术路线也各有优缺点。深度学习、增强学习、专家系统、贝叶斯网络等多种方法的融合将是下一步的主流解决方案。


本文对于warshall求传递闭包举例和离散数学传递闭包warshall算法的话题就到这里就结束了,如果对你有所帮助,请关注和收藏本站。


发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。