【无标题】

仅以此纪念被骗帮人写论文------

本科毕业设计(论文)

基于强化学习的路径寻优
设计(论文)英文题目

学 院:
专 业:
学生姓名:
学 号:
指导教师:

2022年4月

学士论文版权使用授权书
本学士论文作者完全了解***大学有关保留、使用学士论文的规定。特授权***大学可以将学士论文的全部或部分内容编入有关数据库进行检索,提供阅览服务,并采用影印、缩印或扫描等复制手段保存、汇编以供查阅和借阅。

(保密的学位论文在解密后适用本授权说明)

学位论文作者签名: 指导教师签名:

签字日期: 年 月 日 签字日期: 年 月 日

中文摘要
摘要:摘要:随着信息化科技的日趋完善,人工智能科技的进展也将逾渐飞速。新一代人工智能技术已经成为中国现代化社会和信息化发展社会的一项关键考察指标,其科技的发展成熟度及其应用程度在各方面引起了各个产业研究者的普遍重视,与移动机器人,自动驾驶等新科技的融合方向也在逾渐火热,科研学者们都如雨后春笋般纷至沓来。其中,强化机器学习技术作为一种半监督并且很擅长处理序列性决策问题的一种新机器学习方式,并且拥有自身较强的更新迭代能力,因此非常适合于当今移动机器人,自动驾驶车等在处理各种情况的时候决策需要。本课题主要考虑在未知环境的条件下的路径规划问题,并探究基于强化机器学习的路径规划方式。
首先,根据所要研究的问题,编制多节点网络环境,根据智能体所要完成的规划目标制定相应的奖励函数,观测状态以及动作行为。然后在利用Q-learning强化学习算法求解最短路径,最后通过Matlab仿真实验验证算法是否有效,我们的实验表明,Q-learning可以很好地解决这种在未知环境下的多节点网络路径规划问题。

关键词:强化学习;路径规划;Q-learning

ABSTRACT
ABSTRACT: With the increasing maturity of information technology, the development of artificial intelligence technology is also more and more rapid. As an important reference indicator of modern society and information society, artificial intelligence technology has received extensive attention from scholars in various fields in terms of its technology development maturity and application degree, and its integration with mobile robots, autonomous driving and other technologies has become increasingly popular. , researchers have sprung up like mushrooms after a rain. Among them, reinforcement learning, as a semi-supervised machine learning method that is very good at dealing with sequence decision-making problems, and with its strong update and iterative capabilities, is very suitable for today’s mobile robots, autonomous driving and other decision-making needs in various situations. This topic considers the path planning problem under the condition of unknown environment, and studies the path planning method based on reinforcement learning.
First, according to the problem to be studied, a multi-node network environment is prepared, and the corresponding reward function is formulated according to the planning goal to be completed by the agent, and the observed state and action behavior. Then we use the Q-learning reinforcement learning algorithm to solve the shortest path, and finally verify the effectiveness of the algorithm through Matlab simulation experiments. Our experiments show that Q-learning can well solve this multi-node network path planning problem in an unknown environment.

KEYWORDS:reinforcement learning, path planning, Q-learning

目 录
中文摘要 I
ABSTRACT II
目 录 III
1 绪论 1
1.1 课题背景及研究的目的和意义 1
1.2 相关理论的发展概况 1
1.2.1 强化学习研究发展及现状 1
1.2.2 路径规划研究发展及现状 3
1.2.3 研究现状简析 4
1.3 本文研究的主要内容 4
2 背景知识 5
3 基于强化学习的路径规划 6
3.1 问题描述 6
3.2 Q-LEARNING算法 7
3.3 仿真结果分析 8
4 结论 10
参考文献 11
致 谢 13
附 录 14

