您的位置:首页 > 其它

罗比问题求解步骤

2017-11-07 15:06 204 查看

问题

有一个叫罗比的机器人,他的世界是一堆M*N的二维网格,网格每天会随机生成一些废弃的易拉罐(如下图),罗比的日常工作就是清理这些易拉罐。设计一种策略,使罗比每天的清理工作变得高效(能够快速高效地清理废易拉罐)。



罗比的世界

假设网格由10*10(100)个格子组成。罗比的能力有限,看得不远,能执行的动作不多,仅仅7个动作:向北走一步,向南走一步,向东走一步,向西走一步,随机一个方向走一步,不动,收集罐子。

由于能量供应及时效问题,我们对罗比的行为作出奖励或惩罚机制:

如果罗比所在的格子有罐子,而他收集了,则得10分

如果罗比所在的格子没有罐子,但他做了收集动作,则惩罚1分

如果撞墙了,则罚5分,并弹回到原来的格子中。

分析

先求出罗比所有可能使用的清理易拉罐的路径,然后,按照一定的策略,选出最优的路径。

一、可能存在的路径(解)

罗比周围网格可能存在的情况:有易拉罐、没有易拉罐、有墙壁 - 共 3 种情况。这里的‘周围’指最接近罗比 东、南、西、北方向的网格,以及罗比本身所在的网格 - 共 5 种情况 。

因此,A = 3*3*3*3*3 = 243 种情况。而,每种情况可做出的选择数 :7 (对应7个动作-向北走一步,向南走一步,向东走一步,向西走一步,随机一个方向走一步,不动,收集罐子)。

综上,所有可能使用的清理易拉罐的路径共有:7^243 种 - 使用其中任何一种都可以完成易拉罐的清理。可用一个长度为 243的一维数组表示,其中每个元素的取值为 0、1、2、3、4、5与6;也可用7^243*243型矩阵来表示所有的路径空间:

[ 2,0,1,2,4,5,2,0,0,0,……,3,4,5,2,1,5

1,0,1,4,3,5,1,5,0,0,……,3,4,4,3,1,2

… … … …

0,3,1,4,2,5,2,5,0,0,……,1,4,4,2,1,4 ]

二、求出最优的路径

1)让罗比按照每一条路径去清理易拉罐 10次,每次做 100 个动作。清理玩得到10个分值,然后取平均分,即得这条路径的 最终分值。

2) 重复以上操作 7^243次,即可求出所有路径的最终得分。(问题来了,总共有 7 ^243条路径,什么时候才能搞完(收敛)啊

取最高得分,对应的路径就是 罗比清理易拉罐的最好方式。

总结

先从一般情况出发,分析出可能存在的路径是关键

参考 叶小伦关于遗传算法的说明
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: