一个寻路算法的困惑

大板牙花生 2016-07-11 10:22:33
加精
废话不多说,先上图。

右边的黑色矩形部分是障碍,不能穿越。
左边的五边形是移动的AI。
上面两个小方格是网格。
线条是每次行走的路径轨迹。
图片的周围是边界,AI不可到达,障碍物也不可穿越 。

请问。如何保证AI的随机行走能取得上面的效果?

下面是我想到的方法
一是把上面的图片转换为一个无向图,通过寻路算法,随机找出一条途径。不足之处是需要对每个图进行标注,随着标注点的增多,算法的复杂性也上来了。
二是按照网格图进行转换,AI每行走一步,即要随机计算出下一步的路径,不足之处是走起来就跟残疾人一样,都是小碎步。
上面两个都感觉一般,太不好。

请大家给一个好点的解决办法,要满足,以下条件。
一是算法的时间复杂度比较低,最好是能和A*算法一样。
二是AI行走能像图中一样。
三是不需要人为的画出无向图的顶点。
四是图片是由上述的小网格构成的。

有点混乱。
...全文
3382 51 打赏 收藏 转发到动态 举报
写回复
用AI写文章
51 条回复
切换为时间正序
请发表友善的回复…
发表回复
shiter 2016-07-21
  • 打赏
  • 举报
回复
你要智能一些的话,人看这样的图片怎么走呢,先确定大致的方位,类似图片的下采样,完后朝着这个方向走? 这个确实不好弄,请忽略我
大板牙花生 2016-07-20
  • 打赏
  • 举报
回复
引用 49楼seperator 的回复:
初始随机速度,经过区块随机加速度,这样就好了。
求详细的指点
seperator 2016-07-20
  • 打赏
  • 举报
回复
初始随机速度,经过区块随机加速度,这样就好了。
  • 打赏
  • 举报
回复
引用 2 楼 wter26 的回复:
[quote=引用 1 楼 wanren13 的回复:] 没有完全看懂题目的描述。。。 A*不可以吗?
A*不可以,因为本质不是寻路。起始定点确定了,但是目标定点没有确定。 并且还有一个问题就是如果按照网格遍历所有的话,算法的复杂度太高,而且走起来的路径达不到上面那个效果。[/quote] 那就开始的时候定几个目标点吧,随机地前进到某个目标点,在随机前进到另一个。
ooolinux 2016-07-19
  • 打赏
  • 举报
回复
引用 46 楼 wter26 的回复:
引用 45楼转角天边 的回复:
随机选一个方向,一直走,碰到障碍,再随机一个方向一直走???
对 但是要走的智能一些
不加一点控制,怎么能按你的大概路线走得智能呢?机器的智能都是人工算法的结果。
大板牙花生 2016-07-19
  • 打赏
  • 举报
回复
引用 45楼转角天边 的回复:
随机选一个方向,一直走,碰到障碍,再随机一个方向一直走???
对 但是要走的智能一些
losecy1994z7z8 2016-07-15
  • 打赏
  • 举报
回复
学习一下。。
qq_29604805 2016-07-15
  • 打赏
  • 举报
回复
红外线感应,障碍识别,嵌入式的东西
qq_32142911 2016-07-15
  • 打赏
  • 举报
回复
我的第一反应也是蚁群寻址算法
转角天边 2016-07-15
  • 打赏
  • 举报
回复
随机选一个方向,一直走,碰到障碍,再随机一个方向一直走???
qq_30621071 2016-07-15
  • 打赏
  • 举报
回复
。。。。。。
qq_35601429 2016-07-14
  • 打赏
  • 举报
回复
马克,学习一下
wushuang443 2016-07-14
  • 打赏
  • 举报
回复
马克,学习下。增长思维。
sinat_23382995 2016-07-14
  • 打赏
  • 举报
回复
马克,学习下
NoEdUl 2016-07-14
  • 打赏
  • 举报
回复
引用 19 楼 wter26 的回复:
[quote=引用 18楼Sin是我是我 的回复:]我做过一个类似的机器人。 机器人在迷宫里,迷宫内有物件,机器人在迷宫巡逻,找到物件送回原点。 我理解题主的要求,也是一个避障的巡逻算法对吧,而且不能运用需要大量运算能力的算法,所以说机器学习类的全部排出了,甚至我当时使用的surf这都不能用了(不过也没事,我用surf只是抓捕物件和识别特殊房间,这里不需要抓捕)。 这个我觉得还是要人为设置四个角为终点,每次决策时候往四个方向中的一个方向靠近,到达后再选取一个方向出发再巡逻一次。
对 就是类似这样的 求解相关的学习资料[/quote] 我当时那门课上了半年,真心觉得课上教的各种算法运用不到这个迷宫来... 后来还是靠自己造轮子...倒是这个障碍的避障算法你可以研究一下。 凸面障碍的话,碰到障碍于点A,沿着障碍走一圈并且记录每一个点到A的距离,直到回到点A,再回到某个距离点a最远的点b,再往目标方向出发。
大板牙花生 2016-07-14
  • 打赏
  • 举报