1 绪论
1.1 课题背景及研究的目的和意义
在车辆编队等问题中,使用路径规划为车队选择最优路径可以减少直接导致燃油消耗增加的交通拥堵[1]。路径规划就是在特定的网络中,遵从一些指定的评价标准(如最短或最快等)[2],寻找一条从起始点到目的地的路径,这是降低油耗的重要途径。另外,路径跟随控制器的目标是生成和执行航向角,使恒速车辆能够以最小的交叉轨迹误差和没有时间限制的情况下遵循预定义的路径。有关解决海上车辆路径跟踪问题的文献丰富多样。与直线相比,曲线路径跟随提出了额外的挑战,最明显的挑战是车辆跟随路径时(即使是恒定的)干扰的时变效应。在以前的工作中,一个经过充分研究的框架是在采用线性/非线性控制理论中的方法设计合适的运动学(即引导)和动态(即控制)定律以实现控制目标之前,利用代表船舶动力学和运动学的模型。
引导和控制系统通常被视为级联系统,引导是扰动系统,车辆控制是扰动系统。与引导相比,车辆控制要慢得多,因为它涉及稳定动态。级联结构有助于简化稳定性分析,并且在过去已被广泛使用,例如参见 [3-5]。制导系统通常涉及视线 (LOS) 制导定律(参见 [6, 7]),它可以扩展以考虑外部干扰并优化运动学水平的性能 [8-12]。
强化学习 (RL),也称为动态规划的逼近算法,是人工智能 (AI) 社区为在系统和环境不确定性下达到最佳性能而开发的理论 [13-15]。与最优控制理论相反,强化学习基于评估性而非指导性反馈,并以不同的形式出现,其中可能包括或不包括对环境或系统的部分了解。该过程通常涉及手动设计奖励函数,该函数确定获得奖励的好行为以及获得惩罚的不良行为。然后分配RL算法以找到以最佳方式解决控制目标的策略(一系列控制动作)。
课题研究主要以智能体在未知环境的探索学习为研究背景,主要解决智能体在未知多节点多分支网络情形下的路径规划问题,提升智能体自身自主性。智能体自住路径规划技术的一般定义,即是智能体根据自身所处环境的观测和察觉,根据自身的策略规划出一条代价最低(比如快速且安全)的运作路程,进而快速有效地找到最优目标和完成指定任务[16]。目前,智能设备大都借助于调用多个传感器共同配合监测和传输数据,一定程度上已经具备能够在掌握绝大部分影响决策因素的条件下克服躲避障碍物、选择最优路径等问题的能力。但是,在实际情形中很难及时地掌握几乎所有影响决策的因素,智能体在执行一系列决策的时候或多或少的会面临各种不确定因素导致决策不佳。考虑到智能体在不确定环境下传感等设备往往不具备及时有效地克服困难以及解决难题的能力,因此,无法在未知环境中独立完成路径规划任务。在很多传感器都无法被检测到/检测无效时的极端高危环境条件中,仍然会要求各种机械装置制造商和现场操作者的协调和配合工作以确保顺利地完成任务。但由于在此操作过程中,往往会由于机械操作员本身没有意识对该机械设备的所身处的环境的感同身受而造成了错误的操作判断错误或操作决断延迟。所以,怎样进一步增强智能体的自主动学习性能、提高使它能在各种未知复杂环境条件下生存的自主探索的能力,是当前一项有意义和重要意义的课题领域。
而强化学习随着智能体打败围棋冠军选手也逐渐成为人工智能的重要研究方向,强化学习在求解序列问题或者马尔科夫问题方面具有突出表现。强化学习以智能体所能察觉到的状态/视野作为输入,通过不断观察以期望达到适应环境的能力。它研究的一个主要的思想内容是如何通过人智体三者不停地进行与外界环境之间的信息互动、试错的过程,通评价性信息的反馈性信息来进行决策过程的优化。这同时也是在大自然中人学习或向动物们学习知识的一条基本的路径之一[17]。特别的是在未来大数据时代背景下,强化机器学习技术可以有效支持智能机器能够在某些特定的未知的环境条件下能够进行某种特定的程度上的高度智能化操作和自主化。

