【人工智能原理及其应用】习题二(1)


前言

参考/参照书籍:
《人工智能原理及其应用(第4版)》,王万森编著,北京-电子工业出版社,2018.8
ISBN 978-7-121-34443-5


2.1 什么是知识?有哪几种主要的知识分类方法?

一种普遍的观点认为,知识是人们在改造客观世界的实践中积累起来的认识和经验;
也有人认为,知识是人们对信息进行智能性加工中形成的对客观世界规律性的认识。

到目前为止,知识还没有一个统一的定义,其中最具代表性的解释有以下3种:
①知识是经过消减、塑造、解释、选择和转换的信息。(费根鲍姆)
②知识是由特定领域的描述、关系和过程组成的。(伯恩斯坦)
③知识=事实+信念+启发式。(海叶斯•罗斯)

常见的知识分类方法有以下3种:
(1)按知识的适用范围。
知识可分为常识性知识和领域性知识。

(2)按知识的作用效果。
知识可分为陈述性知识、过程性知识和控制性知识。

(3)按知识的确定性。
知识可分为确定性知识和不确定性知识。

2.2 什么是知识表示?知识表示有哪些要求?

知识表示就是对知识的描述,即用一些约定的符号把知识编码成一组可以被计算机直接识别,并便于系统使用的数据结构。

对知识表示的要求可从以下4方面考虑:
(1)表示能力。知识的表示能力是指能否正确、有效地将问题求解所需要的各种知识表示出来。
表示能力可包括三方面:一是知识表示范围的广泛性,二是领域知识表示的高效性,三是对非确定性知识表示的支持程度。

(2)可利用性。知识的可利用性是指通过使用知识进行推理,可求得问题的解,包括对推理的适应性和对高效算法的支持性。推理是指根据问题的已知事实,通过使用存储在计算机中的知识推出新的事实(或结论)或执行某个操作的过程。对高效算法的支持性是指知识表示要能够获得较高的处理效率。

(3)可组织性和可维护性
知识的可组织性是指把有关知识按照某种组织方式组成一种知识结构。
知识的可维护性是指在保证知识的一致性和完整性的前提下,对知识进行的增加、删除、修改等操作。

(4)可理解性和可实现性
知识的可理解性是指所表示的知识应易读、易懂、易获取、易维护。
知识的可实现性是指知识表示要便于在计算机上实现,便于直接由计算机对其进行处理。

2.3 从心理学的角度看,推理有哪两种比较典型的观点?它们的含义是什么?

①结构观点。这种观点从结构的角度出发,认为推理由两个以上判断组成,每个判断揭示的是概念之间的联系和关系,推理过程是一种对客观事物做出肯定或否定的思维活动。

②过程观点。这种观点从过程的角度出发,认为推理是在给定信息和已有知识的基础上所进行的一系列加工操作,其代表人物克茨提出了如下人类推理的公式:y=F(x,k) 式中,x 是推理时给出的信息,k 是推理时可用的领域知识和特殊事例,F 是可用的一系列操作,y 是推理过程所得到的结论。

2.4 什么是推理?它有哪些分类方法?

推理是由具体事例归纳出一般规律,或者根据已有的知识推出新的结论的思维过程。

推理可以有多种分类方法。
(1)按照推理的逻辑基础,常用的推理方法可分为演绎推理和归纳推理

①演绎推理:演绎推理是从已知的一般性知识出发,去推出蕴涵在这些知识中的适合某种个别情况的结论,是一种由一般到个别的推理方法,其核心是三段论
常用的三段论由一个前提、一个小前提和一个结论二部公组成
其中,大前提是由已知的一般性知识或推理过程得到的判断;
小前提是关于某种具体情况或某个具体实例的判断;
结论是由大前提推出的,并且适合于小前提的判断。

②归纳推理:归纳推理是从一类事物的大量特殊事例出发,去推出该类事物的一般性结论,是一种由个别到一般的推理方法。

归纳推理的基本思想是:先从已知事实中猜测出一个结论,然后对这个结论的正确性加以证明确认。数学归纳法就是归纳推理的一种典型例子。

按照所选事例的广泛性,归纳推理可分为完全归纳推理和不完全归纳推理

完全归纳推理是指在进行归纳时需要考察相应事物的全部对象,并根据这些对象是否都具有某种属性,来推出该类事物是否具有此属性。
不完全归纳推理是指在进行归纳时只考察了相应事物的部分对象,就得出了关于该事物的结论。

(2)按所用知识的确定性,推理可分为确定性推理和不确定性推理
确定性推理是指推理所使用的知识和推出的结论都是可以精确表示的,其真值非真即假。
不确定性推理是指推理时所用的知识不都是确定的,推出的结论也不完全是确定的其值会位于真与假之间。

