化为子句集的九步法

合集下载

(完整版)人工智能习题解答

(完整版)人工智能习题解答

人工智能第1部分绪论1-1.什么是人工智能?试从学科和能力两方面加以说明。

答:从学科方面定义:人工智能是计算机科学中涉及研究、设计和应用智能机器的一个分支。

它的近期目标在于研究用机器来模拟和执行人脑的某些智力功能,并开发相关理论和技术从能力方面定义:人工智能是智能机器所执行的通常与人类智能有关的智能行为,如判断、推理、证明、识别、感知、理解、通信、设计、思考、规划、学习和问题求解等思维活动。

1-2.在人工智能的发展过程中,有哪些思想和思潮起了重要作用?答:1)数理逻辑和关于计算本质的新思想,提供了形式推理概念与即将发明的计算机之间的联系;2)1956年第一次人工智能研讨会召开,标志着人工智能学科的诞生;3)控制论思想把神经系统的工作原理与信息理论、控制理论、逻辑以及计算联系起来,影响了许多早期人工智能工作者,并成为他们的指导思想;4)计算机的发明与发展;5)专家系统与知识工程;6)机器学习、计算智能、人工神经网络和行为主义研究,推动人工智能研究的近一步发展。

1-3.为什么能够用机器(计算机)模仿人的智能?答:物理符号系统的假设:任何一个系统,如果它能够表现出智能,那么它就必定能执行输入符号、输出符号、存储符号、复制符号、建立符号结构、条件迁移6种功能。

反之,任何系统如果具有这6种功能,那么它就能够表现出智能(人类所具有的智能)。

物理符号系统的假设伴随有3个推论。

推论一:既然人具有智能,那么他(她)就一定是各物理符号系统;推论二:既然计算机是一个物理符号系统,它就一定能够表现出智能;推论三:既然人是一个物理符号系统,计算机也是一个物理符号系统,那么我们就能够用计算机来模拟人的活动。

1-4.人工智能的主要研究内容和应用领域是什么?其中,哪些是新的研究热点?答:研究和应用领域:问题求解(下棋程序),逻辑推理与定理证明(四色定理证明),自然语言理解,自动程序设计,专家系统,机器学习,神经网络,机器人学(星际探索机器人),模式识别(手写识别,汽车牌照识别,指纹识别),机器视觉(机器装配,卫星图像处理),智能控制,智能检索,智能调度与指挥(汽车运输高度,列车编组指挥),系统与语言工具。

人工智能复习题库

人工智能复习题库

一、填空:1.人工智能的研究途径有心理模拟、生理模拟和行为模拟。

2.任意列举人工智能的四个应用性领域智能控制、智能管理、智能决策、智能仿真。

3.人工智能的基本技术包括表示、运算、搜索归纳技术、联想技术。

4.谓词逻辑是一种表达能力很强的形式语言,其真值的特点和命题逻辑的区别是(10)。

5.谓词逻辑中,重言式(tautlogy)的值是(11)。

6.设P是谓词公式,对于P的任何论域,存在P为真的情况,则称P为(12)。

7.在著名的医疗专家系统MYCIN中规定,若证据A的可信度CF(A)=0,则意味着13 ,CF(A)=-1,则意味着(14),CF(A)=1,则意味着(15)。

8.谓词公式G是不可满足的,当且仅当对所有的解释(16)。

9.谓词公式与其子句集的关系是(17)。

10.利用归结原理证明定理时,若得到的归结式为(18),则结论成立。

11.若C1=┐P∨Q,C2=P∨┐Q,则C1和C2的归结式R(C1,C2)= (19)。

12.若C1=P(x) ∨Q(x),C2=┐P(a) ∨R(y),则C1和C2的归结式R(C1,C2)= (20)。

13.有谓词公式G,置换δ,则G·ε= (21),δ·ε= (22)。

14.有子句集S={P(x),P(y)},其MGU= (23)。

15.在归结原理中,几种常见的归结策略并且具有完备性的是(24),(25),(26)。