强化学习作为一种非监督且自身更新能力较强的机器学习方法,非常符合智能体自主对未知多节点多分支网络进行学习,并进行最优路径规划的应用场景,如电力系统故障后的网络重构,实现智能配电网自愈。
1.2 相关理论的发展概况
1.2.1 强化学习研究发展及现状
强化学习可以追溯到控制论的早期,并在统计学、心理学、神经科学和计算机科学领域工作。在过去的5到10年里,它引起了人们对机器学习和人工智能社区的兴趣迅速增加。强化学习是智能体必须通过与动态环境的试错交互来学习行为所面临的问题。解决强化学习问题有两种主要策略。第一个是在行为空间中搜索,以找到在一类环境中表现较佳的行为。很多遗传算法和利用遗传编码的一些工作中已经运用了这种方法,还有其他前沿的搜索算法[18]。第二个是使用统计学方法和动态规划技能来评测在某一环境状态执行某一行动的效用。随着强化学习的发展,最近几年强化学习方法已成为智能规划决策系统的关键技术之一,被广泛应用于机器人、自动驾驶以及边缘计算等领域[19]。随着众多专家学者不停地研究强化学习以及做出的诸多突出贡献,该方法已被普遍应用于智能机器人领域,并取得了快速发展。应用该方法实现移动机器人的路径规划,提高环境感知能力的适应性,已成为机器人研究和应用的热门方向之一[20]。
Samuel 等人在1959年首次提出利用强化学习玩西洋跳棋游戏,智能体通过学习基于线性表示的值函数来选择最优动作[21]。实验表明智能体可以在很短的时间内学会这个游戏。虽然强化学习算法此时还未成熟,但是Samuel等人的工作给后面强化学习在人工智能、机器人等领域的应用开启了方向。在十九世纪九十年代左右,强化学习算法迎来了一波热潮,出现了很多新的强化学习算法以及改进的强化学习算法。1988年Sutton提出了时序差分(Temporal Difference, TD)学习算法,与传统方法相比,终端差分方法需要更少的内存和更少的峰值计算,并且它们产生更准确的预测[22]。1992 年 Watkins 设计了 Q 学习算法(Q-Learning)并证明了其收敛性[23]。Q-Learning是强化学习的主要算法之一,是一种记录行为值 (Q value) 的方法。它是一种无模型的强化学习技术。Q-Learning基于的一个关键假设是智能体和环境的交互可看作为一个马尔可夫决策过程(MDP),即智能体当前所处的状态和所选择的动作,决定一个固定的状态转移概率分布、下一个状态、并得到一个即时回报。Q-Learning的目标是寻找一个策略可以最大化将来获得的报酬。Q-Learning中,Q即为Q(s,a),每个Q(s,a)对应一个相应的Q值,就是在某一时刻的 s 状态下(s∈S),采取a (a∈A)动作能够获得收益的期望,环境会根据agent的动作反馈相应的回报reward ®。发展到这,有关强化学习中的多个典型方法大致成型。
2006年,Hinton等人说明了怎样利用“互补先验”去磨灭掉在包含大量中间层的复杂衔接的信念网络中难以进行推理的解释效应。使用被称为相互补充的已知知识,推理得到一种收敛速度更快的贪心策略,它具备单次迭代研习单层深度的有向信念网络[24]。Hinton的研究不仅提升了神经网络性能,而且在一定程度上促进了强化学习技术的进步。2013年,R.A.C. Bianchi 等人提出一种探索式提升多智能体强化学习的算法速度并进行理论分析证明,它建议选择特定动作而不是其他动作。该函数表示初始动作选择策略,可以手工制作、从不同领域的先前经验中提取或从观察中学习[25]。在许多现实世界的场景中,代理的外在奖励非常稀少,或者完全不存在。在这种情况下,Deepak Pathak 等人提出将好奇心作为一种内在的奖励信号,使代理能够探索其环境并学习可能在其以后的生活中有用的技能,以获得更优的策略[26]。好奇心定义为代理在自监督逆动力学模型学习的视觉特征空间中预测其自身行为结果的能力中的误差。
强化学习理论发展以及多智能体强化学习研究也还处于不停的探索阶段,大量学校研究院等在研讨中都收获了丰富的有意义的成果。1996 年,俞星星等人在《信息与控制》中归纳了强化学习的主要理论方法,提出了一个区分主客观因素的强化学习系统描述,引入了任务域的概念[27]。张健沛等人考虑了在连续动作下的强化学习方法进行了研究,并成功实践与智能体规避障碍的实验当中[28]。李春贵研究了优先扫描的强化学习方法,通过定义新的迹,把多步截断即时差分学习用于集成规划的优先扫描强化学习,用多步截断即时差分来定义扫描优先权,提出一种改进的优先扫描强化学习算法[29]。杨祖强将强化学习应用于多无人机在协同执行同时攻击、编队等飞行任务中[30]。

1.2.2 路径规划研究发展及现状
路径规划在实际应用中十分广泛,因此路径规划是一个十分重要的研究课题,是应用型研究不停地探索关注以及改善的关键问题。怎样才能实现让智能体有高度自住的运动控制策略一直是路径规划问题不断改进和突破的方向,是对多节点多分支网络进行学习的关键技术之一,也是移动智能体研究的一个重要方向以及配合完成各项复杂任务的重要前提。
2004 年,M.C. Su 等人提出一种基于强化学习的导航系统路径控制方法,通过强化学习建立将当前的传感数据映射到适当动作的模糊规则[31]。2004 年,陈华志和谢存禧研究了基于模糊控制的移动机器人避障路径规划算法[32]。2006年,G. Tan 等人提出基于改进的Dijkstra算法和蚂蚁系统算法,提出一种移动机器人全局最优路径规划方法。[33]。2009 年智能与机器人系统杂志上,T.L. Lee 等人提出提出了一种模糊算法,用于在充满障碍的未知环境中将移动机器人从给定的初始配置导航到所需的最终配置[34]。2011 年,针对危险源环境下的机器人路径规划问题,D. Gong 等人提出一种基于多目标粒子群优化的全局路径规划方法[35]。针对移动机器人工作环境的动态特性,2011年,Z. Hong 等人提出一种基于经典人工市场的势场模型[36]。2011 年,Dayal Ramakrushna Parhi 等人提出了一种用于多个移动机器人在未知杂乱环境中的避障和目标搜索导航行为的 Petri-电位模糊混合控制器方法[37]。对于复杂的任务,例如操作和机器人导航,众所周知,强化学习由于维度灾难而变得困难。 为了克服这种复杂性并使强化学习变得可行,2013 年Z. Hong 等人提出一种用于学习机器人运动的分层强化学习架构[38]。2013 年,S.K. Pradhan等人在完全未知的环境中研究了使用模糊逻辑的数个移动机器人(多达一千个机器人)的导航技术。开发了使用不同隶属函数的模糊逻辑控制器 (FLC) 并用于导航移动机器人[39]。自主移动机器人应用于制造、采矿、军事和交通运输、搜索和保护任务等多个应用领域。对于导航系统,需要定位移动机器人在周围环境中的位置。为了有效地避开障碍物并在环境中多种不同形状的障碍物下达到目标,2014 年,A.Pandey 等人设计了一种模糊逻辑控制器,通过定义或建立输入变量、输出变量、模糊逻辑隶属函数,根据障碍物位置改进移动机器人的运动 [40]。
1.2.3 研究现状简析
1.3 本文研究的主要内容
通过对以上对强化学习和路径规划问题的探讨解析,本课题研究主要针对未知多节点多分支网络情况下的路径规划问题,研究基于强化学习的多节点网络最优路径选择问题。智能体通过各种手段来收集附近所观测/探测到的信息并对收集到信息进行数据分析和加工,然后把最终处理后的信息特征赋予智能体的强化学习算法,以此来扩大其对各种情形下的兼容能力以及在面临灾难情形的自我学习表达能力。
本课题研究结构如下:第一章描述课题的研究背景和意义,简要减少了强化学习技术的国内外发展现状,简要介绍了针对课题背景下的路径规划问题,研究基于强化学习的路径规划方法的可行性和解决问题的能力。第二章简单介绍了强化学习和路径规划的相关概念定义。第三章是将强化学习Q-learning算法应用于我们所考虑的问题中,包括环境搭建,奖励设置,环境状态介绍等,最后对基于强化学习的路径规划方法进行了仿真实验。

