电老鼠走迷宫算法

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

要 摘 要 一种电脑鼠走迷宫的算法

■ 上海商学院 张新谊

─────────────────────────────────────────────────────────────────

电脑鼠(Micromouse )实际上是一个由微处理器控制的,集感知、判断、行走功能于一体,

能够自动寻找最佳路径到达目的地的小型机器人。国际电工和电子工程学会(IEEE )每年都要举办一次国际性的电脑鼠走迷宫竞赛。本文介绍一种能满足IEEE 学会颁布规则的电脑鼠走迷宫算法。

───────────────────────────────────────────────────────────────── 关键词 运行时间 迷宫时间 碰触 排障时间

─────────────────────────────────────────────────────────────────

电脑鼠的英文名称为Micromouse ,实际上是一个由微处理器控制的,集感知、判断、行走功能于一体,能够自动寻找最佳路径到达目的地的小型机器人。它可以在“迷宫”中自动感知并记忆迷宫地图,通过一定的算法,寻找一条最佳路径,以最快的速度到达目的地。1997年,在美国举办了第一届电脑鼠竞赛,随后,电脑鼠竞赛传入欧洲,首届欧洲电脑鼠竞赛于1980年在伦敦举办,之后英国的电脑鼠比赛便由电子工程协会(IEE )主办。1980年11月日本电脑鼠协会(JMA )在东京举办了第一届竞赛,此后,日本每年都要举办一届电脑鼠竞赛。我国台湾也于1986年10月举办了首届电脑鼠比赛。现在国际电工和电子工程学会(IEEE )每年都要举办一次国际性的电脑鼠走迷宫竞赛,各国选手报名踊跃,主要是大学生,为此部分大学还开设了“电脑鼠原理和制作”选修课程。

由于电脑鼠要由参赛选手自己设计制作,不仅要求选手具有嵌入式系统应用﹑传感器﹑控制技术等多方面的知识、经验和实践能力,还要求具有编写寻找最佳路径算法的能力。由于迷宫路径设置是随机的,因而竞赛难度较大,极富挑战性。这对培养和提高学生的创新精神和实践能力,有着深远的意义。2007年5月— 8月将举办由我国部分地区(上海及长三角地区)参加的首届电脑鼠邀请赛。

1 电脑鼠走迷宫的规则

有关电脑鼠国际比赛的详细规则,可参阅国际电工和电子工程学会(IEEE )的官方网站:/sc2006/2006MicromouseRules.pdf 。

迷宫的规格

迷宫由256个方块(单元)组成,每个方块的大小为18厘米见方,排成16行×16列。迷宫的隔墙板沿方块的四周布设,形成迷宫通道。隔墙板高5厘米﹑厚1.2厘米,因此迷宫通道的实际宽度是16.8厘米。隔墙板的两个侧面是白色的,顶部是红色的。迷宫的地板由木质材料做成,涂上没有反光的黑漆。隔墙板的侧面和顶部对红外线有反射特性,而地板则对红外线有吸收特性。竞赛起始点可设在迷宫的任何一角,其三面要有隔墙;竞赛的终点设在迷宫的中央,有四个方块那么大小。图一为一个实际的电脑鼠竞赛用的迷宫照片。

图一电脑鼠竞赛用的迷宫照片

1.2 电脑鼠的规格

电脑鼠要求由参赛者自制,使用电源为能源,不能使用其它可燃物为能源。电脑鼠结构高出隔墙部分的长宽几何尺寸应不大于25×25厘米,对高度没有限制。一个完整的电脑鼠应包含有机身、电源、传感器、微处理器、马达及驱动等部分。电脑鼠的传感器可分为三组,分别用来感知前、左、右三个方向是否已靠近宫壁,并将所获得信息传送给微处理器进行处理。微处理器要完成多种信息的处理,如路径、迷宫地图、行走距离、马达控制等,并要能够作出判断。在马达的控制下,电脑鼠能够完成直行、转弯、掉头以及加减速等动作。通常采用左右独立的马达驱动和控制,以使微处理器的控制更加灵活。图二为一个实际参加竞赛的电脑鼠样例照片。

图二电脑鼠样例照片。

1.3 竞赛的规则

电脑鼠的基本功能是从起点开始走到终点,这个过程称为一次“运行”,所花费的时间称为“运行时间”。从终点回到起点所花费的时间不计算在运行时间内。电脑鼠从第一次激活到每次运行开始,所花费的时间称为“迷宫时间”。如果电脑鼠在比赛时需要手动辅助,这个动作称为“碰触”。竞赛使用这三个参数,即运行时间﹑迷宫时间和碰触,从速度﹑求解迷宫的效率和电脑鼠可靠性三个方面来进行评分。

