190 likes | 433 Views
毕业论文答辩 机器人路径规划蚁群算法. 姓名:陈俊吉 指导老师:朱庆保. 研究内容. 蚂蚁算法的基本原理 各类蚁群算法的实施与比较 机器人路径规划蚁群算法及其编程实现和仿真实验. 研究目标及方法. 目标:机器人在有障碍物的工作环境中工作时,通过两组蚂蚁相向搜索,优化寻找出一条从给定起始点到终止点的较 优的运动路径,使机器人在运动过程中能安全、无碰撞地绕过所有的障碍物,且所走路径最短。 方法:用两组蚂蚁分别以机器人出发点和目标点为出发点,按照一定的概率搜索算法相向搜索。本课题要研究这一概率搜索算法及其编程实现,并用 C 语言给出仿真结果。. 蚂蚁算法的基本原理.
E N D
毕业论文答辩机器人路径规划蚁群算法 姓名:陈俊吉 指导老师:朱庆保
研究内容 • 蚂蚁算法的基本原理 • 各类蚁群算法的实施与比较 • 机器人路径规划蚁群算法及其编程实现和仿真实验
研究目标及方法 • 目标:机器人在有障碍物的工作环境中工作时,通过两组蚂蚁相向搜索,优化寻找出一条从给定起始点到终止点的较优的运动路径,使机器人在运动过程中能安全、无碰撞地绕过所有的障碍物,且所走路径最短。 • 方法:用两组蚂蚁分别以机器人出发点和目标点为出发点,按照一定的概率搜索算法相向搜索。本课题要研究这一概率搜索算法及其编程实现,并用C语言给出仿真结果。
蚂蚁算法的基本原理 生物学的研究表明:虽然单个蚂蚁的能力非常有限,但多个蚂蚁构成的群体具有找到蚁穴与食物之间最短路径的能力。这种能力是靠其在所经过的路径上留下的一种挥发性分泌物,即信息素(pheromone)来实现的。蚂蚁在路径上前进时会根据前边走过的蚂蚁所留下的信息素选择其要走的路径,其选择一条路径的概率与该路经上分泌物的强度成正比。因此,由大量蚂蚁组成的群体的集体行为实际上构成一种学习信息的正反馈现象:某一条路径走过的蚂蚁越多,后面的蚂蚁选择该路径的可能性就越大。蚂蚁的个体之间通过这种信息的交流寻求通向食物的最短路径。
各类蚁群算法的实施与比较 • TSP问题 即旅行商问题,有n个城市,为旅行商选择一条经过各城市一次且仅一次的回路,使其路径长度最短。 • AS算法与ACS改进算法 体现在后续算法中,这里略
算法分析 步骤1:在屏幕上画一个10*10的栅格,格子的号码从1到100。栅格障碍物的号码随机生成(设有20个障碍物),并按照生成的号码在图中用阴影表示。 步骤2:设定起点和终点的位置:begin=5,end=99。因为障碍物是随机生成的,所以设定的起点和终点有可能与障碍物的号码冲突。为了避免出现这样的情况,需用另外的函数来检测,如果设定的起点或者终点恰好就是随机生成的障碍物时,就要再重新设定起点和终点的方格号码。为了便于后续距离的计算,将终点end转换为横纵坐标:横坐标endx=(end-1)/Y+1;纵坐标endy=(end-1)%Y+1。
算法分析 步骤3:初始化。将每两个方格之间的信息素初始化为一个很小的常数值:hormone[i][j]=hormone[j][i]=0.5;起点和终点处均放置一定数量的蚂蚁(本程序中分别放两只),并将它们固定地分配到起点和终点地四周(一个方格放一只)。对于每一只蚂蚁,将它们所在的方格号码加到禁忌表中。
算法分析 步骤4:下一步要走的方格的选择。每只蚂蚁在自己领接的(8个)非障碍物的格子中(c[i][k]!=0)选择下一步要走的方格。同样运用ACS算法中选择结点的方法:
算法分析 q0也是初始设定的参数,temp1是一个0到1之间的随机数。如果temp1,按照最大信息素选择j,否则计算转移概率,按赌轮盘规则选择j,同时将j加入到禁忌表中。 f2是当前点转移到方格j的启发函数。如果是起点的蚂蚁,它的启发函数就是它领接的各点到终点的距离的倒数,f2=1/dij。终点的蚂蚁就恰好相反。 设x,y分别表示将要走的点的横纵坐标,距离
算法分析 步骤5:信息素局部更新。每只蚂蚁走完一步后,用下式更新该边上的信息素。 lk是蚂蚁k从起点到当前方格所走过的路径长度。
算法分析 步骤6:计算距离看是否有两只蚂蚁可以相遇。 当有从起点和终点出发的两只蚂蚁相遇时,一次搜索过程结束,将这两只蚂蚁所走过的路径相加,就得到了一次循环中从起点到终点得最佳路径。对每两只蚂蚁i,j: 用x0,y0记录蚂蚁i在t时刻所在方格的横坐标和纵坐标,有 x0=(tabu[i][t]-1)/Y+1 y0=(tabu[i][t]-1)%Y+1 同样,用x1,y1记录蚂蚁j在t时刻所在方格的横坐标和纵坐标, 有: x1=(tabu[j][t]-1)/Y+1 y1=(tabu[j][t]-1)%Y+1 如果 (或者=1, )则说明蚂蚁i,j 此刻相遇了。
算法分析 步骤7:找到最短路径,并计算其长度。分别计算蚂蚁i,j所走过的路径长度di,dj,并将其相加 如果有两种以上的情况出现,则选择其中最小的数作bestd的值。
算法分析 步骤8:信息素全局更新。一次循环搜索完毕之后,要对最佳路径上的信息素进行更新。方法同ACS算法:
算法分析 步骤9:设置的搜索次数NC还没结束(NC0〈=NC)时,则清空禁忌表,重复上述过程。 步骤10:完成整个搜索过程,将最佳路径长度bestd打印出来,并将该最佳路径所经过的方格的号码(存于数组bestway[]中)也打印出来。同时,根据数组bestway中的数字在图中用另一种颜色画出路径。
结束语 蚁群算法是一种求解组合优化问题的模拟进化算法,而TSP问题是最经典的组合优化问题,可推广应用于VLSI芯片设计、电路版布局、机器人控制、车辆选路等领域。本文就是从研究最经典的TSP问题入手,设计了一个解决移动机器人路径规划问题的方法。而且,蚁群算法实现起来不是很复杂,比起其他的研究在应用于该领域时有较高的效率。