2 背景知识
在标准强化学习模型中,智能体通过感知和动作连接到其环境,如图1所示。在交互的每个步骤中,智能体接收到作为输入i的当前状态s的一些指示环境;然后代理选择一个动作a来生成作为输出。该动作改变了环境的状态,并且这种状态转换的值通过标量强化信号r传达给代理。智能体的行为B应该选择倾向于增加强化信号值的长期总和的动作。随着时间的推移,它可以通过系统的试验和错误来学习做到这一点,并在各种算法的指导下进行。

图1 标准强化学习模型
形式上,该模型包括一组离散的环境状态S;一组离散动作A以及一组标量强化信号R。图1还包括了一个输入函数i,它确定智能体如何查看环境状态。强化学习的某些方面与人工智能中的搜索和规划问题密切相关。AI 搜索算法通过状态图生成令人满意的轨迹。规划以类似的方式运作,但通常在比图形更复杂的构造中,其中状态由逻辑表达式的组合而不是原子符号表示。这些 AI算法不如强化学习方法通用,因为它们需要预先定义的状态转换模型,并且除了少数例外假设确定性。另一方面,强化学习,至少在理论已经发展的那种离散情况下,假设整个状态空间可以枚举并存储在内存中,这是传统搜索算法不依赖的假设。
此外,路径规划研究一直以来都是在工业生产的应用中起到关键作用的发展方向。无论是小到人们平时普通外出活动,还是大到军事航天等轨迹研究,路径规划问题都在各行各业中担任着举足轻重的地位。怎样去恰当地制定行动路线、怎样合理地躲避不必要的麻烦,这些问题在路径规划研究领域中一直是不断地反复地去研究优化的高频问题。但是,在本课题中,由于作者能力有限,主要考虑智能体的行动路线问题,具体地,主要考虑如何制定路线的方案,使智能体能够从任意地点都能找到到达目的地的最优路径。

3 基于强化学习的路径规划
3.1 问题描述
本课题将编制智能体强化学习6节点网络的程序,通过学习得出不同初始位置下的最优路径。6节点网络环境如图2所示,每个节点都会连接1到3个其他节点:

图2 网络环境结构
智能体的状态为当前所处的节点,智能体的动作为节点的选择,例如在节点D,智能体的动作可以是D到C,D到B或者D到E。我们将终点目标所处的节点奖励设置为100,其余可达节点设置为0。将环境用矩阵表述如下:

其中0表示不可达,1表示可达,第一行到第六行分别表示A到F节点,列同理。另外奖励r用矩阵可以表示为:

其中我们假定F为目标节点,因此给所有可达F节点的路径奖励均为100,同时我们还给了其它节点自我循环的惩罚以加速收敛。
智能体处理机制流程如图3所示:

