人工智能 知识表示方式:状态空间和问题归约 题目练习

一、试用四元数列结构表示四圆盘梵塔问题,并画出求解该问题的与或图。

解决四圆盘梵塔问题

①定义三柱子编号从左到右分别为1号,2号,3号,四圆盘编号从小到大为A,B,C,D。注:与或图中的四元数列(X1,X2,X3,X4)代表着盘A在X1位置,盘B在X2位置等等

②以上,初始状态表示为(1111),目标状态为(3333)

③基于问题归约思想分解子问题,首次分解成盘ABC和盘D,则原始难题归约成下列3个子难题:

  1. 移动盘ABC至柱2的三圆盘难题
  2. 移动盘D至柱3的单圆盘难题
  3. 移动盘ABC至柱3的三圆盘难题

如下图示:

④继续分解子难题,直到归约出问题本原

如图所示:

二、求复杂吸尘器世界状态个数。

吸尘器电源开关 Power: on/off/sleep

传感器 Dirt-sensing camera: on/off

刷子高度 Brush-height: 1/2/3/4/5

地毯块 Position: 10

地毯状态 Rug: dirty/clean

解:以上,将吸尘器的状态和地毯块分开讨论,两者彼此相互独立

①设定吸尘器在某个确定的地毯块可能存在状态X0,则X0=3*2*5=30(种)

(易知需考虑3种电源状态,2种传感器状态,5种高度状态)

②设定地毯块的可能存在状态Y0,则Y0=210=1024(种),每个地毯块是否干净相互独立。

③总世界状态个数Z=X0*Y0*10=3.072X105(种)

三、请写出传教士野人问题( Missionaries& Cannibals,MC 问题)中的操作符、操作符执行的前提条件和执行后问题空间状态的变化情况。

解:①mc问题状态空间:利用三元组(M,C,B)来表示河岸上的状态,其中M,C分别代表着某岸上传教士和野人的个数,B=1表示船在这一岸,B=0表示船不在这一岸。

设定传教士和野人开始的岸为所要表示的岸,称为左岸,另一岸称为右岸,可以通过左岸的状态来表示出整个河岸的状态空间。

②操作符:

        该问题解决涉及两种操作:从左岸划向右岸和从右岸划向左岸(包含摆渡的传教士个数和野人个数),使用二元数组(BM,BC)来表示船上摆渡的传教士和野人个数,i为船上摆渡总人数,则BC = i - BM。所以从左到右的操作为:(ML - BM, CL - BC, B = 1);从右到左的操作为:(ML + BM, CL + BC, B = 0)

综上:设置操作符Leave(BM,BC)代表从左岸到右岸;Back(BM,BC)代表从右岸到左岸。

        1.执行前提条件:

已知“任何时刻,河两岸以及船上的野人数目总是不超过传教士的数目”

i:当BM != 0时,BM >= BC(船上摆渡有传教士时,船上传教士的人数不小于野人的人数)

ii:0 < BM + BC <= k(摆渡总人数不超过k且船不能空渡)

iii:当ML - BL != 0ML + BM != N(N为传教士总人数)时,ML - BM >= CL - BCML + BM >= CL + BC(过河时,两岸皆有传教士时,两岸传教士人数不小于野人人数)

        2.执行算子后问题空间状态变化情况:

Leave(BM,BC)——(ML - BM, CL - BC, B = 1)

Back(BM,BC)——(ML + BM, CL + BC, B = 0)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值