(3)按照推理过程的单调性(或者说按照推理过程所得到的结论是否越来越接近目标),推理可分为单调推理和非单调推理
单调推理是指在推理过程中,每当使用新的知识后,得到的结论会越来越接近目标。
非单调推理是指在推理过程中,当某些新知识加入后,会否定原来推出的结论,使推理过程退回到先前的某一步。

(补充)【演绎推理与归纳推理的区别】

解:演绎推理与归纳推理是两种完全不同的推理。
演绎推理是在已知领域内的一般性知识的前提下,通过演绎求解一个具体问题或者证明一个给定的结论。这个结论实际上早已蕴涵在一般性知识的前提中,演绎推理只不过是将其揭示出来,因此不能增加新知识。
在归纳推理中,所推出的结论是没有包含在前提内容中的。这种由个别事物或现象推出一般性知识的过程是增加新知识的过程。

2.5 推理中的控制策略包括哪几方面的内容?主要解决哪些问题?

推理中的控制策略包括推理策略和搜索策略。

(1)推理策略主要解决推理方向,求解策略,限制策略,冲突消解策略等问题。
(2)搜索策略主要解决推理线路,推理效果,推理效率等问题。

推理方向是指推理过程是从初始证据开始到目标,还是从目标开始到初始证据,包括正向推理、逆向推理和混合推理等。

求解策略是指仅求一个解,还是求所有解或最优解等。

限制策略是指对推理的深度、宽度、时间、空间等进行的限制。

冲突消解策略是指当推理过程有多条知识可用时,如何从这多条可用知识中选出一条最佳知识用于推理的策略,常用的冲突消解策略有领域知识优先和新鲜知识优先等。

2.6 什么是命题?什么是命题的真值?

一个陈述句称为一个断言,凡有真假意义的断言称为命题。
命题的意义通常称为真值,只有真、假两种情况。当命题的意义为真时,则称该命题的真值为真,记为T;反之,则称该命题的真值为假,记为F。

2.7 什么是论域?什么是谓词?

论域是由所讨论对象之全体构成的非空集合。论域中的元素称为个体,论域也常称为个体域。

在谓词逻辑中,命题是用谓词来表示的。一个谓词可分为谓词名和个体两部分。其中,个体是命题的主语,用来表示某个独立存在的事物或者某个抽象的概念;谓词名是命题的谓语,用来表示个体的性质、状态或个体之间的关系等。

2.8 什么是自由变元?什么是约束变元?

当一个谓词公式含有量词时,区分个体变元是否受量词的约束是很重要的。

通常,把位于量词后面的单个谓词或者用括弧括起来的合式公式称为该量词的辖域,辖域内与量词中受约束的变元称为约束变元,不受约束的变元称为自由变元。

(补充)【例2.1 用谓词逻辑表示知识“所有教师都有自己的学生”】

定义谓词
TEACHER(x):表示x是教师。
STUDENT(y):表示y是学生。
TEACHES(x,y):表示x是y的老师。

将知识用谓词表示为:
(∀x)(∃y)(TEACHER(x)→TEACHES(x,y)∧STUDENT(y))

(补充)【例2.2 用谓词逻辑表示知识“所有的整数不是偶数就是奇数”。】

定义谓词
I(x):x是整数。
E(x):x是偶数。
O(x):x是奇数。

将知识用谓词表示为:
(∀x)(I(x)→E(x)∨O(x))

(补充)【例2.3 用谓词逻辑表示如下知识:王宏、计算机系、李明、喜欢编程序】

(1)王宏是计算机系的一名学生。
(2)王宏和李明是同班同学。
(3)凡是计算机系的学生都喜欢编程序。


定义谓词
CS(x):表示x是计算机系的学生。
CM(x,y):表示x和y是同班同学。
L(x,z):表示x喜欢z。