图3 智能体处理机制
智能体通过不停地和网络节点环境交互(执行)再根据外部奖惩机制得到最优路径。
3.2 Q-learning算法
强化学习是一个囊括多理论,多学科的算法,也是目前被认为具有巨大前景的算法。其中,Q-learning算法是强化学习里的经典算法,自Q-learning出世以来诞生了很多基于Q-learning的算法。
Q-learning算法应用的初衷是路径规划和决策控制,因为它需要不停地和环境做互动以更新,提升自身的决策,所以它也是一种在线学习方法。Q-learning的主要算法思想是:通过环境首先确认自身所处状态,在根据环境智能体观测周围(可观测)的环境特征,利用当前所学策略选择下一步的动作(决定),得到一个环境奖励评价该行为的好坏,这样不断探索反馈不断优化自身策略使得能让自身累计收益最大的行为概率达到最高。Q-learning算法在执行过程中通常会记录或保存一个Q函数(也叫Q表)来当作判断策略好坏的评估函数,根据Q函数,把能够使得最终累计奖励达到最大的策略/方法作为此环境的最优策略解。由此可以推断,Q-learning算法几乎完整地秉承了强化学习的算法思想。由此同时,考虑到Q-learning算法是一个实时学习的算法,它对问题的模型搭建相对于传统求解方法更为宽松。因此,Q-learning算法一直被当做是强化学习里特别典型的方法。Q-learning算法的大致算法步骤如图4所示:

图4 Q-learning算法框架
其中,α, γ 为常量参数。
奖励函数对Q-learning的收敛速度/学习能力具有关键性作用。Q-learning算法每做出一个动作都会得到相应的奖励,这个奖励左右着该算法的收敛速度,更新方向以及决策好坏等等。Q-learning算法作为一种动作价值迭代方法,它的动作执行和决策优化都和Q函数输出的Q表有高耦合关系,并且Q表的搭建和更新也十分依赖奖励函数带来的反馈。Q-learning算法基本依赖于智能体得到的奖励函数值来做到更新Q函数的过程。所以,不仅仅是算法本身的循环方法以及策略动作捕捉对Q-learning算法有关键性作用,Q-learning算法的奖励机制也是该算法的核心之一。
不论是半仿真作业还是在现实应用中,Q-learning算法作为强化学习的典型方法,一直是众多学科/方向关注的主要决策算法。Q-learning算法凭借其对问题模型的宽松要求,以及自身卓越的迭代更新能力备受广大学者和工业人士的关注。
3.3 仿真结果分析
仿真场景如图5所示,我们的智能体是在一个多节点多分支网络环境上交互,在这个环境中,我们可以选择不同的初始点,选择其对应的最优路径到达目的地(这里我们设定节点F为目的地节点)。左图是将图网络用邻接矩阵表示,可以看出共有13个有向边,右图是节点所对应的图网络以及可达边,未画出的线均表示无法直达。比如,节点A到B无法直达。

图5 仿真场景描述
我们用Q-learning在环境中迭代1000次,并记录了每过100次Q函数表的值变化,我们发现Q表在第一个100次之内已经基本收敛:
第一次:

第100次:

第200次:
第1000次:

此外,我们还将初始点算在了C点,根据更新后的Q表找到最优路径,结果如下:
说明Q-learning能够较好的解决在未知节点网络下的路径规划问题。
4 结论
路径规划问题一直是在实际应用中的热点话题,对于应用型研究,提升路径规划效能能够大幅度地节省所耗资源,因此,如何进一步提升路径规划问题的效能具有重大意义。在不确定环境或仅有部分环境已知的情况下的智能体的路径规划问题也会成为未来在很多实际应用中的热点研究方向。对于环境不确定的路径规划问题,强化学习通过模拟动物(或人类)从试错和经验中学习进步的过程,通过小幅度地尝试探索,帮助智能体克服决策时环境不明确、处理不及时等状况。将强化学习应用于路径规划问题中,不仅可以有效解决路径规划算法呆板、不灵活以及固定等问题,同时开拓了强化学习算法实际应用的新思路,新方向。本文针对环境中具有不确定性信息的路径规划问题进行了深入研究。本课题研究中设计了一种基于强化学习的路径规划方法。
针对动态环境或环境信息不全面的情况,本课题重点研究智能体在不确定情形下的路径规划方法,设计了基于强化学习的路径规划方法。针对动态环境或环境信息不全面的情况,利用Q-learning算法,实现智能体的路径规划。并在 Windows 操作系统下 用Matlab软件搭建环境框架,Q-learning学习算法框架及其组成部分并且做了仿真实验证明算法系统的可行性。
但是本课题研究仍然存在需要完善的部分。本课题中的仿真实验都是仿真平台提供的静态环境中进行的,实验环境相对简单。如若提高课题研究结果广泛应用的能力,仍需进一步在动态环境中加以研究应用。同时,算法系统需要在实物机器人中与前端勾连,在运动过程中得到更加精确的信息反馈,才能具体证明其在应用中解决问题的能力。

