一种电脑鼠走迷宫算法的设计与实现
一种电脑鼠走迷宫算法
一种电脑鼠走迷宫算法作者:周杰来源:《电脑知识与技术》2018年第03期摘要:该文通过对电脑鼠走迷宫算法的研究,提出了一种电脑鼠走迷宫算法,该算法引用了斜线K和Z用以更新期望坐标,并将迷宫分割为多个部分,以斜线K上的点为起点坐标,下一条斜线K上的点为期望终点坐标,找到起点坐标和终点坐标的最优解,以局部最优,引出全局最优找到最佳路径,并与传统走迷宫算法进行比较,提高了迷宫搜索效率。
关键词:迷宫;斜线;局部最优;最佳路径中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2018)03-0053-031 概述电脑鼠是一种机电一体化装置,是由单片机、传感器、机电运动部件组成的一种能在迷宫行走的小型机器人可以通过预先设定的算法,探索迷宫,可以找到一条从预设的起点到终点的最佳路径,运行环境是由一个16X16正方形单元格所组成的迷宫,其中单元格的大小为18cmX18cm,文献[1][2]给出了电脑鼠走迷宫的相关规则,每一个单元格有相应的挡板组成,电脑鼠的目的是在最短的时间内找到出口,在整个电脑鼠中最重要的是硬件的可靠性和算法的优劣,在当今单片机迅速发展的时代,硬件稳定性上已经趋于稳定,本文主要研究和设计搜索迷宫算法,并提出了一种电脑鼠搜索迷宫的算法。
2 迷宫环境建模电脑鼠不具有思维能力,它只能按照我们设定的算法运行,因此需要模拟现场运行环境[6][7].构建一个16X16的迷宫,迷宫的水平方向为Y轴,垂直方向为X轴,第一个坐标为(1,1),那么依次下去最上角的坐标为(16,16)。
迷宫构建图,如图1 所示,迷宫内的挡板信息未知。
假设起点为(1,1)终点为(16,16),现在规定,X方向为地理北,Y方向为地理南,如图2所示。
对于当前坐标,和下一步目标,两个坐标的差值比如(X1,Y1)-(X2,Y2)。
(1,0)表示电脑鼠向北前进一步。
其中差值(0,1)表示向东前进一步,(-1,0)表示向南前进一步,(0,-1)表示向西前进一步。
智能老鼠走迷宫算法的设计
有 肢 体 、 官 、 力 , 合 一 体 的 机 械 , 智 能 老 鼠 即 是 一 个 感 脑 综 而
走 出迷 宫
。
3 分 析 方 法 .
能够用 来诠 释肢体 、 感官及脑 力综合工作 的智能机械 。希望 能够藉 由智 能老 鼠的创 作进而研 究 与发 明更 加复 杂的智 能
脱 与 高 效 行 进 都 可 以 依 靠 等 高 图 。将 迷 宫 认 为 划 分 为 若 干
图 3加减 速 示意 图
的迷 宫格 , 并将 每个迷 宫格 的等高值 赋予最大 值 0 f, 图 x 如
盟 拥 ,
加 减 速 实 时 算 法 的 核 心 是 使 用 定 时器 中 断 , 当定 时器 发
能老 鼠的驱动 ,采用 红外线 发射 管和一 体化接 收头组 成传
感 器 单 元 ,使 用 基 于 C r xM3 内核 的 3 ot . e 2位 A M 微 控 制 R 器 L S 1 为 运 算 控 制 中 心 。方 案 通 过 建 立 自动 适 应 迷 M3 65作
宫 的搜 索算法 , 依靠 强大运 算 能力 的处理 器 , 最后 实现 了智 能老 鼠快速 高效的迷宫搜 索 。
・-— —
4 -— 3 - —
黝 基 金 项 目
速, 之后匀速 运行 。当快要到 达指定 的停 J位 置时 , 以恒 卜 再 定 的减速度减速 , 在停止位 置处停住。如图 3所示 。其 中加 速度和减 速度要根 据不 同的电机设 定, 如果它们 的值较 大, 则可 以较快地 到达 目的位置 , 有可能产生振荡 。如果它们 但
2 原 理 .
2 1 器件选择 . 传感器单元 :R 8 0 S红外线一体 化接 收头;普通 红 I M.6 1 外线发射管 。 驱 动单 元 :反 应式 步进 电机 ; A 8 5 S步进 电机专 用 B 64F 驱 动芯片 。
迷宫电脑鼠的设计报告
2、管脚定义如下:
3、通过L9110驱动芯片IA、IB输入的逻辑值的组合,不同高低电平的输入输出,控制电机正转、反转、停转。L9110的逻辑关系表如下表所示:
L9110逻辑关系
IA
IB
OA
OB
H
L
H
L
正转
L
H
L
H
反转
L
L
L
L
停止
H
H
L
L
停止
3.3
3.3.1
电脑鼠正常行走包括直走、左转弯、右转弯和向后转弯四个功能函数。这四个功能函数中要用到T0、T1定时/计数器;所以函数中首先初始化T0、T1。T0初始化:打开总开关EA=1;开T0中断ET0=1;设定T0模式2,8位自动重装值定时计数器TMOD&=0xf6; TMOD|=0x06;设定T0计数初值,定义中断脉冲数TH0=256-ICP;TL0=256-ICP;//启动T0计数TR0=1;T1初始化也是一样的。
传感器组是由38KHz的红外一体化接收头和红外发射管构成的障碍感测器。为了能够让传感器组正常工作,红外发射管需要一个38KHz的方波来驱动,使红外发射管发射出调制频率与接收头接收频率匹配的红外光。如图所示,是产生38KHz方波的载波发生器电路。
(4)传感器的调试
(主要写每组传感器如何进行调试。)
1、左右两边的传感器检测是否有墙壁。
sbit LED3=P0^2;
sbit LED4=P0^3;
sbit LED5=P0^4;
sbit LED6=P0^5;
sbit LED7=P0^6;
sbit LED8=P0^7;
//红外地址接口定义(74HC138译码器
课程设计_老鼠走迷宫[1]
HUNAN CITY UNIVERSITY 数据结构课程设计报告设计题目:老鼠走迷宫专业:计算机科学与技术学生姓名:邓宇班级学号: 0906401-23指导教师:杨格兰、胡奇光2011 年 6 月 18 日一、设计时间2011年6月20日——24日二、设计地点湖南城市学院第一实验楼计算机系机房509三、设计目的1.培养实际工作所需要的动手能力,进一步熟悉基本概念;2.熟练掌握对实际问题的抽象技能,了解程序基本的流程;3.培养查阅资料,独立思考问题的能力。
四、设计人邓宇五、指导老师杨格兰、胡奇光六、设计课题老鼠走迷宫开发环境:Visual Studio 2010 Ultimate UML Activity DiagramVisual C # 2008 Express EditionsAdobe Photoshop CS4七、基本思路及关键问题的解决方法技术要求:程序开始运行时显示一个迷宫地图,迷宫中央有一只老鼠,迷宫的右下方有一个粮仓。
游戏的任务是使用键盘上的方向键操纵老鼠在规定的时间内走到粮仓处。
要求:1、老鼠形象可辨认,可用键盘操纵老鼠上下左右移动;解决方案:老鼠图片形象可以用Photoshop来制作,通过键盘按键事件发送消息到对象(老鼠),实现老鼠的移动。
2、迷宫的墙足够结实,老鼠不能穿墙而过;解决方案:在老鼠每一步的移动中检测是否撞墙,若是则停止走动。
由于地图是图片,要检测就需要取出墙壁那点的颜色(显然不是白色),然后作比较来作碰撞检测。
3、若老鼠在规定时间内走到粮仓处,提示成功,否则提示失败;解决方案:加载定时器,设定60秒钟,若在规定的时间,及时间变成0时,弹出对话框提示用户游戏失败。
4、添加编辑迷宫功能,可修改当前迷宫。
解决方案:备用一张地图图片资源,可以用于更换地图。
八、算法及流程图Visio流程图:因为这是面向对象而非面向工程的程序设计,事件和判断都具有同时性和并发性。
UML建模图如下:九、调试过程中出现的问题及解决方法本次课程设计出现最严重的问题是通过键盘来如何控制对象(老鼠)的移动,刚开始做时试用了多种方法但是没有效果。
电子老鼠闯迷宫
一、实习问题:电子老鼠闯迷宫二、问题描述:有一只电子老鼠被困在如下图所示的迷宫中。
这是一个7*7单元的正方形迷宫,黑色部分表示建筑物,白色部分是路。
电子老鼠可以在路上向上、下、左、右行走,每一步走一个格子。
现给定一个起点start和一个终点finish,求出电子老鼠最少要几步从起点走到终点。
三、问题分析:该问题可用分支限界法来解决。
迷宫问题的解空间是一个图。
解此问题的队列式分支限界法从start开始将它作为第一个扩展结点。
与该扩展结点相邻并且可达的方格成为可行结点被加入到活结点队列中,并且将这些方格标记为1,即从起始方格start到这些方格的距离为1。
接着,算法从活结点队列中取出队首结点作为下一个扩展结点,并将与当前扩展结点相邻且未标记过的方格标记为2,并存入活结点队列。
这个过程一直继续到算发搜索到目标方格finish或活结点队列为空时为止。
在实现算法时,首先定义一个表示迷宫上方格位置的类Position,它的两个私用成员row 和col分别表示方格所在的行和列。
在迷宫的任何一个方格处,电子老鼠可沿右、下、左、上4个方向进行。
沿这4个方向的移动分别记为移动哦0,1,2,3。
在表中,offset[i].row和在实现上述算法时,用二维数组grid表示所给的方格阵列。
初始时,grid[i][j]=0,表示该方格允许走;而grid[i][j]=1表示该方格被封锁,不允许走。
为了便于处理方格边界的情况,算法在所给方格阵列四周设置一道“围墙”,即增设标记为“1”的附加方格。
算法开始时测试初始方格与目标方格是否相同。
如果这两个方格相同,则不必计算,直接放回起始位置标记为2。
由于数字0和1用于表示方格的开放或封锁状态,所以在表示距离时不用这两个数字,因而将距离的值都加2。
实际距离应为标记距离减2。
算法从起始位置start开始,标记所有标记距离为3的方格并存入活结点队列,然后依次标记所有标记距离为4,5…..的方格,直至到达目标方格finish或活结点队列为空时为止。
电脑鼠走迷宫实验报告附程序
东南大学第二届IEEE标准电脑鼠走迷宫竞赛电脑鼠原理及其应用机电动力试验平台第二届IEEE标准电脑鼠走迷宫竞赛论文东南大学第二届IEEE标准电脑鼠走迷宫竞赛电脑鼠原理及其应用机电动力试验平台目录一.软件程序框图 (3)二.参赛软件研发过程 (4)三.软硬件调试过程 (4)四.各组员分工 (4)五.体会心得 (5)附录 (6)参考书目 (9)软件程序框图东南大学第二届IEEE标准电脑鼠走迷宫竞赛电脑鼠原理及其应用机电动力试验平台参赛软件研发过程在void main()函数中,采用压栈的方式进行电脑鼠搜索,数组uint8 GmcCrossway[MAZETYPE*MAZETYPE]用于暂存未走过支路坐标。
数组uint8 GucMapBlock[MAZETYPE][MAZETYPE]记录每个点的地图信息,初始化为0x00。
函数void mouseGoahead(int8 cNBlock)、void mazeSearch(void)、void mouseTurnleft(void)、东南大学第二届IEEE标准电脑鼠走迷宫竞赛电脑鼠原理及其应用机电动力试验平台void mouseTurnright(void)、void mouseTurnback(void)和void objectGoTo(int8 cXdst, int8 cYdst)控制电脑鼠的运动状态。
void mapStepEdit(int8 cX, int8 cY)为制作等高图函数,它把记录等高值的数组uint8 GucMapStep[MAZETYPE][MAZETYPE](初始化为0xff)赋值。
当电脑鼠搜索时无方向可走时就按照这个等高图的信息退回上个点,冲刺时也是一样的道理。
另外,为了缩短转弯时间,并且保证电脑鼠的稳定性,采取转弯时整步,直走时半步。
我们在Mouse_Drive.c文件中,加入全局变量int8 maincheck,初始化为0(其中0为不转弯,1为转弯)。
基于ARM的走迷宫电脑鼠的设计与实现
基于 A R M 的走 迷 宫 电脑 鼠的设 计 与实 现
基于 A R M的走迷宫电脑鼠的设计与实现
De s i gn a n d I mpl e me n t i n g o f Ma z e -r u n n i n g Mi c r o mo u s e Ba s e d o n ARM
bl oc k, i n f r ar e d d et e c t i on mo dul e a nd mo t o r c on t r ol mo dul e, e t c. T he s o f t wa r e mo dul e wa s c on s i s t e d of u n de r l y i ng dr i v e r p r o — gr am r ea l i z i n g s ome ba s i c f u n c t i on s o f t he m i cr omou s e a n d t o p i n t el l i g en c e al go r i t h m. On e s i mpl e al go r i t h m o f m a z e—r u n — n i n g mi c r o mou s e was pr op os e d ac c or di n g t o a dv an c ed n omo gr a ph y an d ce n t r al dog ma Th e a l go r i t h m wi t h t o w c om p l e x i t y wa s s i mpl e a nd ea s y t o ac h i e v e p r o gr a m mi n g
弯、 加 减 速 和 制 动 等基 本 功 能 。
基于向心法则的电脑鼠走迷宫算法设计与优化
l 引 言
迷 宫电脑 鼠的概念最早 由 IE p c u 杂志在 E E S et m r
传统 算法最 基本 的是深度搜 索和广度 搜索【, 统算 7传 】 法存在搜 索效率 不高的 问题, 很多情况下 都有可能 在 会遍历 整个迷 宫才 能找到解, 以许多人在传 统算法 所 的基础 上,进 一步改善 这些算法,经过 改进后 的算法 有 Fo d i 算法【、 i s a 【等, l l o Fl 8 D i t ’’ 这些算法在搜索效 1 k r s】
21 0 2年 第 2 卷 第 9期 1
ht:w . s .r. t / wwc - ogc v/ -a n
计 算 机 系 统 应 用
基于 向心法则的 电脑 鼠走迷宫算法设计与优化①
贺 少波,孙克
( 南 大 学 物 理 与 电 子学 院,长 沙 4 0 8 ) 中 10 3 Nhomakorabea摘
要:电脑 鼠是一个集 自主迷宫搜索 、搜索完后最短路冲刺 、传感与控制于一体 的 自主移动机器 人系统. 具体
7 O年 代提 出,就是使用嵌入式微控制器 、传 感器 和机 电运 动部件 构成 的一种 智能行走 装置,可 以在” 宫” 迷
中 自动记 忆和选 择路径 , 找 出 口,最终达 到所 设的 寻
目的地川.目前 电脑 鼠走迷 宫 比赛在许 多 国家都很 受
关注,迷宫 电脑 鼠在我国起 步较晚, 到 2 0 直 0 7年才在
wef u dt a e ta eh d i e ye c e tm a es a c l o ih o n h tt c n r l t o sav r f in z e r h ag rt m he m i
Ke y wor s mir - u e ma es a c a t n mo smo ier b t c n l t o d : c o mo s ; z e rh; u o o u b l o o ; e  ̄a h d me
一种走迷宫电脑鼠的设计与实现
I
●… .ห้องสมุดไป่ตู้
电 机 控 制 于系 统
… … …
— ●
I
图 1系统 硬件 结 构图
电源包括 电池组和 电压调节 电路 。电池组采用 4节 AA
电池 , 使 用 25 .T 型 插 座 , 电压 调 节 电 路 采 用 Sp x公 司 . 2 4  ̄e 生 产 的 S 6 4A 芯 片¨, 该 芯 片 是 一 个 极 低 静 态 电流 、 高 P6 1 J
技 术交 流
微 型 电脑 应 用
20 0 8年 第 2 4卷 第 9期
种 走 迷 宫 电脑 鼠 的设 计 与 实 现
朱姗 傅 或哲 吴 忠 丽 王伟 仇 润鹤
摘
要 :该 文介绍 了一种基 于AR 嵌入 式的电脑 鼠,主要 由 电源、传感子 系统、 电机控制 子系统、微控制 器单元等功能模 M
C r x 3 理 器 L 3 12 主 控 制 器 , 控 制 和 检 测 红 外 传 ot M 处 e M S 0为 感 器 ; 控 制 器 根 据 检 测 到 的传 感信 号 , 制 电机 驱 动 电路 , 微 控 调 整 行 走 ,按 照 载 入 算 法 进 行 迷 宫 的 探 测 ,寻 找 最 短 路 径 , 最 终 实 现 从 起 点 到终 点 的冲 剌 。
块 组 成 , 中对 各 个 模 块 的工 作 原 理 , 别 从 硬 件 结构 、 件 流 程 二 个 主 要 环 节 对走 迷 宫 的 电脑 鼠 实现 过程 进行 深 入 的说 明 , 文 分 软 并在 算 法 方 面 对 传 统 的 中左 法 则进 行 了改 进 , 于 泛 洪 算 法 的 思 想 , 合 向心 法则 , 出 了一 种 简单 的 电脑 鼠走 迷 宫 的 算 法 , 基 结 提 仅 用 一 个 一 维 数 组 就 可 以记 录迷 宫 的 全部 信 息 , 具 有 较 低 的 复杂 度 , 易 于 实 现 编程 ,本 设 计 有 较 广 泛 的 发展 应 用 前 景 。 关 键 词 :嵌 入 式 ; 电脑 鼠 ; 中左 法则 ; 泛 洪 算 法 中图分 类号 :T 3 9 P 9 文件标识码 :A
电老鼠走迷宫算法
摘要 摘 要 一种电脑鼠走迷宫的算法■ 上海商学院 张新谊─────────────────────────────────────────────────────────────────电脑鼠(Micromouse )实际上是一个由微处理器控制的,集感知、判断、行走功能于一体,能够自动寻找最佳路径到达目的地的小型机器人。
国际电工和电子工程学会(IEEE )每年都要举办一次国际性的电脑鼠走迷宫竞赛。
本文介绍一种能满足IEEE 学会颁布规则的电脑鼠走迷宫算法。
───────────────────────────────────────────────────────────────── 关键词 运行时间 迷宫时间 碰触 排障时间─────────────────────────────────────────────────────────────────电脑鼠的英文名称为Micromouse ,实际上是一个由微处理器控制的,集感知、判断、行走功能于一体,能够自动寻找最佳路径到达目的地的小型机器人。
它可以在“迷宫”中自动感知并记忆迷宫地图,通过一定的算法,寻找一条最佳路径,以最快的速度到达目的地。
1997年,在美国举办了第一届电脑鼠竞赛,随后,电脑鼠竞赛传入欧洲,首届欧洲电脑鼠竞赛于1980年在伦敦举办,之后英国的电脑鼠比赛便由电子工程协会(IEE )主办。
1980年11月日本电脑鼠协会(JMA )在东京举办了第一届竞赛,此后,日本每年都要举办一届电脑鼠竞赛。
我国台湾也于1986年10月举办了首届电脑鼠比赛。
现在国际电工和电子工程学会(IEEE )每年都要举办一次国际性的电脑鼠走迷宫竞赛,各国选手报名踊跃,主要是大学生,为此部分大学还开设了“电脑鼠原理和制作”选修课程。
由于电脑鼠要由参赛选手自己设计制作,不仅要求选手具有嵌入式系统应用﹑传感器﹑控制技术等多方面的知识、经验和实践能力,还要求具有编写寻找最佳路径算法的能力。
老鼠走迷宫问题python课程设计
老鼠走迷宫问题python课程设计一、课程目标知识目标:1. 学生能理解迷宫问题在算法中的应用,掌握利用Python进行迷宫路径寻找的基本算法。
2. 学生能够掌握利用循环和条件语句来控制程序流程,解决迷宫问题。
3. 学生能理解二维列表的使用方法,并将其应用于表示迷宫结构。
技能目标:1. 学生能够运用Python编程语言,设计并实现一个解决老鼠走迷宫问题的程序。
2. 学生能够通过调试程序,找出并修正代码中的错误,提高问题解决能力。
3. 学生能够运用算法思维,将复杂问题分解为简单步骤,逐步解决。
情感态度价值观目标:1. 学生在课程中培养解决问题的兴趣,增强对编程和算法的热爱。
2. 学生通过合作学习,培养团队协作能力和沟通能力。
3. 学生在解决迷宫问题的过程中,培养面对困难勇于挑战、不断尝试的精神。
课程性质:本课程为Python编程的实践应用课,通过解决迷宫问题,让学生在动手实践中掌握编程技能和算法思维。
学生特点:学生具备基本的Python编程知识,对算法有一定了解,具有较强的逻辑思维能力和好奇心。
教学要求:课程要求学生在理解迷宫问题的基础上,通过编程实践,掌握相关知识点,实现课程目标。
在教学过程中,注重培养学生的动手能力、问题解决能力和团队协作能力。
通过分解课程目标为具体的学习成果,为教学设计和评估提供依据。
二、教学内容1. 迷宫问题基本概念:介绍迷宫问题的定义、分类以及在计算机科学中的应用。
- 教材章节:第二章 算法与程序设计,第三节 算法应用实例。
2. Python编程基础回顾:回顾循环、条件语句、列表等基本知识,为解决迷宫问题打下基础。
- 教材章节:第一章 Python语言基础,第二节 控制结构;第三节 数据结构。
3. 二维列表表示迷宫:讲解如何使用二维列表来表示迷宫结构,以及如何进行路径查找。
- 教材章节:第二章 算法与程序设计,第二节 数据结构进阶。
4. 迷宫问题求解算法:介绍深度优先搜索、广度优先搜索等基本算法,并分析其在迷宫问题中的应用。
一种电脑鼠走迷宫的算法
!" #$ 阻$ 断
在电脑鼠试跑过程中或在最后冲刺时, 需要对部分路 径进行 “ 阻断” , 即在发现某条路径是死路 ( 只有入口而无 出口) 时, 在该路径的入口处 ( 一般是交叉点) 设置标记, 即将入口的线路标记由 < 改为 / 。
!" %$ 试$ 跑
试跑是获得 迷 宫 地 图 ( 各 单 元 路 线 标 记) 的唯一方 法, 因此在规则允许的情况下, 应尽可能多地获取迷宫信 息, 为最后冲刺作准备。在试跑过程中, 除了要对经过的 单元进行线路标记外, 还要选择一种合适的探测策略。
!" ’$ 等高表
经过有限次的探测、 阻断和补全以后, 可以得到描述 迷宫图线路的二维表。虽然不是全部, 但已经是部分或大 部分, 其中可能包含了若干条可以到达终点的路径。为了 寻找到达终点的路径, 需要制作等高表。等高表是指已探 测的各单元距离起点的步数 ( 一个单元为一步) , 起点的 步数为 / 。
!" &$ 数据补全
由于不可能将所有的单元均探测到, 在有了一定的数 据基础上, 就可以实现 “ 数据补全” 了。数据补全就是对 未探测到的单元, 通过周围已有的相数据来进行补充的一 种方法。首先要寻找单元数据为 CCD 的单元, 如果该单 元的东、 西、 南、 北 A 个相邻的单元均为非 //D 或 CCD, 则 分析 “ 东” 、 “ 西” 和 “ 南” 、 “ 北” A 个单元的二组数据, 看是 否有指向该单元的可行方向。如果有, 则在该方向是相通 的, 可对数据进行大胆的假设。
!# %" 竞赛的规则
电脑鼠的基本功能是从起点开始走到终点, 所花费的 时间称为 “运行时间” 。电脑鼠从第一次激活到运行开始所 花费的时间称为 “迷宫时间” 。电脑鼠在比赛时手动辅助的 动作称为 “碰触” 。竞赛使用这 D 个参数来进行评分。 电脑鼠的得分通过计算每次运行的 “ 排障时间” 来衡 量, 即将迷宫时间加上一次运行时间的 B < D% 。如果被碰 触过, 那再减去 B% ., 这样得到的就是排障时间。电脑鼠 在迷宫中停留或运行的总时间不可超过 B’ ,5/ , 在限时内 允许运行多次。 如果进入迷宫是为了进行探测和记忆, 则这次运行就 称为 “ 试跑” ; 如果进入迷宫是根据先前的记忆和经验, 按 照智能算法确定最佳路径, 并以最快的速度到达目的地, 则这次运行就称为 “ 冲刺” 。
课程设计报告--电脑鼠走迷宫
天津职业技术师范大学Tianjin University of Technology and Education课程设计专业班级:应电0814学生姓名:乔伟 09 李月 19 华焱建 43指导教师:刘新月系别:电子工程学院目录1 电脑鼠走迷宫 (1)1.1电脑鼠技术指标 (1)1.2电脑鼠方案论证及选择 (1)1.2.1核心控制器 (1)1.2.2传感器 (1)1.2.3电动机 (1)1.2.4电源 (1)1.3电脑鼠总体电路图 (2)1.4电脑鼠系统组成框图 (2)1.5电脑鼠单元电路设计 (2)1.5.1传感器单元 (2)1.5.2步进电机驱动单元 (3)1.5.3电源单元 (4)1.6运动算法设计 (5)1.7迷宫坐标信息采集算法 (5)1.8迷宫算法 (7)1.9测试结果分析及改进 (8)1.10总结 (8)2 智能电梯控制系统 (9)2.1主要技术指标 (9)2.2方案论证及选择 (9)2.3系统组成框图 (9)2.4单元电路设计 (10)2.4.1单片机最小系统模块 (10)2.4.2开关控制模块 (11)2.4.3电机驱动模块 (11)2.4.4液晶显示模块 (11)2.4.5报警模块 (12)2.4.6 电路总图 (13)2.5软件流程图以及任务描述 (13)2.6元件清单 (14)2.7 调试过程 (15)2.8总结 (15)参考文献 (16)附录1 电梯代码 (17)附录2 个人总结 (28)1电脑鼠走迷宫1.1电脑鼠技术指标依据IEEE标准迷宫构建相应数据结构,结合数据结构进行迷宫搜索算法的设计;分析电脑鼠硬件需求进行产品选型,构建硬件平台;实现电脑鼠自动搜索迷宫,从中选出最佳路径进行冲刺的功能。
1.2电脑鼠方案论证及选择1.2.1核心控制器基于所需完成任务要求我们知道,电脑鼠核心控制器需要有很快的信息处理速度。
那么,普通的8位单片机不能满足快速处理的条件,不能胜任任务。
为了实现高速信息处理,采用由Liminary公司生产的LM3S615控制器,该控制器是以ARM-Cortex-M3为内核的32位SOC系统,拥有50-MHz工作频率,可以胜任任务所要求的高速信息处理能力。
电脑鼠算法.
3) 回溯
3) 回溯
3) 回溯
3) 回溯
3) 回溯
3) 回溯
3) 回溯
3) 回溯
3) 回溯
3) 回溯
3) 回溯
3) 回溯
3) 回溯
3) 回溯
3) 回溯思考题——N皇后问题
• 在一个N*N的棋盘 上放置N个皇后,且 使得每两个之间不 能互相攻击,也就 是使得每两个不在 同一行,同一列和 同一斜角线上。
寻优: 队列(建立等高表)、栈(记录最优路 径)
1) 栈
• 操作特点:先进后出(Last In First Out, LIFO)
• 结构特点:只允许一端插入、查看和删除,不允许对另 一端的操作
• 概念:
• 栈顶(入栈、出栈) • 栈底(固定,无操作) • 空栈
1) JAVA中栈的实现
• 类 Stack<E>实现
传感 器
软件 设计 驱动 装置
关键 技术
机械 结构 处理 器
二、电脑鼠迷宫竞赛
目的
电脑鼠走迷宫竞赛的目的是制作一个微型机器人, 它能在最短的时间内穿越迷宫到达终点。参赛的机器人 称为“电脑鼠”,将电脑鼠放入迷宫并启动操作的人称 为“操作员”。
迷宫的规范
1) 迷宫由16×16个﹑18cm×18cm大小的正方 形单元所组成。 2)迷宫的起始单元可选设在迷宫四个角落之中的 任何一个。起始单元必须三面有隔墙,只留一个出口。
各阶段所用的算法
寻路: 回溯 遍历: 回溯 寻优: 广度优先遍历
4) 广度优先
• 特点:横向优先遍历
• 步骤一:先将跟结点入队列; • 步骤二:取队头元素,遍历队头元素的所有子结点,并 将所有子结点加入队列; • 步骤三:重复步骤二,直至找到所求结点,或者队列为 空。
一种新颖的电脑鼠走迷宫算法研究
是 最 优 解 且 搜 索 效 率 低 。 很 多 情 况 下 需 要 遍 历 整 个 迷 宫 才
能 够 找 到 终 点 ,针 对 以 上 算 法 所 存 在 的 问 题 ,本 文 提 出 一 种
经 过 改 善 和 优 化 后 的 融 合 算 法 — — 向 洪 算 法 ,此 算 法 建 立
在 向心 算 法 和 洪 水 算 法 的基 础 上 ,对 墙 壁 信 息 进 一 步 拓 展 , 减 少 了 搜 索 过 程 中 的 盲 目性 ,有 效 地 判 别 无 效 路 径 。向洪 算
间 ,在 每 次 运 行 结 束 后 都 会 获 得 一 个 数 值 ,最 终 成 绩 为 数 值 最 小 的T 竞 赛 的最 终 成 绩 由运 行 速
度 、迷 宫 求 解 效 率 和稳 定 性 三 个 方 面 确 定 。搜 索 阶段 获 取 的迷 宫 信 息 量 越 充 分 ,进 行 路 径 的预 判 越 精 准 。选 取 的路 径 越 有 效 ,对 冲 刺 阶段 最 优 路 径 的 选 择 就 越 有 利 。前 提 是 电 脑 鼠 足 够 稳 定 。因 此 迷 宫 搜 索 算 法 的设 计 和优 化 目标 是 使 电脑 鼠稳 定 的 在 短 时 间 内 探 寻 到 尽 可 能 全 面 的迷 宫 墙 壁 资 料 .利 用 搜 索 的迷 宫 信 息 做 出准 确 的决 策 分 析 和最 优 路 径 判 断 。 向洪 法则 就 是 针 对 以 上 目标 的 一 种迷 宫搜 索 优 化 和 实 现 算 法 。
时 间 。
1.电脑 鼠走 迷 宫 的理 论 基 础 与 迷 宫 建 模
1.1电脑 鼠走 迷 宫 的 理 论基 础 “电脑 鼠”走迷 宫竞 赛 的 任 务 是 电脑 鼠在 千 变 万化 的 未 知
一种电脑鼠走迷宫算法的设计与实现
代表的绝对方向 上方 右方 下方 左方
当有超过一条路可以走时, 则执行多路程序。 多路程序需 准则可以包括格子走过的次数 、 位差 要根据一些准则选择路径, 值、 直走还是拐弯等。 如果电脑鼠有两个或三个可选方向, 首先要判断的准则是 相邻格子是否走过, 这可以通过该格子的隔墙资料来确定 。 一 种可能性是至少有一个格子没有走过 。 这样的话, 电脑鼠选择 的下一个格子应该是没有走过的格子 。但是如果有超过一个格 子未走过, 则需要根据位差值进一步决定 。 位差值准则是通过 选择具有最小位差值的相邻格子作为可选路径的方法 。如果有 两个格子具有相同的最小位差值, 则选择直走。 向前移动比左 右转弯的优先级要高, 这是因为电脑鼠直走比转弯的速度更快 。 另一种情况是所有的格子都走过, 电脑鼠则选择相邻格子中走 过次数最小的格子进入 。若相邻格子走过的次数相同则再判断 位差值, 若还相同的则选择直走 。
为了让电脑鼠记住所走过的各个迷宫格的信息, 需要使用 坐标对 256 个迷宫进行编号。 规定以电脑鼠放到起点时的方向为参照, 此时电脑鼠的正 前方为 Y 轴正方向。迷宫格与坐标的对应关系如图 1 所示。 根据坐标的定义和比赛规则可知, 电脑鼠的起点可在迷宫 的四个角落的点上, 但是无法确定起点的具体坐标 。 解决方法 是根据电脑鼠第一次检测到的转弯口是在右方还是左方判断 。 如果电脑鼠第一个检测到的拐弯口是在它的右方( 迷宫的四个 0 ) 点出发; 如果 角落中有两个角落是这种情况) , 那么它从( 0 , 第一个检测到的拐弯口在它的左边( 迷宫的四个角落中有两个 0 ) 出发。 那么它从( 15 , 角落是这种情况) ,
基于向心法则的电脑鼠走迷宫算法设计与优化
计 算 机 系 统 应 用 2012 年 第21卷 第 9 期80 研究开发 Research and Development基于向心法则的电脑鼠走迷宫算法设计与优化①贺少波, 孙克辉(中南大学 物理与电子学院, 长沙 410083)摘 要: 电脑鼠是一个集自主迷宫搜索、搜索完后最短路冲刺、传感与控制于一体的自主移动机器人系统. 具体设计和实现了基于向心法则迷宫搜索算法, 并对算法和迷宫搜索流程进行优化, 实验证明优化后的算法, 在保持原有算法高效的基础上具有更加好的局部效应, 相比同类型的算法, 优化后的向心法则是一种非常高效的迷宫搜索算法.关键词: 电脑鼠; 迷宫搜索; 自主移动机器人; 向心法则Design and Optimization of Micro-mouse Solving the Maze Algorithm Based on Central MethodHE Shao-Bo, SUN Ke-Hui(School of Physics and Electronic, Central South University, Changsha 410083, China)Abstract : Micro-mouse is an autonomous mobile robot(AMR) with self-maze search, the short sprint after the search, sensing and controller. In this paper, the maze search algorithm is designed and implemented based on the central method. The method and maze search process was optimized. Experimental results proved that the optimized algorithm improves on the efficient of the original method, and it has a better local effect. Finally, compared with other algorithms, we found that the central method is a very efficient maze search algorithm Key words : micro-mouse; maze search; autonomous mobile robot; central method1 引言迷宫电脑鼠的概念最早由IEEE Spectrum 杂志在70 年代提出, 就是使用嵌入式微控制器、传感器和机电运动部件构成的一种智能行走装置, 可以在”迷宫”中自动记忆和选择路径, 寻找出口, 最终达到所设的目的地[1]. 目前电脑鼠走迷宫比赛在许多国家都很受关注, 迷宫电脑鼠在我国起步较晚, 直到2007年才在我国上海地区举行了首届电脑鼠比赛[2]. 文献[1-3]给出了有关迷宫电脑鼠的比赛规则和要求.迷宫求解是一个经典求解问题, 现有的迷宫求解算法主要可以分为两大类, 传统算法及其改进的算法、新兴智能算法. 新兴智能算法如遗传算法[4]、 蚁群算法[5]、粒子群算法[6]等, 这类算法适用于解大型迷宫, 由于算法存在随机性, 得到的结果不一定是最优解;① 收稿时间:2011-12-20;收到修改稿时间:2012-01-17传统算法最基本的是深度搜索和广度搜索[7], 传统算法存在搜索效率不高的问题, 在很多情况下都有可能会遍历整个迷宫才能找到解, 所以许多人在传统算法的基础上, 进一步改善这些算法, 经过改进后的算法有Flood Fill 算法[8]、Djikstra’s [9]等, 这些算法在搜索效率上有了较大的提高. 向心法则算法[3][10]是一种新型的深广结合的迷宫搜索算法. 文献[3][10]指出了向心法则的思想, 即以指向迷宫中心的方向为优先的前进方向, 但文献[3]中算法只能以迷宫中心为中心, 局限性很大, 文献[10]中没有给出向心法则具体实现方法, 且算法中心为迷宫中心, 所以, 本文把向心法则的中心扩展为任意目标点, 并具体实现和对其进行优化. 现阶段的文献中都只提到如何从起点搜索到迷宫目标点, 并没有提及到达目标点后如何继续往回搜索, 并回到起点, 本文提出对迷宫进行回程二次搜索的概念,2012 年 第21卷 第 9 期 计 算 机 系 统 应 用Research and Development 研究开发 81以使所得到的解接近最优解.本文实验用的电脑鼠硬件是广州周立功单片机公司提供的MicroMouse615, 其微处理器是Luminary 公司生产的基于Cortex-M3内核的ARM 处理器——LM3S615, 具有许多优点, 在尺寸上也完全符合比赛要求[3].2 迷宫环境建模电脑鼠在迷宫中行走时必须知道自己的位置和行走方向, 因此需要建立坐标系对迷宫方格进行标记和定义电脑鼠行走的方向变量. 为了方便迷宫信息存储, 迷宫墙壁数据采用16*16矩阵表示, 并初始化为0, 电脑鼠每走到新的一格, 就要根据传感器的检测结果更新当前位置的墙壁信息, 这里采用数组MouseBlock[i][j]表示方格(i, j) 的墙壁信息, 其中bit0~bit3分别表示该方格上、下、左、右有无墙壁信息(1为有路, 即没有墙壁; 0为无路, 即有墙壁), 这样当电脑鼠到过某一格并记录墙壁信息后, 该坐标处墙壁信息肯定不为0, 这也可以作为是否到过某一节点的判断依据.设置迷宫方向变量MouseDir, MouseDir=0~3分别表示电脑鼠向上、右、下、左前进, 每当电脑鼠转动90度或180度, 方向变量MazeDir 就做相应的调整, 这样电脑鼠就始终能知道自己的前进方向. 当某个节点具有两个或三个可行方向时, 本文定义其为分支节点, 并入栈对其进行保存, 当该节点的两个或三个可行方向都走过时, 节点出栈. 可见, 当栈长度为0时全迷宫搜索完毕. 分支节点的保存是非常重要的, 当电脑鼠无路可走时, 得回到分支节点处继续搜索.寻找最优路径在整过迷宫搜索过程中非常重要, 当电脑鼠无路可走时, 则要选取一条最短路跑到最近的分支节点堆栈处继续迷宫搜索, 同时电脑鼠迷宫搜索完毕后还得计算出一条从起点到终点的最短路进行冲刺. 最优路径计算算法可采用文献[11]中的加权等高图法.3 向心法则实现及改进3.1 向心法迷宫搜索算法原理当电脑鼠处于某个坐标位置时, 首先检测墙壁, 获取墙壁信息, 统计电脑鼠的前方、左方和右方可行走情况, 当存在可行走方向时, 按照向心法则选择前进的方向, 并到达下一格. 向心法则是由右手法则、左手法则、中左法则和中右法则按照一定的规则有机组合起来, 使得搜索方向始终以目标点所在方向为最优方向, 属于启发式算法的一种.右手法则: 首先检测电脑鼠右边是否可行, 可行则右转, 否则检测前面是否可行, 可行则不转向, 否则左转;左手法则: 首先检测电脑鼠左边是否可行, 可行则左转, 否则检测前面是否可行, 可行则不转向, 否则右转;中右法则: 首先检测电脑鼠前面是否可行, 可行则不转向, 否则检测右边是否可行, 可行则右转, 否则左转;中左法则: 首先检测电脑鼠前面是否可行, 可行则不转向, 否则检测左边是否可行, 可行则左转, 否则右转;(a)向心法则策略(b)迷宫搜索演示图1 向心法则迷宫搜索向心法则在搜索策略上采用如图1(a)所示的方法(原始向心法则思想)进行, 以目标点(比如迷宫目标点计 算 机 系 统 应 用 2012 年 第21卷 第 9 期82 研究开发 Research and Development(7, 7))将搜索区域分成四部分, 在每个区域根据当前电脑鼠的行走方向决定搜索策略, 可见向心法则是始终以离中心最近的方向前进的. 图1(b)为采用向心法则迷宫搜索路径示意图, 电脑鼠近贴着目标点搜索, 寻找效率是非常高效的, 但如果(6, 9)处左侧挡板没有, 电脑鼠将错失进入终点的机会, 所以现在的向心法则也有需要优化的地方. 3.2 向心法迷宫搜索算法的优化如图2(a)所示, 如果此时电脑鼠搜索策略不进行调整的话, 电脑鼠由于处于右上方, 将采用中左法则, 即会前进一格到达(6, 9)处, 直接”忽略”终点, 由于入口只有一个, 错失后将要经过很多步才能再返回此处到终点, 这样使得搜索效率大大下降, 所以这里根据实践经验对向心法进行改进. 改进后如图2(b)所示, 当电脑鼠位于左上方、右上方和右下方如图2(b)所处的位置时, 且当电脑鼠的行走方向如图2(b)所示时, 对搜索法则进行调整, 由原来的中左法则、中右法则调整为左手法则、右手法则, 这样就可大大提高电脑鼠的局部搜索效率. 由于电脑鼠到达阴影处四个位置的任意一个即可判定为电脑鼠到达终点, 所以调整区域每次为2格, 在实际运行中, 目标点可能只有中心处一格, 则相应的调整区域为1格, 当然, 调整区域可以适当往外围扩展, 以增大调整区域, 无论如何, 调整后同样是以目标点方向为最优先方向, 且具有更好的局部效应.在实际迷宫中, 可能会有很多如图2(c)所示的U 型口, 当U 型口外墙壁三个位置墙壁信息已知, 则可以把该处墙壁信息预测出来, 减少无谓的搜索, 且电脑鼠在此类U 型口一进一出很容易碰壁出错, 即减少此类无谓搜索可提高电脑鼠运行的稳定性和搜索的高效性.根据比赛规则, 电脑鼠首先从起点出发, 找到目标点(图2(b)阴影)后再回到起点, 在实际比赛中, 可以在搜索到目标点后根据已知的迷宫信息直接计算出一条最短路回到起点, 这样做可以节省搜索时间, 但是由于只搜索了一条路, 往往这条路不是最短的. 为了提高迷宫搜索的有效性, 出发时应当以(7, 7)为中心进行向心法则搜索, 找到目标点后再继续往回搜索并回到起点. 这里往回搜索时可以以起点或前文所述的第一个分支节点为中心进行向心法则搜索, 当检测到往回搜索的路径与原来路径重合时, 直接回到起点准备冲刺.(a) 忽略点(b)搜索法则调整 (c)墙壁信息预测图2 算法改进示意图4 迷宫求解结果4.1 向心法则迷宫图3 向心法则迷宫搜索结果为了实际展示算法的性能, 本文搭建如图3所示的迷宫, 并模拟一次完整的比赛. 首先以迷宫终点之一(7, 7)为中心进行向心法则迷宫搜索, 电脑鼠判断已搜索到迷宫终点(图中黑点1处), 电脑鼠向后转, 并调整算法中心为第一个分支节点(1, 5), 即图中黑点2处, 继续利用向心法则进行迷宫搜索. 由于第一分支节点2012 年 第21卷 第 9 期 计 算 机 系 统 应 用Research and Development 研究开发 83在不同迷宫中所处位置一般不同, 可见本文对向心法则的改进能实现任一点为中心的向心法则搜索. 当电脑鼠到达(0, 6)时, 电脑鼠判断已和之前的路径连接起来, 此时直接回到起点, 利用加权等高图法计算出一条最短路准备冲刺到(7, 7), 冲刺完毕后回到起点, 即完成一次比赛. 利用本文向心法则, 电脑鼠的搜索结果如图3所示, 可见, 电脑鼠回程第二次搜索时搜到了一条更短的路. 4.2 与其它算法对比与其它迷宫搜索算法比较, 对图3所示迷宫进行起点到终点的搜索, 其搜索结果如表1所示. 左手法则、右手法则、中左法则和中右法则不属于启发式搜索算法, 所以其搜索效率也是最低的, 从表1中左手法则和右手法则的搜索结果来看, 搜到目标点所需的搜索时间最长, Djikstra ’s 搜索算法和Flood Fill 搜索算法是电脑鼠比赛中使用较多的算法, 它们的效率也是很高的, 从表1中可以看出, 两者搜索的步数和拐弯次数一样. 向心法则与这两者一样, 效率很高, 其搜索效率略优于Djikstra ’s 搜索算法和Flood Fill 搜索算法. 回程二次搜索后, 利用等高图法计算出冲刺时的最短路步数为23步, 拐弯数8次, 明显优于Flood Fill 和Djikstra ’s 的最短路49步和拐弯次数16次.需要指出的是, 在比赛中或实际情况下迷宫是随机的, 在不同的迷宫中, 不同的搜索算法搜索的路径一般是不相同的, 且效率也不一样, 也就是说两种不同的高效算法A 和B, 在这个迷宫中A 比B 搜到的路径短, 换个迷宫, 搜到的路径就可能变长, 也可能一样; 如果做的不是全迷宫搜索, 而只是部分的, 就无法保证所得的最短路是迷宫真正的最短路.5 结论本文研究和实现了基于向心法则的电脑鼠走迷宫算法, 并结合实验测试对其进行了优化, 提出了一些能提高比赛效率的方法. 与现有常用算法比较后发现, 本文算法在搜索步数、拐弯次数, 以及冲刺路径方面具有一定的优势. 实验测试表明, 优化后的搜索算法在保证原有算法高效的前提下, 能更好的处理一些特殊迷宫, 提高了算法效率和实用性.参考文献1 UK Micromouse Championship. UK Micromouse Hampion- ship Mieromouse Championship, 2006. http:// /micromouse/toh.asp2 IEEE 国际电工和电子工程学会.IEEE 电脑鼠(迷宫)竞赛规则和介绍.嵌入之梦.2009.htttp:/// xgzl/2007-08-28/24.html3 周立功.IEEE 电脑鼠开发指南.广州致远电子有限公司, 2008.4 王科俊,徐晶,王磊,张燕.基于可拓遗传算法的机器人路径规划.哈尔滨工业大学学报,2006,38(7):1135−1138.5 张美玉,黄翰,郝志峰,杨晓伟.基于蚁群算法的机器人路径规划.计算机工程与应用,2005,41(5):34−37.6 刘关俊.基于粒子群算法的移动机器人路径规划研究.长沙:中南大学,2007.7 张公敬,杨厚俊,刘征.注水法求解迷宫最优路径.计算机仿真,2007,24(8):171−208.8 Manoj Sharma, Kaizen Robeonics. Algorithms for Micro- mouse. International Conference on future Computer and Communication, 2009,(38):581−585.9 Mishra S, Bande P. Maze solving algorithms for micro mouse. IEEE International Conference on Signal Image Technology and Internet Based Systems, 2008,(104): 86−93.10 张新谊.一种电脑鼠走迷宫的算法.单片机与嵌入式系统的应用,2007,(5):84−85.11 王凤林,王宜怀.一种电脑鼠走迷宫算法的设计与实现.计算机应用与软件,2010,27(12):270−273.基于向心法则的电脑鼠走迷宫算法设计与优化作者:贺少波, 孙克辉作者单位:中南大学 物理与电子学院, 长沙 410083刊名:计算机系统应用英文刊名:Computer Systems & Applications年,卷(期):2012(9)本文链接:/Periodical_jsjxtyy201209018.aspx。
老鼠走迷宫的算法分析
一种电脑鼠走迷宫的算法电脑鼠走迷宫的算法1探测策略电脑鼠走迷宫可以采用全迷宫探索策略,即将迷宫的所有单元均搜索一次,从中找出最佳的行走路径。
这种策略需要有足够的时间或探测次数,但在IEEE竞赛规则中每场竞赛只有15分钟的时间,因此是不可能的。
另一种方法是部分迷宫探索策略,即在有限的时间或探测次数下,只探测迷宫的一部分,从中找出次最佳的路径,显然只能采用这种策略。
电脑鼠在一巷道内行走,如果最后无路可走,则该巷为死巷。
电脑鼠在任一单元内,可能的行走方向最多只有三个(前、左、右),如果有二个或二个以上的可能行走方向,称为交叉,遇有交叉时,由于有多个可以行走的方向,在行走方向的选择上,可有下面的几种选择法则:•右手法则:遇有交叉时,以右边为优先的前进方向,然后是直线方向、左边方向。
•左手法则:遇有交叉时,以左边为优先的前进方向,然后是直线方向、右边方向。
•中左法则:遇有交叉时,以直线为优先的前进方向,然后是左边方向、右边方向。
与此类似的还有中右法则。
•乱数法则:遇有交叉时,取随机值作为前进方向。
•向心法则:由于终点在迷宫的中心,遇有交叉时,以向迷宫中心的方向为优先的前进方向。
2标记为了记忆迷宫的详细信息,需要对迷宫单元的位置进行线路标记。
全迷宫共有16×16个单元组成,可采用二维坐标方式标记,即用每个单元的XY坐标表示,如起点可标记为(0,0),终点为(7,7)。
此外,还需要对迷宫单元的可行进方向进行标记,可采用绝对方位或相对方位二种方式。
绝对方位:这是一种与电脑鼠行进方向无关的标记方式,以一个四位的二进制数,分别表示“东”﹑“西”﹑“南”和“北”四个方向。
以1表示允许行进(无墙壁),0表示不允许行进(有墙壁)。
相对方位:这是一种与电脑鼠行进方向有关的标记方式,以一个三位的二进制数即可实现标记,分别表示“前”“左”“右”,以1表示允许(无墙壁),0表示不允许(有墙壁)。
3阻断在电脑鼠试跑过程中或在最后冲刺时,需要对部分路径进行“阻断”,即在发现某条路径是死路(只有入口而无出口)时,在该路径的入口处(一般是交叉点)设置标记,即将入口的线路标记由1改为0。
迷宫电脑小鼠实验报告
一、实验背景迷宫实验是心理学和神经科学领域常用的实验方法,用于研究动物的学习和记忆能力。
近年来,随着计算机技术的不断发展,迷宫实验也逐步实现了电脑化。
本实验旨在利用迷宫电脑小鼠实验系统,研究小鼠在迷宫中的行为特征,以及其学习记忆能力。
二、实验目的1. 了解迷宫电脑小鼠实验系统的操作方法和原理。
2. 观察并记录小鼠在迷宫中的行为表现。
3. 分析小鼠的学习记忆能力,探讨影响因素。
三、实验材料1. 迷宫电脑小鼠实验系统:包括迷宫、电脑控制台、摄像头等。
2. 实验小鼠:体重20-25克,性别不限。
四、实验方法1. 迷宫电脑小鼠实验系统操作:将迷宫电脑小鼠实验系统连接到电脑,启动软件,设置实验参数,如迷宫形状、实验次数、时间限制等。
2. 实验步骤:(1)将实验小鼠放入迷宫入口,记录其进入迷宫的时间。
(2)观察并记录小鼠在迷宫中的行为表现,如逃避、探索、犹豫等。
(3)记录小鼠到达迷宫出口的时间,并计算其速度。
(4)重复实验多次,观察小鼠的学习记忆能力。
五、实验结果与分析1. 实验结果(1)实验小鼠在迷宫中的行为表现:在实验初期,小鼠表现出逃避、犹豫等行为,随着实验次数的增加,小鼠逐渐适应迷宫环境,表现出更快的速度和更准确的方向判断。
(2)实验小鼠的学习记忆能力:经过多次实验,小鼠的学习记忆能力得到显著提高。
在后期实验中,小鼠能够快速找到迷宫出口,且速度逐渐提高。
2. 分析(1)迷宫电脑小鼠实验系统能够有效地模拟真实迷宫环境,为研究小鼠的学习记忆能力提供可靠平台。
(2)实验结果表明,小鼠在迷宫中的行为表现与其学习记忆能力密切相关。
逃避、犹豫等行为可能表明小鼠在适应迷宫环境过程中存在困难,而随着实验次数的增加,小鼠逐渐适应迷宫,表现出更好的学习记忆能力。
(3)实验结果还表明,迷宫电脑小鼠实验系统具有良好的重复性和可靠性,可用于研究小鼠的学习记忆能力。
六、结论本实验通过迷宫电脑小鼠实验系统,研究了小鼠在迷宫中的行为表现和学习记忆能力。
老鼠走迷官(一) java,c实现
if(success != 1 && maze[i][j+1] == 0) visit(i, j+1);
if(success != 1 && maze[i+1][j] == 0) visit(i+1, j);
if(success != 1 && maze[i][j-1] == 0) visit(i, j-1);
{2, 0, 0, 0, 0, 0, 2},
{2, 0, 2, 0, 2, 0, 2},
{2, 0, 0, 2, 0, 2, 2},
{2, 2, 0, 2, 0, 2, 2},
{2, 0, 0, 0, 0, 0, 2},
{2, 2, 2, 2, 2, 2, 2}};
int startI = 1, startJ = 1; //入口
for(int j = 0; j < maze[0].length; j++)
if(maze[i][j] == 2)
System.out.print("█");
else
System.out.print(" ");
System.out.println();
}
Mouse mouse = new Mouse();
success = true;
if(!success && maze[i][j+1] == 0)
visit(maze, i, j+1);
if(!success && maze[i+1][j] == 0)
visit(maze, i+1, j);
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2. 2
迷宫搜索算法的设计
为了讨论方便, 这 里 使 用 位 差 值。 所 谓 位 差 值 就 是 格 子 ( cell) 距离迷宫中点的最小格子数, 目标的位差值是 0 。 每个格 子的位差值如图 2 所示。
图2
每个格子的位差值
当电脑鼠到达一个格子坐标时, 应该根据传感器检测结果 16] [ 16]来保 记录下当前格子的隔墙资料, 可以使用 mapblock[ 存整个迷宫隔墙资料, 表 1 所示隔墙信息的存储方式 。 隔墙资 0 , 即 料全部初始化为 凡是走过的迷宫格至少有一方没有隔墙, 隔墙资料不为 0 。这样就可以通过单元格存储的隔墙资料是否 为 0 来确定该单元格是否走过 。
表2 迷宫类型 Unpar Unpar Unpar ITB ITB 图4 死路示意图 算法性能比较 搜索步数 +∞ 60 56 +∞ 71 41
搜索算法 沿墙 DFS 位差值 沿墙 DFS 位差值
对于一些特殊的迷宫, 电脑鼠在搜索过程中, 若从某点出发 经过一些点又回到了该点则被标记为环 。可以通过算法来判断 该环是否为封闭循环路径 。 当电脑鼠到达某点, 发现该点以前 已经走过则检查前一个格子, 直到发现某个格子有多路选择 。 判断该格子是否为当前格子, 如果是, 则标记封闭循环路径内的 格子为死路; 如果不是, 则表明不是封闭循环路径 。 如图 5 所 B、 C、 D、 E、 F 和 G 组成了封闭循环路径。当电脑鼠从 G 到达 示, B 时, 因为检测到第二次经过 B, 则检测前一个格子 G, 发现格子 G 只有一路可以走, 并且只能移动到 B。重复检测以前的格子, 直到遇到有多路选择的格子, 即本例中是格子 B。 因为该格子 C, D, E, F 和 G) 是 所以可以得到格子( B, 是电脑鼠的当前位置, 设置这些格子的 marking 为真。 封闭循环路径, 通过标记死路和封闭循环路径, 该算法不会进入死循环或 确保了该算法的可行性 。 重复走过的路径,
表1 变量位 bit0 bit1 bit2 bit3 墙壁资料存储方式 备注 1 : 有路; 0 : 有墙 1 : 有路; 0 : 有墙 1 : 有路; 0 : 有墙 1 : 有路; 0 : 有墙 图3 根据位差值产生的一条路径
代表的绝对方向 上方 右方 下方 左方
当有超过一条路可以走时, 则执行多路程序。 多路程序需 准则可以包括格子走过的次数 、 位差 要根据一些准则选择路径, 值、 直走还是拐弯等。 如果电脑鼠有两个或三个可选方向, 首先要判断的准则是 相邻格子是否走过, 这可以通过该格子的隔墙资料来确定 。 一 种可能性是至少有一个格子没有走过 。 这样的话, 电脑鼠选择 的下一个格子应该是没有走过的格子 。但是如果有超过一个格 子未走过, 则需要根据位差值进一步决定 。 位差值准则是通过 选择具有最小位差值的相邻格子作为可选路径的方法 。如果有 两个格子具有相同的最小位差值, 则选择直走。 向前移动比左 右转弯的优先级要高, 这是因为电脑鼠直走比转弯的速度更快 。 另一种情况是所有的格子都走过, 电脑鼠则选择相邻格子中走 过次数最小的格子进入 。若相邻格子走过的次数相同则再判断 位差值, 若还相同的则选择直走 。
Abstract Micromouse is actually an autonomous mobile robot ( AMR) . The micromouse finds the optimal path to get to the destination area which is located in the center of labyrinth without any information of the layout. The whole process is an automatic search process. In this paper we studied and realised the potential valuebased path searching algorithm and contour mapbased optimal path algorithm,and also made the improvement on the ability of micromouse’ s tasks accomplishment. Keywords Maze solving algorithm Micromouse robot Potential value Contour map Optimal path
2. 6
实验测试搜索算法
为了评估该算法, 我们在同一迷宫里运行了三个不同的算
法, 即 沿 墙 的、 深 度 优 先 探 索 ( DFS ) 和 基 于 位 差 值 的 搜 索 算法
[5 ]
。
在德州仪器 Unpar 迷宫和 ITB 的迷宫测试中。 使用基于位 差值的搜索算法电脑鼠到达了目标点, 而使用其他两个算法会 导致不同的现象。沿墙算法未能使之到达终点, 而深度优先搜 索算法行驶距离更长。如表 2 所示。
[1 , 2 ]
竞赛的规则
。
电脑鼠的基本功能是从起点开始走到终点所花费的时间称 “ 。 电脑鼠从第一次激活到运行开始所花费的时 为 运行时间 ” “迷宫时间” 。电脑鼠在比赛时手动辅助的动作称为 “碰 间称为 触”
[1 - 3 ]
电脑鼠搜索路径应该是在没有人工干预的情况下自主完成 的, 也就是说, 需要运用搜索算法使电脑鼠自主行走 。搜索算法 根据电脑鼠当前的位置确定下一步, 以迅速到达 的主要目的是, 迷宫的中心并返回, 同时利用搜索迷宫时得到的隔墙信息找出 从起点到终点并返回的最优路径 。
2. 3
移动策略
电脑鼠的主要行为就是能够在各种不同情况的迷宫中作出
分别对应这三种处理程序: 死路程序、 单路 决定。有三种情况, 程序和多路程序。 当电脑鼠面对 3 面墙时, 需要执行死路程序。 死路程序会 marking 将当前所处格子的 标记为真, 表示下次搜索时不可进 并且电脑鼠向后转 180 度。如图 3 中点 G 所示, 电脑 入该格子, 鼠在 G 点面对上、 下和右 3 面墙。 当只有一条路可以走时, 执行单路程序。 单路程序会选择 唯一的可前进路径。如图 3 所示, 从 A 到 D, 从 D 到 E 和从 G 到 F 之前的一个单元格, 执行单路程序。
DESIGNING AND IMPLEMENTING A MAZE SOLVING ALGORITHM FOR MICROMOUSE
Wang Fenglin Wang Yihuai
( School of Compoochow University,Suzhou 215006 , Jiangsu, China)
1
1. 1
电脑鼠走迷宫的规则与流程
迷宫、 电脑鼠的规格
。在试跑时, 需要按照一定的算法得到隔墙信息, 并到达终 跑” 点, 即迷宫搜索算法; 在搜索结束后根据搜索所获得的隔墙信 按照最优路径算法确定最佳路径, 并以最快的速度到达目的 息, 。 冲刺后还可以继续多次试跑和 地, 这次运行被称为“冲刺 ” 冲刺。
0
引
言
电脑鼠必须自成独立系统 。 电脑鼠的长和宽限定在 25cm × 25cm。对电脑鼠的高度没有限制 。
1. 2
“电脑鼠” ( micromouse) , 所谓 是使用嵌入式微控制器 、 传感 器和机电运动部件构成的一种智能行走装置的俗称, 它可以在 “迷宫” 中自动记忆和选择路径, 寻找出口, 最终达到所设的目 的地
迷宫由 256 个方块( 单元) 组成, 每个方块的大小为 18 厘米 见方, 排成 16 行 × 16 列。迷宫的隔墙板沿方块的四周布设, 形 成迷宫通道。如图 1 所示。
2
迷宫搜索算法
当电脑鼠移动时, 电脑鼠要知道自己所处的位置, 因此首先
需要定义电脑鼠的坐标和方向, 然后设计基于位差值的搜索
收稿日期: 2009 - 04 - 05 。 王凤林, 硕士生, 主研领域: 嵌入式系统 图1 全迷宫结构 应用, 网络技术。
2. 4
死路的标记和封闭循环路径的避免
死胡同程序( 路 = 0 ) 。 图 4 中 D 点, 只有一条可能的路可 电脑鼠三面都围着墙时 。 单元格 D 被标记为真, 电脑鼠 以走, 向后转 180 度。当遇到死路时, 电脑鼠应该标记所有的属于该 H, J, N。 死路的格子。图 4 中被标记为死路的死路终点是 D, P— O, 属于死路的格子是 E—F, 和 K。一旦格子被标记为死路, 下一次电脑鼠经过该点时, 将不会把该点作为可选路径 。
第 12 期
算法
[4 ]
王凤林等: 一种电脑鼠走迷宫算法的设计与实现
271
。
2. 1
迷宫坐标和方向
达某个格子后, 该格子的 count 变量需要加 1 。 该变量在搜索算 法中选择路径时要用到 。 当电脑鼠处于某个格子时, 需要完成下面的操作: ① 检测是否到达过该格子 。 ② 通过传感器计算该格子可走的方向 。 ③ 根据该格子可走的方向数, 选择下一步走的方向。 ④ 检查封闭的循环路径和死路, 并更新相应的变量。 ⑤ 移动到下一个格子, 更新当前坐标。 ⑥ 根据坐标检测是否到达终点 。
第 27 卷第 12 期 2010 年 12 月
计算机应用与软件 Computer Applications and Software
Vol. 27 No. 12 Dec. 2010
一种电脑鼠走迷宫算法的设计与实现
王凤林 王宜怀
( 苏州大学计算机科学与技术学院 江苏 苏州 215006 )
摘 要 电脑鼠是一个自主移动机器人系统 。电脑鼠的任务是到达迷宫中心的目标区域 。 电脑鼠在不知道迷宫的布局情况下, 必须自己找出到达目标的最优路径 。整个过程是一种自主搜索的过程 。研究和实现了基于位差值的搜索算法和基于等高图的最优 并作出改进提高机器人完成任务的能力 。 路径算法, 关键词 迷宫搜索算法 电脑鼠机器人 位差值 等高图 最优路径