将知识用谓词表示为:
CS(WangHong)
CM(WangHong,LiMing)
(∀x)(CS(x)→L(x,progaraming)


2.9 设有如下语句,请用相应的谓词公式分别把它们表示出来

(1)有的人喜欢梅花,有的人喜欢菊花,有的人既喜欢梅花又喜欢菊花。
(2)有的人每天下午都去打篮球。
(3)新型计算机速度又快,存储容量又大。
(4)不是每个计算机系的学生都喜欢在计算机上编程序。
(5)凡是喜欢编程序的人都喜欢计算机。


(1)定义谓词
P(x):x是人
L(x,y):x喜欢y
其中,y的个体域是{梅花,菊花}。

将知识用谓词表示为:
(∃x)(P(x)→L(x,梅花)∨L(x,菊花)∨L(x,梅花)∧L(x,菊花))


(2)定义谓词
P(x):x是人
S(x,z):x做z,z是运动项目
其中,z的个体域是{打篮球}。
T(x,y):x在y,y是时间点
其中,y的个体域是{下午}。

将知识用谓词表示为:
(∃x)(∀y)(P(x)∧T(x,y)→T(x,下午)∧S(x,打篮球))


(3)定义谓词
NC(x):x是新型计算机
F(x):x速度快
B(x):x容量大

将知识用谓词表示为:
(∀x)(NC(x)→F(x)∧B(x))


(4)定义谓词
S(x):x是计算机系学生
L(x,y):x喜欢y
U(x,z):x使用z
其中,y的个体域是{编程序},z的个体域是{计算机}。

将知识用谓词表示为:
¬(∀x)(S(x)→L(x,编程序)∧U(x,计算机))


(5)定义谓词
P(x):x是人
L(x,y):x喜欢y
其中,y的个体域是{编程序,计算机}。
将知识用谓词表示为:
(∀x)(P(x)∧L(x,编程序)→L(x,计算机))


(补充)【例2.4 机器人移盒子问题】

设在一房间里,c处有一个机器人,a和b处各有一张桌子,分别称为a桌和b桌,a桌上有一盒子,如图2.1所示。要求机器人从c处出发把盒子从a桌上拿到b桌上,再回到c处。请用谓词逻辑来描述机器人的行动过程。
在这里插入图片描述
定义谓词如下:
TABLE(x):x是桌子。
EMPTY(y):y手中是空的。
AT(y,z):y在z处。
HOLDS(y,w):y拿着 w。
ON(w,x):w在x桌面上。

其中,x的个体域是{a,b},y的个体域是robot,z的个体域是{a,b,c},w的个体域是{box}。

问题的初始状态问题的目标状态
AT(robot, c)AT(robot, c)
EMPTY(robot)EMPTY(robot)
ON(box, a)ON(box, b)
TABLE(a)TABLE(a)
TABLE(b)TABLE(b)

在本问题中,机器人需要执行以下3个操作:
GOTO(x,y):从x处走到y处。
PICKUP(x):在x处拿起盒子。
SETDOWN(x):在x处放下盒子。

这3个操作对应的条件与动作如下:
GOTO(x,y)
条件:AT(robot,x)
动作:删除表:AT(robot,x)
   添加表:AT(robot,y)

PICKUP(x)
条件:ON(box,x),TABLE(x),AT(robot,x),EMPTY(robot)
动作:删除表:EMPTY(robot),ON(box,x)
   添加表:HOLDS(robot,box)

SETDOWN(x)
条件:AT(robot,x),TABLE(x),HOLDS(robot,box)
动作:删除表:HOLDS(robot,box)
   添加表:EMPTY(robot),ON(box,x)

利用上述谓词和操作,其求解过程为:

状态1(初始状态)状态2
AT(robot, c)AT(robot, a)
EMPTY(robot)EMPTY(robot)
ON(box, a)ON(box, a)
TABLE(a)TABLE(a)
TABLE(b)TABLE(b)
状态3状态4
AT(robot, a)AT(robot, b)
HOLDS(robot, box)HOLDS(robot, box)
TABLE(a)TABLE(a)
TABLE(b)TABLE(b)
状态5状态6(目标状态)
AT(robot, b)AT(robot, c)
EMPTY(robot)EMPTY(robot)
ON(box, b)ON(box, b)
TABLE(a)TABLE(a)
TABLE(b)TABLE(b)

(补充)【例2.5 猴子摘香蕉问题】

如图所示,设房间里有一只猴子(即机器人),位于a处。在c处上方的天花板上有一串香蕉,猴子想吃,但摘不到。房间的b处还有一个箱子,如果猴子站到箱子上,就可以摸着天花板。请用谓词逻辑知识表示描述上述问题。
在这里插入图片描述
定义如下谓词:
AT(x,y):表示x在y处。
ONBOX:表示猴子在箱子上面。
HB:猴子摘到香蕉。

其中,x的个体域是{monkey,box,banana},y的个体域(a,b,c}。

问题的初始状态问题的目标状态
AT(monkey, a)AT(monkey, c)
AT(box, b)AT(box, c)
¬ONBOXONBOX
¬HBHB

在本问题中,猴子需要执行的4个操作可用谓词描述如下:
GOTO(u,v):表示猴子从u处走到ν处。
PUSHBOX(v,w):表示猴子推着箱子从ν处移到w处。
CLIMBBOX:表示猴子爬上箱子。
GRASP:表示猴子摘取香蕉。

这些操作对应的先决条件及动作如下:
GOTO(u,v)
条件:¬ONBOX,AT(monkey,u),
动作:删除表:AT(monkey,u)
   添加表:AT(monkey,v)

PUSHBOX(v,w)
条件:¬ONBOX,AT(monkey,v),AT(box,v)
动作:删除表:AT(monkey,v),AT(box,v)
   添加表:AT(monkey,w),AT(box,w)

CLIMBBOX
条件:¬ONBOX,AT(monkey,w),AT(box,w)
动作:删除表:¬ONBOX
   添加表:ONBOX

GRASP
条件:ONBOX,AT(box,c),¬HB
动作:删除表:¬HB
   添加表:HB

其求解过程与机器人移盒子问题类似。

2.10 用谓词表示法表示机器人摞积木问题。

设机器人有一只机械手,要处理的世界有一张桌子,桌上可堆放若干相同的方积木块。机械手有4个操作积木的典型动作:从桌上拣起一块积木;将手中的积木放到桌上;在积木上再摞上一块积木;从积木上面拣起一块积木,如图所示。
在这里插入图片描述
(1)定义谓词
CLEAR(x):积木x上面是空的
ON(x,y):积木x在积木y上面
ONTABLE(x):积木x在桌子上
HOLDING(x):机械手抓住x
HANDEMPTY:机械手是空的

其中,x,y的个体域都是{A,B,C}

问题的初始状态问题的目标状态
ONTABLE(A)ONTABLE(C)
ONTABLE(B)ON(B,C)
ON(C,A)ON(A,B)
CLEAR(B)CLEAR(A)
CLEAR(C)
HANDEMPTYHANDEMPTY

(2)定义描述操作的谓词
Pickup(x):从桌面上捡起一块积木x
Putdown(x):将手中的积木放到桌面上
Stack(x, y):在积木x上面再摞一块积木y
Upstack(x, y):从积木x上捡起一块积木y

其中,每一个操作都可分为条件和动作两部分:
Pickup(x)
条件:ONTABLE(x),HANDEMPTY,CLEAR(x)
动作:删除表:ONTABLE(x),HANGEMPTY,CLEAR(x)
   添加表:HOLDING(x)

Putdown(x)
条件:HOLDING(x)
动作:删除表:HOLDING(x)
   添加表:ONTABLE(x),HANDEMPTY,CLEAR(x)

Stack(x, y)
条件:HOLDING(x),CLEAR(y)
动作:删除表:HOLDING(x),CLEAR(y)
   添加表:HANDEMPTY,CLEAR(x),ON(y, x)

Upstack(x, y)
条件:HANDEMPTY,CLEAR(y),ON(y, x)
动作:删除表:HANDEMPTY,CLEAR(y),ON(y, x)
   添加表:HOLDING(x),CLEAR(x)

(3)求解过程
利用上述谓词和操作,其求解过程为:
在这里插入图片描述

### 构建任务失败解决方案 当遇到 `Execution failed for task ':app:shrinkReleaseRes'` 错误时,这通常意味着资源压缩过程中出现了问题。此错误可能由多种原因引起,包括但不限于配置不正确、依赖冲突或特定于项目的其他因素。 #### 可能的原因分析 1. **ProGuard 或 R8 配置不当** ProGuard 和 R8 是用于优化和混淆代码以及减少 APK 大小的工具。如果这些工具的配置存在问题,可能会导致资源无法正常处理[^1]。 2. **重复资源** 如果项目中有多个模块定义了相同的资源名称,可能导致冲突并引发该错误。检查是否存在重名的 drawable、string 等资源文件[^2]。 3. **第三方库兼容性** 某些第三方库可能与当前使用的 Gradle 插件版本或其他库存在兼容性问题,从而影响到资源打包过程中的行为[^3]。 4. **Gradle 缓存问题** 有时旧缓存数据会干扰新编译的结果,尝试清理本地仓库和重新同步项目可以帮助排除此类潜在障碍[^4]。 #### 推荐的操作方法 为了有效解决问题,建议按照以下步骤逐一排查: ```bash # 清理项目构建目录 ./gradlew clean # 删除 .gradle 文件夹下的所有内容以清除缓存 rm -rf ~/.gradle/caches/ ``` 调整 `build.gradle` 中的相关设置也是一个重要环节: ```groovy android { ... buildTypes { release { minifyEnabled true // 是否启用代码缩减 shrinkResources true // 是否开启资源压缩 proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' // 尝试禁用 shrinkResources 来测试是否为资源压缩引起的错误 // shrinkResources false } } } ``` 此外,在 `proguard-rules.pro` 文件内添加必要的保留规则,防止关键类被意外移除: ```text -keep class com.example.yourpackage.** { *; } # 替换为你自己的包路径 -dontwarn androidx.**,com.google.** # 忽略警告信息 ``` 最后,确保所使用的 Android Studio 版本是最新的稳定版,并且已经应用了所有的补丁更新。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值