参考文献
[1] A. García Castro and M. D. C. Andrés, “Measuring the effects of traffic congestion on fuel consumption”, Proc. Transp. Res. Board Conf., pp. 19-22, 2014.
[2] R. Wang, Z. Xu, X. Zhao and J. Hu, “V2 V-based method for the detection of road traffic congestion”, IET Intell. Transp. Syst., vol. 13, no. 5, pp. 880-885, May 2019.
[3] L. Lapierre, D. Soetanto, and A. Pascoal, “Nonlinear path following with applications to the control of autonomous underwater vehicles,” in 42nd IEEE Conference on Decision and Control, pp. 1256–1261, 2003.
[4] E. Fredriksen and K. Y. Pettersen, “Global κ-exponential way-point maneuvering of ships: Theory and experiments,” Automatica, vol. 42, no. 4, pp. 677–687, 2006.
[5] A. M. Lekkas and T. I. Fossen, “Integral LOS path following for curved paths based on a monotone cubic Hermite spline parametrization,” IEEE Transactions on Control Systems Technology, vol. 22, no. 6, pp. 2287– 2301, 2014.
[6] T. I. Fossen, M. Breivik, and R. Skjetne, “Line-ofsight path following of underactuated marine craft,” IFAC Proceedings Volumes, vol. 36, no. 21, pp. 211–216, 2003.
[7] R. Skjetne, U. Jørgensen, and A. R. Teel, “Line-ofsight path-following along regularly parametrized curves solved as a generic maneuvering problem,” in 50th IEEE Conference on Decision and Control and European Control Conference, pp. 2467–2474, 2011.
[8] A. P. Aguiar and J. P. Hespanha, “Trajectory-tracking and path-following of underactuated autonomous vehicles with parametric modeling uncertainty,” IEEE Transactions on Automatic Control, vol. 52, no.8, pp.1362-1379, 2007.
[9] A. M. Lekkas and T. I. Fossen, “Trajectory tracking and ocean current estimation for marine underactuated vehicles,” in IEEE Conference on Control Applications (CCA), pp. 905–910, 2014.
[10] S. Moe, K. Y. Pettersen, T. I. Fossen, and J. T. Gravdahl, “Line-of-sight curved path following for underactuated USVs and AUVs in the horizontal plane under the influence of ocean currents,” in 24th IEEE Mediterranean Conference on Control and Automation (MED), pp. 38– 45, 2016.
[11] L. Liu, D. Wang, and Z. Peng, “ESO-based line-of-sight guidance law for path following of underactuated marine surface vehicles with exact sideslip compensation,” IEEE Journal of Oceanic Engineering, vol. 42, no. 2, pp. 477– 487, 2017.
[12] S.-R. Oh and J. Sun, “Path following of underactuated marine surface vessels using line-of-sight based model predictive control,” Ocean Engineering, vol. 37, no. 2-3, pp. 289–295, 2010.
[13] R. S. Sutton and A. G. Barto, Reinforcement learning: An introduction. MIT Press, 1998.
[14] D. P. Bertsekas, Dynamic Programming and Optimal Control, vol. 2. Athena Scientific, 4th ed., 2012.
[15] D. P. Bertsekas and J. N. Tsitsiklis, “Neuro-dynamic programming,” 1996.
[16] 朱大奇,颜明重. Agent 路径规划技术综述[J] 控制与决策. 2010. 25(7): 961-967
[17] 陈 学 松,杨 宜 民. 强 化 学 习 研 究 综 述[J]. 计 算 机 应 用 研 究. 2010. 27(8):2834-2844
[18] Schmidhuber J. A general method for multi-agent learning and incremental self-improvement in unrestricted environments[J]. Evolutionary Computation: Theory and Applications. Scientific Publ. Co., Singapore, 1996.
[19] 谭民,王硕,曹志强. 多机器人系统. 清华大学出版社有限公司,2005.
[20] Y.K. Na, and S. Y Oh, Hybrid control for autonomous mobile robot navigation using neural network based behavior modules and environment classification, Autonomous Robots, 15(2): 193-206, 2003.
[21] A. L. Samuel. Some Studies in Machine Learning Using the Game of Checkers[J]. IBM Journal. 1967, 9. 601-617.
[22] Richard S. Sutton. Learning to predict by the methods of Temporal Different[J]. Machine Learning. 1988, 3: 9-44.
[23] Christopher J.C.H. Watkins. Technical Note Q-Learning[J]. Machine Learning. 1992, (8). 279-292.
[24] Hinton G E, Osindero S, Teh Y.W. A fast learning algorithm for deep belief nets[J]. Neural Computation, 2006, 18(7): 1527-1554.
[25] R. A. C. Bianchi, M. F. Martins, C. H. C. Ribeiro, and A. H. R. Costa, Heuristically-accelerated multi-agent reinforcement learning, IEEE Transactions on Cybernetics, 2014.44(2): 252-265.
[26] Deepak P. Pulkit A. Alexei A. Efros. Trevor Darrell. Curiosity-driven Exploration by Self-supervised Prediction[D]. 2017.
[27] 俞星星,阎平凡. 强化学习系统及其基于可靠度最优化的学习算法[J]. 信息与控制. 1996, 9 (5). 332-339.
[28] 张健沛,王醒策,张汝波. 连续动作强化学习及其在Agent中的应用研究[J]. 哈尔滨工程大学学报. 2000, 21(3). 78-81.
[29] 李春贵.多步截断优先扫描强化学习算法[J].计算机工程.2005, 6, 31(11). 13-15.
[30] 杨祖强.生物启发的多无人机协同四维航迹规划方法研究[D].浙江大学,2016.
[31] M.C. Su, D.Y Huang, C.H. Chow and C.C. Hsieh, A reinforcement learning approach to robot navigation, in Proceedings of IEEE International Conference on Networking, Sensing and Control, 2004, 1:665-669.
[32] 陈华志,谢存禧.移动机器人避障模糊控制[J]. 机床与液压,2004, (11):77-78.
[33] G.Tan, H.He, and S. Aaron, Global optimal path planning for mobile robot based on improved Dijkstra algorithm and ant system algorithm, Journal of Central South University of Technology, 13(1):80-86, 2006.
[34] T.L. Lee, C.J. Wu Fuzzy motion planning of mobile robots in unknown environments. Journal of Intelligent and Robotic Systems, 2003, 37(2): 177-191.
[35] D. Gong, J. Zhang, and Y. Zhang, Multi-objective particle swarm optimization for robot path planning in environment with danger sources, Journal of Computers, 2011.6(8): 1554-1561.
[36] Z. Hong, Y Liu, G. Zhongguo, and C. Yi, The dynamic path planning research for mobile robot based on artificial potential field, in Proceedings of IEEE International Conference on Consumer Electronics, Communications crud Networks, 2011: 2736-2739.
[37] Dayal Ramakrushna Parhi, Jagadish Chandra Mohanta. Navigational control of several mobile robotic agents using Petri-potential-fuzzy hybrid controller. Applied Soft Computing, 2011(11): 3546-3557.
[38] B. Bischoff, D. Nguyen, Tuong, I. H. Lee, and F. Streichert, Hierarchical reinforcement learning for robot navigation, in Proceedings of 21st European Symposium on Artificial Neural Networks, Computational Intelligence and Machine Learning, 2013: 227-232.
[39] S.K. Pradhan, D.R. Parhi, A.K. Panda, Fuzzy logic techniques for navigation of several mobile robots,Applied Soft Computing Journal, 2009(9):290-304.
[40] A. Pandey, R. K. Sonkar, K. K. Pandey, and D. R. Parhi, Path planning navigation of mobile robot with obstacles avoidance using fuzzy logic controller, in Proceedings of IEEE 8th International Conference on Intelligent Systems and Control, 2014: 39-41.

