第三章问题求解方法3
1答:深度优先搜索与广度优先搜索的区别在于:在对节点n进行扩展时,其后继节点在OPEN表中的存放位置不同
广度优先搜索是将后继节点放入OPEN表的末端,而深度优先搜索则是将后继节点放入OPEN表的前端
广度优先搜索是一种完备搜索,即只要问题有解就一定能够求出,而深度优先搜索是不完备搜索
在不要求求解速度且目标节点的层次较深的情况下,广度优先搜索优于深度优先搜索;在要求求解速度且目标节点的层次较浅的情况下,深度优先搜索优于广度优先搜索
广度优先的正例:积木问题;深度优先的正例:邮递员问题,反例:国际象棋
2答:衡量标准为:这组子状态中有没有目标状态,如果有,则选择该节点并且搜索成功;若没有,则按照某种控制策略从已生成的状态中再选择一个状态作为当前状态重复搜索过程
3答:(1)广度优先搜索:该程序必须找到解,并且最好是最优解;(2)广度优先搜索:医生要根据病人的各种病状判断病人的病;(3)深度优先搜索:该程序要求一定要找到目标路径;(4)深度优先搜索:该程序要求找到最优解;(5)广度优先搜索:不能确定它们是否等同,既不能确定它们是否有等同解
4答:对于四皇后问题,如果放一个皇后的耗散值为1的话,则任何一个解的耗散值都是4
因此如果h是对该耗散值的估计,是没有意义的
对于像四皇后这样的问题,启发函数应该是对找到解的可能性的评价
利用一个位置放皇后后,消去的对角线的长度来进行评价
5答:定义h1=M+C-2B,其中M,C分别是在河的左岸的传教士人数和野人人数
B=1表示船在左岸,B=0表示船在右岸
也可以定义h2=M+C
h1是满足A*条件的,而h2不满足
要说明h2=M+C不满足A*条件是很容易的,只需要给出一个反例就可以了
比如状态(1,1,1),h2=M+C=1+1=2,而实际上只要一次摆渡就可以达到目标状态,其最优路径的耗散值为1