电脑鼠的得分是通过计算每次运行的“排障时间”来衡量的。所谓排障时间是这样计算的:先将迷宫时间的1/30加上一次运行时间,如果这次运行结束以后电脑鼠没有被碰触过,那么还要再减去10秒的奖励时间,这样得到的就是排障时间。电脑鼠在迷宫中的停留或运行的总时间不可超过15分钟,在限时内允许运行多次,允许取其中最短的排障时间作为参赛的计分成绩。当然,排障时间越短越好例如:一个电脑鼠在迷宫中运行时间为4分钟(240秒)没有碰触过,迷宫时间使用了20秒,这次运行的排障时间就是:20秒+(240秒×1/30)-10秒= 18秒。

电脑鼠在迷宫通道内行走时不能碰到隔墙板,遇到岔道口时要能够自动作出方向选择。本文规定:如果进入迷宫是为了进行探测和记忆,这次运行就称为“试跑”;如果进入迷宫是根据先前的记忆和经验,按照智能算法确定最佳路径,并以最快的速度到达目的地,这次运行就称为“冲刺”。

2电脑鼠走迷宫的算法

2.1 探测策略

电脑鼠走迷宫可以采用全迷宫探索策略,即将迷宫的所有单元均搜索一次,从中找出最佳的行走路径。这种策略需要有足够的时间或探测次数,但在IEEE竞赛规则中每场竞赛只有15分钟的时间,因此是不可能的。另一种方法是部分迷宫探索策略,即在有限的时间或探测次数下,只探测迷宫的一部分,从中找出次最佳的路径,显然只能采用这种策略。

电脑鼠在一巷道内行走,如果最后无路可走,则该巷为死巷。电脑鼠在任一单元内,可能的行走方向最多只有三个(前、左、右),如果有二个或二个以上的可能行走方向,称为交叉,遇有交叉时,由于有多个可以行走的方向,在行走方向的选择上,可有下面的几种选择法则:

•右手法则:遇有交叉时,以右边为优先的前进方向,然后是直线方向、左边方向。

•左手法则:遇有交叉时,以左边为优先的前进方向,然后是直线方向、右边方向。

•中左法则:遇有交叉时,以直线为优先的前进方向,然后是左边方向、右边方向。与此类似的还有中右法则。

•乱数法则:遇有交叉时,取随机值作为前进方向。

•向心法则:由于终点在迷宫的中心,遇有交叉时,以向迷宫中心的方向为优先的前进方向。

2.2标记

为了记忆迷宫的详细信息,需要对迷宫单元的位置进行线路标记。全迷宫共有16×16个单元组成,可采用二维坐标方式标记,即用每个单元的XY坐标表示,如起点可标记为(0,0),终点为(7,7)。此外,还需要对迷宫单元的可行进方向进行标记,可采用绝对方位或相对方位二种方式。

绝对方位:这是一种与电脑鼠行进方向无关的标记方式,以一个四位的二进制数,分别表示“东”﹑“西”﹑“南”和“北”四个方向。以1表示允许行进(无墙壁),0表示不允许行进(有墙壁)。

相对方位:这是一种与电脑鼠行进方向有关的标记方式,以一个三位的二进制数即可实现标记,分别表示“前”“左”“右”,以1表示允许(无墙壁),0表示不允许(有墙壁)。

2.3阻断

在电脑鼠试跑过程中或在最后冲刺时,需要对部分路径进行“阻断”,即在发现某条路径是死路(只有入口而无出口)时,在该路径的入口处(一般是交叉点)设置标记,即将入口的线路标记由1改为0。2.4试跑

试跑是获得迷宫地图(各单元路线标记)的唯一方法,因而应在规则允许的情况下,尽可能多的获得迷宫信息,为最后的冲刺准备尽可能多的信息。在试跑过程中,要对经过的单元进行线路标记,同时还要选择一个合适的探测策略。

下面以1/4迷宫为例进行说明。假设迷宫图布局如图三所示,共有8×8=64个单元,起点在左下角(Start),终点在右上角(End)。选用一个8×8的矩阵map保存迷宫地图信息,矩阵的每个元素为1个字节,高4位表示探测到的可行进路径,以绝对方位标记,次序为“北”﹑“东”﹑“西”﹑“南”。低4位记录自起点的交叉点的个数。探测策略采用右手法则,在初始状态,矩阵map各元素的值均为FFH,00H 表示死巷。

相关文档
最新文档