致 谢

附 录
附录A 程序代码【1级标题,三号黑体字】
% Q learning
% Two input: R and gammar
% A B C D E F
% A 1
% B 1 1
% C 1
% D 1 1 1
% E 1 1 1
% F 1 1 1

function qlearning
clear all;close all; clc;
R=[ -1, -inf, -inf, -inf, 0, -inf;
-inf, -1, -inf, 0, -inf, 100;
-inf, -inf, -1, 0, -inf, -inf;
-inf, 0, 0, -1, 0, -inf;
0, -inf, -inf, 0, -1, 100;
-inf, 0, -inf, -inf, 0, 100];
labels=[‘A’ ‘B’ ‘C’ ‘D’ ‘E’ ‘F’];
gamma=0.80; % learning parameter
nEpisodes=1000;
[A episode]=ReinforcementLearning(R,nEpisodes,gamma);
A
adj=(A>0);

%# plot adjacency matrix
subplot(121), spy(adj)
title(‘Adjacency matrix’);
%# plot connected points on grid
X=[1 2 3.0 2 1 0.0]’;
Y=[2 2 1.5 1 1 1.5]’;
[xx yy] = gplot(adj, [X Y]);
subplot(122), plot(xx, yy, ‘ks-’, ‘MarkerFaceColor’,‘r’)
title(‘Graph’);
axis([0.0 4 0.5 2.5])
dx=0.1;dy=0.1;

for j=1:length(labels)
text(X(j)+dx,Y(j)+dy,labels(j))
end

%% Find path
initial=3; %C
goal=6; %F

foundPath=false;
current=initial;

index=1;
pathPlan(index)=current;
while(not(foundPath))
[val current]=max(A(current,:));
index=index+1;
pathPlan(index)=current;
if(current==goal)
foundPath=true;
end
end
disp(‘Path:’)
for j=1:length(pathPlan)
disp(sprintf(’%c’,labels(pathPlan(j))))
end
end

function y=RandomPermutation(A)
% return random permutation of matrix A
% unlike randperm(n) that give permutation of integer 1:n only
[r,c]=size(A);
b=reshape(A,rc,1); % convert to column vector
x=randperm(r
c); % make integer permutation of similar array as key
w=[b,x’]; % combine matrix and key
d=sortrows(w,2); % sort according to key
y=reshape(d(:,1),r,c); % return back the matrix
end