回复
引用 18楼Sin是我是我 的回复:
我做过一个类似的机器人。 机器人在迷宫里,迷宫内有物件,机器人在迷宫巡逻,找到物件送回原点。 我理解题主的要求,也是一个避障的巡逻算法对吧,而且不能运用需要大量运算能力的算法,所以说机器学习类的全部排出了,甚至我当时使用的surf这都不能用了(不过也没事,我用surf只是抓捕物件和识别特殊房间,这里不需要抓捕)。 这个我觉得还是要人为设置四个角为终点,每次决策时候往四个方向中的一个方向靠近,到达后再选取一个方向出发再巡逻一次。
不是很懂。。。
cattpon 2016-07-14
  • 打赏
  • 举报
回复
马克一下~继续学习~
红衣老大 2016-07-14
  • 打赏
  • 举报
回复
虽然不懂 但这不就是 扫地机器人么
满天飞的鱼 2016-07-14
  • 打赏
  • 举报
回复
膜拜一下,虽然看的不是太明白
qq_35604317 2016-07-14
  • 打赏
  • 举报
回复
经济环境结果
加载更多回复(25)
【资源简介】 基于蚁群算法实现寻找最优路径matlab源码+项目说明+超详细注释.zip 与Dijkstra算法使用相同的地图。 每只蚂蚁都从起点出发,直到抵达终点。这与Example5_1.m 中解决旅行商问题不一样,旅行商问题中每一代的蚂蚁都是随机从一个节点出发。 文件说明 Example5_1.m 简单对参考资料2中的代码进行重现; ACA.m 对参考资料1中的代码进行重现,并适当优化代码且修改错误,错误如下: ![错误1](./imgs/1.jpg) 计算P(2,k)有问题,neighbor已经删除了不可访问节点,所以neighbor中节点的索引号和nodes_data{node_step, 4}索引号不是一一对应关系,应该先找到对应的索引号。 修正: ![修正1](./imgs/2.jpg) 实验 **信息素启发式因子α** 代表信息量对是否选择当前路径的影响程度, 即反映蚂蚁在运动过程中所积累的信息量在指导蚁群搜索中的相对重要程度。 α 的大小反映了蚁群在路径搜索中随机性因素作用的强度, 其值越大, 蚂蚁在选择以前走过的路径的可能性就越大, 搜索的随机性就会减弱; 而当启发式因子α的值过小时, 则易使蚁群的搜索过早陷于局部最优。 根据经验, 信息素启发式因子α取值范围一般为[l, 4]时, 蚁群算法的综合求解性能较好。 **期望启发因子β** 表示在搜索时路径上的信息素在指导蚂蚁选择路径时的向导性, 它的大小反映了蚁群在搜索最优路径的过程中的先验性和确定性因素的作用强度。 期望启发因子β的值越大, 蚂蚁在某个局部点上选择局部最短路径的可能性就越大, 虽然这个时候算法的收敛速度得以加快, 但蚁群搜索最优路径的随机性减弱, 而此时搜索易于陷入局部最优解。 根据经验, 期望启发因子β取值范围一般为[3, 5], 此时蚁群算法的综合求解性能较好。 参考:《智能优化算法及其MATLAB实例(第2版)》by包子阳 P101 例5.1 对结果的显示进行一定修改,以查看每一次迭代的最佳结果: ![代码修改](./imgs/0.jpg) ![地图](./imgs/6.jpg) Dijkstra算法示例中求出的最优路径为:4-5-6-1 修改$\beta$值重复四次实验 1. $\beta=0$ 实践中$\beta$不应等于0,但为了说明距离这样的先验信息起的作用,取$\beta=0$,实验结果: ![实验](./imgs/3.jpg) 2. $\beta=3$ ![实验](./imgs/4.jpg) 3. $\beta=5$ ![实验](./imgs/5.jpg) 对比三个实验中纵坐标最小值可以看出,$\beta$越大,算法越易陷入局部最优。 1. 实验一最优值全为22,是全局最优,最优路径 4-5-6-1。 2. 实验二2个22,2个25; 3. 实验三全为25,均为局部最优,局部最优路径 4-5-6-2-1。 讨论: - 位于节点6时,接下来应该选择节点1还是节点2受到信息素和启发因子的影响,当$\beta$较大时,更看重启发信息,即更加偏向与选择距离短的节点(节点6->节点1距离为16,节点6->节点2距离为7),因此才会出现实验三的结果。当$\beta=0$时,启发信息不起作用,选择全取决于信息素,这种情况更贴近自然中的蚁群寻路。 - 群智能算法都有陷入局部最优的问题 【说明】 1、项目源码在上传前,都经过本地成功运行,功能测试无误。请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机科学、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、机械电子信息等相关专业背景的在校大学生、专业老师 行业从业人员等下载使用。 3、用途:项目代表性强,具有创新性和启发性,故具有挺高的学习借鉴价值。不仅适合小白入门进阶,还可作为毕设项目、课程设计、大作业、比赛初期项目立项演示等。 4、如果基础还不错,又热爱学习钻研,也可基于此项目基础上进行修改进行二次开发。 本人也是技术狂热者,如果觉得此项目对您有价值,欢迎下载使用! 无论您是运行还是二次开发,遇到问题或困惑,欢迎私信交流学习。

5,530

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 模式及实现
社区管理员
  • 模式及实现社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