内容发布更新时间 : 2024/12/26 18:47:01星期一 下面是文章的全部内容请认真阅读。
第一章 课后习题
1、对N=5、k≤3时,求解传教士和野人问题的产生式系统各组成部分进行描述(给出综合数据库、规则集合的形式化描述,给出初始状态和目标条件的描述),并画出状态空间图。
2、对量水问题给出产生式系统描述,并画出状态空间图。
有两个无刻度标志的水壶,分别可装5升和2升的水。设另有一水缸,可用来向水壶灌水或倒出水,两个水壶之间,水也可以相互倾灌。已知5升壶为满壶,2升壶为空壶,问如何通过倒水或灌水操作,使能在2升的壶中量出一升的水来。
3、对梵塔问题给出产生式系统描述,并讨论N为任意时状态空间的规模。
相传古代某处一庙宇中,有三根立柱,柱子上可套放直径不等的N个圆盘,开始时所有圆盘都放在第一根柱子上,且小盘处在大盘之上,即从下向上直径是递减的。和尚们的任务是把所有圆盘一次一个地搬到另一个柱子上去(不许暂搁地上等),且小盘只许在大盘之上。问和尚们如何搬法最后能完成将所有的盘子都移到第三根柱子上(其余两根柱子,有一根可作过渡盘子使用)。
求N=2时,求解该问题的产生式系统描述,给出其状态空间图。讨论N为任意时,状态空间的规模。
4、对猴子摘香蕉问题,给出产生式系统描述。
一个房间里,天花板上挂有一串香蕉,有一只猴子可在房间里任意活动(到处走动,推移箱子,攀登箱子等)。设房间里还有一只可被猴子移动的箱子,且猴子登上箱子时才能摘到香蕉,问猴子在某一状态下(设猴子位置为a,箱子位置为b,香蕉位置为c),如何行动可摘取到香蕉。
5、对三枚钱币问题给出产生式系统描述及状态空间图。
设有三枚钱币,其排列处在\正、正、反\状态,现允许每次可翻动其中任意一个钱币,问只许操作三次的情况下,如何翻动钱币使其变成\正、正、正\或\反、反、反\状态。
6、说明怎样才能用一个产生式系统把十进制数转换为二进制数,并通过转换141.125这个数为二进制数,阐明其运行过程。
7、设可交换产生式系统的一条规则R可应用于综合数据库D来生成出D',试证明若R存在逆,则可应用于D'的规则集等同于可应用于D的规则集。
8、一个产生式系统是以整数的集合作为综合数据库,新的数据库可通过把其中任意一对元素的乘积添加到原数据库的操作来产生。设以某一个整数子集的出现作为目标条件,试说明该产生式系统是可交换的。
第二章 课后习题
第二章 课后习题
1 / 35
1、用回溯策略求解如下所示二阶梵塔问题,画出搜索过程的状态变化示意图。
对每个状态规定的操作顺序为:先搬1柱的盘,放的顺序是先2柱后3柱;再搬2柱的盘,放的顺序是先3柱后1柱;最后搬3柱的盘,放的顺序是先1柱后2柱。
2、滑动积木块游戏的棋盘结构及某一种将牌的初始排列结构如下:
其中B表示黑色将牌,W表示白色将牌,E表示空格。游戏的规定走法是: (1)任意一个将牌可以移入相邻的空格,规定其耗散值为1;
(2)任意一个将牌可相隔1个或2个其他的将牌跳入空格,规定其耗散值等于跳过将牌的数目;游戏要达到的目标是使所有白将牌都处在黑将牌的左边(左边有无空格均可)。对这个问题,定义一个启发函数h(n),并给出利用这个启发函数用算法A求解时所产生的搜索树。你能否辨别这个h(n)是否满足下界范围?在你的搜索树中,对所有的节点满足不满足单调限制?
3、对1.4节中的旅行商问题,定义两个h函数(非零),并给出利用这两个启发函数用算法A求解1.4节中的五城市问题。讨论这两个函数是否都在h*的下界范围及求解结果。
4、2.1节四皇后问题表述中,设应用每一条规则的耗散值均为1,试描述这个问题h*函数的一般特征。你是否认为任何h函数对引导搜索都是有用的?
5、对N=5,k≤3的M-C问题,定义两个h函数(非零),并给出用这两个启发函数的A算法搜索图。讨论用这两个启发函数求解该问题时是否得到最佳解。
6、证明OPEN表上具有f(n)<f*(s)的任何节点n,最终都将被A*选择去扩展。
7、如果算法A*从OPEN表中去掉任一节点n,对n有f(n)>F(F>f*(s)),试说明为什么算法A*仍然是可采纳的。
8、用算法A逆向求解图2.7中的八数码问题,评价函数仍定义为f(n)=d(n)+w(n)。逆向搜索在什么地方和正向搜索相会。
9、讨论一个h函数在搜索期间可以得到改善的几种方法。
10、四个同心圆盘的扇区数字如图所示,每个圆盘可单独转动。问如何转动圆盘使得八个径向的4个数字
2 / 35
和均为12。
第三章 课后习题
1、数字重写问题的变换规则如下: 6→3,3 4→3,1 6→4,2 3→2,1 4→2,2 2→1,1
问如何用这些规则把数字6变换成一个由若干个1组成的数字串。试用算法AO*进行求解,并给出搜索图。求解时设k-连接符的耗散值是k个单位,h函数值规定为:h(1)=0,h(n)=n(n≠1)。
2、余一棋的弈法如下:两棋手可以从5个钱币堆中轮流拿走一个、两个或三个钱币,拣起最后一个钱币者算输。试通过博弈证明,后走的选手必胜,并给出一个简单的特征标记来表示取胜策略。
3、对下图所示的博弈树,以优先生成左边节点顺序来进行α-β搜索,试在博弈树上给出何处发生剪枝的标记,并标明属于α剪枝还是β剪枝。
4、AO*算法中,第7步从S中选一个节点,要求其子孙不在S中出现,讨论应如何实现对S的控制使得能有效地选出这个节点。如下图所示,若E的耗散值发生变化时,所提出的对S的处理方法应能
3 / 35