function [q episode]=ReinforcementLearning(R, nepisodes,gamma)
format short
format compact
q=zeros(size®); % initialize Q as zero
q1=ones(size®)*inf; % initialize previous Q as big number
count=0; % counter
r=zeros(1,nepisodes);

for episode=1:nepisodes
   % random initial state
   y=randperm(size(R,1));
   state=y(1);
   
   for step=0:5
   % select any action from this state
   x=find(R(state,:)>=0);        % find possible action of this state
   if size(x,1)>0,
      x1=RandomPermutation(x);   % randomize the possible action
      x1=x1(1);                  % select an action 
   end

   qMax=max(q,[],2);
   q(state,x1)= R(state,x1)+gamma*qMax(x1);   % get max of all actions 
   r(episode) = r(episode) + R(state,x1);
   state=x1;
   end
   % break if convergence: small deviation on q for 1000 consecutive
   if sum(sum(abs(q1-q)))<0.0001 & sum(sum(q >0))
      if count>1000,
         episode        % report last episode
         break          % for
      else
         count=count+1; % set counter if deviation of q is small
      end
   else
      q1=q;
      count=0; % reset counter when deviation of q from previous q is large
   end
   
   if mod(episode,100)==1
       q

% r(episode)
end
end

%normalize q
g=max(max(q));
if g>0, 
   q=100*q/g;
end

end

代码:
% Q learning
% immediate reward matrix;
% A B C D E F
% A 1
% B 1 1
% C 1
% D 1 1 1
% E 1 1 1
% F 1 1 1

function qlearning
clear all;close all; clc;
R=[ -1, -inf, -inf, -inf, 0, -inf;
-inf, -1, -inf, 0, -inf, 100;
-inf, -inf, -1, 0, -inf, -inf;
-inf, 0, 0, -1, 0, -inf;
0, -inf, -inf, 0, -1, 100;
-inf, 0, -inf, -inf, 0, 100];
labels=[‘A’ ‘B’ ‘C’ ‘D’ ‘E’ ‘F’];
gamma=0.80; % learning parameter
nEpisodes=1000;
[A episode]=ReinforcementLearning(R,nEpisodes,gamma);
A
adj=(A>0);

%# plot adjacency matrix
subplot(121), spy(adj)
title(‘Adjacency matrix’);
%# plot connected points on grid
X=[1 2 3.0 2 1 0.0]’;
Y=[2 2 1.5 1 1 1.5]’;
[xx yy] = gplot(adj, [X Y]);
subplot(122), plot(xx, yy, ‘ks-’, ‘MarkerFaceColor’,‘r’)
title(‘Graph’);
axis([0.0 4 0.5 2.5])
dx=0.1;dy=0.1;

for j=1:length(labels)
text(X(j)+dx,Y(j)+dy,labels(j))
end

%% Find path
initial=2; %B
goal=6; %F

foundPath=false;
current=initial;

index=1;
pathPlan(index)=current;
while(not(foundPath))
[val current]=max(A(current,:));
index=index+1;
pathPlan(index)=current;
if(current==goal)
foundPath=true;
end
end
disp(‘Path:’)
for j=1:length(pathPlan)
disp(sprintf(’%c’,labels(pathPlan(j))))
end
end

function y=RandomPermutation(A)
% return random permutation of matrix A
% unlike randperm(n) that give permutation of integer 1:n only
[r,c]=size(A);
b=reshape(A,rc,1); % convert to column vector
x=randperm(r
c); % make integer permutation of similar array as key
w=[b,x’]; % combine matrix and key
d=sortrows(w,2); % sort according to key
y=reshape(d(:,1),r,c); % return back the matrix
end

function [q episode]=ReinforcementLearning(R, nepisodes,gamma)
format short
format compact
q=zeros(size®); % initialize Q as zero
q1=ones(size®)*inf; % initialize previous Q as big number
count=0; % counter
r=zeros(1,nepisodes);

for episode=1:nepisodes %从1:1000 
   % random initial state
   y=randperm(size(R,1));
   state=y(1);
   
   for step=0:5
   % select any action from this state
   x=find(R(state,:)>=0);        % find possible action of this state
   if size(x,1)>0,
      x1=RandomPermutation(x);   % randomize the possible action
      x1=x1(1);                  % select an action 
   end

   qMax=max(q,[],2);
   q(state,x1)= R(state,x1)+gamma*qMax(x1);   % get max of all actions 
   r(episode) = r(episode) + R(state,x1);
   state=x1;
   end
   % break if convergence: small deviation on q for 1000 consecutive
   if sum(sum(abs(q1-q)))<0.0001 & sum(sum(q >0))
      if count>1000,
         episode        % report last episode
         break          % for
      else
         count=count+1; % set counter if deviation of q is small
      end
   else
      q1=q;
      count=0; % reset counter when deviation of q from previous q is large
   end
   
   if mod(episode,100)==1
       q

% r(episode)
end
end

%normalize q
g=max(max(q));
if g>0, 
   q=100*q/g;
end

end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值