实验1.1
一、背景
你出于兴趣成为了一名南极科考队员,在这一次的科学考察过程中不幸遭遇暴风雪与其他队员走散了,
但好消息是暴风雪逐渐减弱了,你重新获得了你的地图定位,并且在走散前你刚刚进行过一次补给,身
上装有足够吃T天的食物。你需要克服困难,做好规划,在食物消耗完前回到科考站。
二、问题描述
我们将地图简单化为M*N的方格地图,你每天可以移动到与你相邻的上、下、左、右四块方格中的可通
行的某一块,请注意,地图(南极大陆)外都是海洋,无法通行。
你在移动过程中应当时刻注意自己的食物储备,你在地图上每移动一格将消耗一天,也会吃掉一天份额
的食物,当你身上的食物储备消耗完后,如果你还没有到达科考站或者原地进行补给,你将永远地留在
这篇冰封之地。别担心,科考队提前布置了数处补给点,它们已经被标注在了地图上,补给点有充足的
物资供应,你可以将身上的食物储备补充满(足够吃T天)。简单起见,假定食物补充不需要消耗时间。
地图上有五种格子:
0 :表示可通行的空地
1 :表示不可通行的山脉、沟壑等
2 :表示补给点
3 :表示你的出发位置
4 :表示科考站的位置
你能否安全回到科考站?如果能,最短需要多少天?
该任务中,你的目标是:
设计一个合适的启发式函数,并证明它是 admissible 的,并论证其是否满足consistent 性质
基于上述启发式函数,开发对应的A*算法找到以一个最优解,使得你可以以最短的时间返回科考站
设置启发式函数为0,此时A*退化为一致代价搜索算法,比较并分析A*方法带来的优化效果
输入:
详见 ./Astar/input 共有10个测试文件,形式如下:
举例:
第一行三个整数 M, N, T,表示地图的大小 M x N 以及身上最多可携带的食物储备天数T
下面 M 行,每行 N 个数字来描述地图