16.状态图启发式搜索算法的特点是(27)。

17.广度优先搜索算法中,OPEN表的数据结构实际是一个(28),深度优先搜索算法中,OPEN表的数据结构实际是一个(29)。

18.产生式系统有三部分组成(30),(31)和推理机。

其中推理可分为(32)和(33)。

19.专家系统的结构包含人机界面、(34),(35),(36),(37)和解释模块。

20.在MYCIN推理中,对证据的可信度CF(A)、CF(A1)、CF(A2)之间,规定如下关系:CF(~A)= (38),CF(A1∧A2 )= (39),CF(A1∨A2 )= (40)。

化为子句集的九步法

化为子句集的九步法
cout<<"请输入(Y/y)消去存在量词"<<endl;
cin>>command4;
if(command4 == 'y' || command4 == 'Y')
{
orign = del_exists(orign);
cout<<"消去存在量词后是(w = g(x)是一个Skolem函数)"<<endl
command6,command7,command8,command9,command10;
//=============================================================================
cout<<"请输入(Y/y)初始化谓词演算公式"<<endl;
cout<<"请输入(Y/y)消去连接符号"<<endl;
cin>>command8;
if(command8 == 'y' || command8 == 'Y')
{
orign = del_and(orign);
cout<<"消去连接符号后是"<<endl
<<orign<<endl;
}
else
exit(0);
//=============================================================================
cout<<"请输入(Y/y)消去蕴涵项"<<endl;

讨论了一些简单搜索的基本原理

讨论了一些简单搜索的基本原理
9
(6)把母式化为合取范式 任何母式都可写成由一些谓词公式和(或)谓词公 式的否定的析取的有限集组成的合取。这种母式 叫做合取范式。我们可以反复应用分配律。把任 一母式化成合取范式。例如,我们把 A∨{B∧C}化为{A∨B}∧{到了这一步,所有余下的量词均被全称量词量化 了。同时,全称量词的次序也不重要了。因此, 我们可以消去前缀,即消去明显出现的全称量词。 (8)消去连词符号∧ 用{(A∨B), (A∨C)}代替(A∨B)∧(A∨C),以消 去明显的符号∧。反复代替的结果,最后得到一 个有限集,其中每个公式是文字的析取。任一个 只由文字的析取构成的合适公式叫做一个子句。
(3) 反演求解的举例 下面举个例子来说明消解反演过程: 前提:每个储蓄钱的人都获得利息。 结论:如果没有利息,那么就没有人去储蓄钱。 证明:令S(x,y)表示"x储蓄y" M(x)表示"x是钱" I(x)表示"x是利息" E(x,y)表示"x获得y" 于是上述命题写成下列形式:
结论:
25
用化为子句集的九步法,可把前提和结论化 为下列的子句集: S’={~S(x,y)∨~ M(y)∨I(f(x)),~S(x,y)∨~ M(y)∨E(x,f(x))} 其中,y=f(x)为Skolem函 数。而,~L= ={~I(z),S(a,b),M(b)}
13
(a)假言推理
(b) 合并
父辈子句 消解式
14
(c) 重言式
父辈子句
消解式
15
(d) 链式(三段论)
(e) 空子句(矛盾)
父辈子句
消解式
上各例可见,消解可以合并几个运算为一简单的推理规则 16
4.4.3 含有变量的消解式

人工智能复习题库

人工智能复习题库

一、填空:1.人工智能的研究途径有心理、生理和行为模拟。

2.任意列举人工智能的四个应用性领域(3)、(4)、(5)、(6)。

3.人工智能的基本技术包括搜索技术、推理技术、知识表示和知识库技术归纳技术、联想技术。

4.谓词逻辑是一种表达能力很强的形式语言,其真值的特点和命题逻辑的区别是(10)。

5.谓词逻辑中,重言式(tautlogy)的值是真。

6.设P是谓词公式,对于P的任何论域,存在P为真的情况,则称P为可满足式。

7.在着名的医疗专家系统MYCIN中规定,若证据A的可信度CF(A)=0,则意味着 13 ,CF(A)=-1,则意味着(14),CF(A)=1,则意味着(15)。

8.谓词公式G是不可满足的,当且仅当对所有的解释(16)。

9.谓词公式与其子句集的关系是(17)。

10.利用归结原理证明定理时,若得到的归结式为空集,则结论成立。

12。

11.若C1=┐P∨Q,C2=P∨┐Q,则C1和C2的归结式R(C1,C2)= 非P V P 或非Q V Q 。

12.若C1=P(x) ∨Q(x),C2=┐P(a) ∨R(y),则C1和C2的归结式R(C1,C2)= Q(a)V R(y) 。

13.有谓词公式G,置换δ,则G·ε= (21),δ·ε= (22)。

14.有子句集S={P(x),P(y)},其MGU= (23)。

15.在归结原理中,几种常见的归结策略并且具有完备性的是删除策略,支持集策略,线性归结策略。

1516.状态图启发式搜索算法的特点是(27)。

17.广度优先搜索算法中,OPEN表的数据结构实际是一个(28),深度优先搜索算法中,OPEN表的数据结构实际是一个(29)。

18.产生式系统有三部分组成(30),(31)和推理机。

其中推理可分为(32)和(33)。

19.专家系统的结构包含人机界面、(34),(35),(36),(37)和解释模块。

20.在MYCIN推理中,对证据的可信度CF(A)、CF(A1)、CF(A2)之间,规定如下关系:CF(~A)= (38),CF(A1∧A2 )= (39),CF(A1∨A2 )= (40)。

《人工智能》实验指导书

《人工智能》实验指导书

山西财经大学信息管理学院王保忠编《人工智能实验指导书》适用专业:计算机科学与技术信息管理与系统信息科学与计算一、学时与学分总学时:48;总学分:4;实验学时:16;实验学分:1二、实验课的任务、性质与目的本实验课程是计算机专业、信息管理与系统学生的一门专业课程,通过实验软件环境提供的大量演示性、验证性和开发设计性实验,帮助学生更好地熟悉和掌握人工智能的基本原理和方法;通过实验提高学生编写实验报告、总结实验结果的能力;使学生对人工智能的相关理论有更深刻的认识。

三、基本原理本实验涉及人工智能的经典理论和方法,以及计算智能的部分分支和实现方法,主要包括以下内容:1. 产生式系统实验2. 搜索策略实验3. 神经网络实验4. 自动规划实验四、实验方式与基本要求本实验目的是使学生进一步加深对人工智能的基本原理和方法的认识,通过实践了解人工智能的实现手段。

实验方式:1. 实验共16学时;2. 由指导教师讲解实验的基本要求,提示算法的基本思想;3. 实验一人一组,独立完成实验的演示、验证和开发设计;4. 学生在完成预习报告后才能进入实验室进行实验。

五、实验项目的设置与内容提要《人工智能实验指导书》实验名称实验目的内容简介1 产生式系统实验熟悉和掌握产生式系统的运行机制,掌握基于规则推理的基本方法主要包括产生式系统的正、反向推理、基于逻辑的搜索等10余个相关演示性、验证性和开发性设计实验。

2 搜索策略实验熟悉和掌握启发式搜索的定义、估价函数和算法过程,并利用A*算法求解N数码难题,理解求解流程和搜索顺序。

主要包括盲目式、启发式搜索类的10余个相关演示性、验证性和开发性设计实验。

3 神经网络实验理解反向传播网络的结构和原理,掌握反向传播算法对神经元的训练过程,了解反向传播公式。

通过构建BP网络实例,熟悉前馈网络的原理及结构。

主要包括以BP网为代表的ANN的验证性实验及设计性实验。

并包括用BP网解决一些非线性问题的典型设计实验(如异或问题、布尔代数及非线性函数模拟等)4 自动规划实验理解自动规划的基本原理,掌握为活动实体(人、组织、机器)设计合理的行为、按时间顺序的活动序列等基本技术。

人工智能复习题及答案

人工智能复习题及答案

一、填空:1.人工智能的研究途径有心理模拟、生理模拟和行为模拟。

2.任意列举人工智能的四个应用性领域智能控制、智能管理、智能决策、智能仿真。

3.人工智能的基本技术包括表示、运算、搜索归纳技术、联想技术。

4.谓词逻辑是一种表达能力很强的形式语言,其真值的特点和命题逻辑的区别是(10)。

5.谓词逻辑中,重言式(tautlogy)的值是(11)。

6.设P是谓词公式,对于P的任何论域,存在P为真的情况,则称P为(12)。

7.在著名的医疗专家系统MYCIN中规定,若证据A的可信度CF(A)=0,则意味着 13 ,CF(A)=-1,则意味着(14),CF(A)=1,则意味着(15)。

8.谓词公式G是不可满足的,当且仅当对所有的解释(16)。

9.谓词公式与其子句集的关系是(17)。

10.利用归结原理证明定理时,若得到的归结式为(18),则结论成立。

11.若C1=┐P∨Q,C2=P∨┐Q,则C1和C2的归结式R(C1,C2)= (19)。

12.若C1=P(x) ∨Q(x),C2=┐P(a) ∨R(y),则C1和C2的归结式R(C1,C2)= (20)。

13.有谓词公式G,置换δ,则G·ε= (21),δ·ε= (22)。

14.有子句集S={P(x),P(y)},其MGU= (23)。

15.在归结原理中,几种常见的归结策略并且具有完备性的是(24),(25),(26)。

16.状态图启发式搜索算法的特点是(27)。

17.广度优先搜索算法中,OPEN表的数据结构实际是一个(28),深度优先搜索算法中,OPEN表的数据结构实际是一个(29)。

18.产生式系统有三部分组成(30),(31)和推理机。

其中推理可分为(32)和(33)。

19.专家系统的结构包含人机界面、(34),(35),(36),(37)和解释模块。

20.在MYCIN推理中,对证据的可信度CF(A)、CF(A1)、CF(A2)之间,规定如下关系:CF(~A)= (38),CF(A1∧A2 )=(39),CF(A1∨A2 )= (40)。

化为子句集的九步法

化为子句集的九步法

化为子句集的九步法一、实验目的:熟悉谓词公式化为子句集的九个步骤,理解消解(谓词公式化为子句集)规则,能把任意谓词公式转换成子句集,掌握基于规则推理的基本方法。

二、实验原理产生式系统用来描述若干个不同的以一个基本概念为基础的系统,这个基本概念就是产生式规则或产生式条件和操作对。

在产生式系统中,论域的知识分为两部分:用事实表示静态知识;用产生式规则表示推理过程和行为。

任一谓词公式通过九步法可以化成一个子句集。

九步法消解包括消去蕴含和等价符号、把否定符号移到紧靠谓词的位置上、变量标准化、消去存在量词、化为前束型、化为Skolem标准形、略去全称量词、消去合取词,把母式用子句集表示、子句换变量标准化,依次变换即可得到子句集。

三、实验内容代码:void main(){cout<<"------------------求子句集九步法演示-----------------------"<<endl;system("color 0A");//orign = "Q(x,y)%~(P(y)";//orign = "(@x)(P(y)>P)";//orign = "~(#x)y(x)";//orign = "~((@x)x!b(x))";//orign = "~(x!y)";//orign = "~(~a(b))";string orign,temp;char command,command0,command1,command2,command3,command4,command5, command6,command7,command8,command9,command10;//================================================================= ============cout<<"请输入(Y/y)初始化谓词演算公式"<<endl;cin>>command;if(command == 'y' || command == 'Y')initString(orign);elseexit(0);//=============================================================================cout<<"请输入(Y/y)消除空格"<<endl;cin>>command0;if(command0 == 'y' || command0 == 'Y'){//del_blank(orign);//undonecout<<"消除空格后是"<<endl<<orign<<endl;}elseexit(0);//================================================================= ============cout<<"请输入(Y/y)消去蕴涵项"<<endl;cin>>command1;if(command1 == 'y' || command1 == 'Y'){orign =del_inlclue(orign);cout<<"消去蕴涵项后是"<<endl<<orign<<endl;}elseexit(0);//================================================================= ============cout<<"请输入(Y/y)减少否定符号的辖域"<<endl;cin>>command2;if(command2 == 'y' || command2 == 'Y'){do{temp = orign;orign = dec_neg_rand(orign);}while(temp != orign);cout<<"减少否定符号的辖域后是"<<endl<<orign<<endl;}elseexit(0);//================================================================= ============cout<<"请输入(Y/y)对变量进行标准化"<<endl;cin>>command3;if(command3 == 'y' || command3 == 'Y'){orign = standard_var(orign);cout<<"对变量进行标准化后是"<<endl<<orign<<endl;}elseexit(0);//================================================================= ============cout<<"请输入(Y/y)消去存在量词"<<endl;cin>>command4;if(command4 == 'y' || command4 == 'Y'){orign = del_exists(orign);cout<<"消去存在量词后是(w = g(x)是一个Skolem函数)"<<endl<<orign<<endl;}elseexit(0);//================================================================= ============cout<<"请输入(Y/y)化为前束形"<<endl;cin>>command5;if(command5 == 'y' || command5== 'Y'){orign = convert_to_front(orign);cout<<"化为前束形后是"<<endl<<orign<<endl;}elseexit(0);//================================================================= ============cout<<"请输入(Y/y)把母式化为合取方式"<<endl;cin>>command6;if(command6 == 'y' || command6 == 'Y'){orign = convert_to_and(orign);cout<<"把母式化为合取方式后是"<<endl<<orign<<endl;}elseexit(0);//=============================================================================cout<<"请输入(Y/y)消去全称量词"<<endl;cin>>command7;if(command7 == 'y' || command7 == 'Y'){orign= del_all(orign);cout<<"消去全称量词后是"<<endl<<orign<<endl;}elseexit(0);//================================================================= ============cout<<"请输入(Y/y)消去连接符号"<<endl;cin>>command8;if(command8 == 'y' || command8 == 'Y'){orign = del_and(orign);cout<<"消去连接符号后是"<<endl<<orign<<endl;}elseexit(0);//================================================================= ============cout<<"请输入(Y/y)变量分离标准化"<<endl;cin>>command9;if(command9 == 'y' || command9 == 'Y'){orign = change_name(orign);cout<<"变量分离标准化后是(x1,x2,x3代替变量x)"<<endl<<orign<<endl;}elseexit(0);//================================================================= ===========cout<<"-------------------------完毕-----------------------------------"<<endl;cout<<"(请输入Y/y)结束"<<endl;do{}while('y' == getchar() || 'Y'==getchar());exit(0);}string change_name(string temp)//更换变量名称{char ctemp[100];strcpy(ctemp,temp.c_str());string output = "";int i = 0,j = 0,falg = 0;while(ctemp[i] != '\0' && i < temp.length()){falg++;while('\n' != ctemp[i] && i < temp.length()){if('x' == ctemp[i]){output = output + ctemp[i] ;output = output + numAfectChar(falg);}elseoutput = output + ctemp[i] ;i++;}output = output + ctemp[i] ;i ++;}return output;}bool isAlbum(char temp){if(temp <= 'Z' && temp >= 'A' || temp <= 'z' && temp >= 'a') return true;return false;}char numAfectChar(int temp)//数字显示为字符{char t;switch (temp){case 1:t = '1';break;case 2:t = '2';break;case 3:t = '3';break;case 4:t = '4';break;default:t = '89';break;}return t;}四、实验步骤:1对默认谓词公式进行转换。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
cin>>command3;
if(command3 == 'y' || command3 == 'Y')
{
orign = standard_var(orign);
cout<<"对变量进行标准化后是"<<endl
<<orign<<endl;
}
else
exit(0);
//=============================================================================
cout<<"请输入(Y/y)消去连接符号"<<endl;
cin>>command8;
if(command8 == 'y' || command8 == 'Y')
{
orign = del_and(orign);
cout<<"消去连接符号后是"<<endl
<<orign<<endl;
}
else
exit(0);
//orign = "~(#x)y(x)";
//orign = "~((@x)x!b(x))";
//orign = "~(x!y)";
//orign = "~(~a(b))";
string orign,temp;
char command,command0,command1,command2,command3,command4,command5,
cout<<"请输入(Y/y)减少否定符号的辖域"<<endl;
cin>>command2;
if(command2 == 'y' || command2 == 'Y')
{
do
{
temp = orign;
orign = dec_neg_rand(orign);
}while(temp != orign);
//=============================================================================
cout<<"请输入(Y/y)变量分离标准化"<<endl;
cin>>command9;
if(command9 == 'y' || command9 == 'Y')
{
orign = change_name(orign);
cout<<"变量分离标准化后是(x1,x2,x3代替变量x)"<<endl
<<orign<<endl;
}
else
exit(0);
//============================================================================
cout<<"请输入(Y/y)把母式化为合取方式"<<endl;
cin>>command6;
if(command6 == 'y' || command6 == 'Y')
{
orign = convert_to_and(orign);
cout<<"把母式化为合取方式后是"<<endl
<<orign<<endl;
三、实验内容代码:
void main()
{
cout<<"------------------求子句集九步法演示-----------------------"<<endl;
system("color 0A");
//orign = "Q(x,y)%~(P(y)";
//orign = "(@x)(P(y)>P)";
cin>>command;
if(command == 'y' || command == 'Y')
initString(orign);
else
exit(0);
//=============================================================================
cout<<"请输入(Y/y)消去存在量词"<<endl;
cin>>command4;
if(command4 == 'y' || command4 == 'Y')
{
orign = del_exists(orign);
cout<<"消去存在量词后是(w = g(x)是一个Skolem函数)"<<endl
return false;
}
char numAfectChar(int temp)//数字显示为字符
{
char t;
switch (temp)
{
case 1:
t = '1';
break;
case 2:
t = '2';
break;
case 3:
t = '3';
break;
case 4:
t = '4';
}
else
exit(0);
//=============================================================================
cout<<"请输入(Y/y)消去全称量词"<<endl;
cin>>command7;
if(command7 == 'y' || command7 == 'Y')
cout<<"减少否定符号的辖域后是"<<endl
<<orign<<endl;
}
else
exit(0);
//=============================================================================
cout<<"请输入(Y/y)对变量进行标准化"<<endl;
}
string change_name(string temp)//更换变量名称
{
char ctemp[100];
strcpy(ctemp,temp.c_str());
string output = "";
int i = 0,j = 0,falg = 0;
while(ctemp[i] != '\0' && i < temp.length())
cout<<"-------------------------完毕-----------------------------------"<<endl;
cout<<"(请输入Y/y)结束"<<endl;
do
{
}while('y' == getchar() || 'Y'==getchar());
exit(0);
{
falg++;
while('\n' != ctemp[i] && i < temp.length())
{
if('x' == ctemp[i])
{
output = output + ctemp[i] ;
output = output + numAfectChar(falg);
}
else
output = output + ctemp[i] ;
<<orign<<endl;
}
else
exit(0);
//=============================================================================
cout<<"请输入(Y/y)化为前束形"<<endl;
cin>>command5;
if(command5 == 'y' || command5== 'Y')
cout<<"请输入(Y/y)消除空格"<<endl;
cin>>command0;
if(command0 == 'y' || command0 == 'Y')
{
//del_blank(orign);//undone
cout<<"消除空格后是"<<endl
<<orign<<endl;
相关文档
最新文档