罗比问题求解步骤
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条路径,什么时候才能搞完(收敛)啊
取最高得分,对应的路径就是 罗比清理易拉罐的最好方式。
总结
先从一般情况出发,分析出可能存在的路径是关键参考 叶小伦关于遗传算法的说明
相关文章推荐
- 关于n皇后问题的递归求解,有详细的步骤说明。
- 管程求解哲学家就餐问题.更细的演算步骤
- 算法实例一 算法问题求解基础--欧几里得递归算法和递归算法
- 第12周上机实践项目4 - 利用遍历思想求解图问题(1-4)
- 一种基于构造测量矩阵的称球问题求解方法
- 蚁群算法求解迷宫最优路径问题
- 做机械臂导航时遇到的问题8:逆运动学求解:在笛卡尔空间规划
- [经典算法]海盗分金问题sql求解(贪心算法)
- Python安装其它库的步骤和问题解决方案汇总
- 滑雪问题的分支限界法求解
- 用栈实现后缀表达式求解问题
- 三分法——求解凸性函数的极值问题
- 常见的动态规划问题分析与求解
- 用Java实现天平称球问题的自动求解
- 求解最长公共子序列问题(LCS)
- 第十一周 【项目4(2) - 利用遍历思想求解图问题】
- 第十一周项目4-利用遍历思想求解图问题
- 数据结构例程——应用图的深度优先遍历思路求解问题
- 第十一周项目4---利用遍历思想求解图问题(4)
- 【蒻爆了的NOIP系列--普及组初赛】(1)2010-2014问题求解