文档介绍:2020/4/、LISP、PROLOG是常用的人工智能语言。LISP——函数程序设计语言,20世纪50年代后期。PROLOG——逻辑程序设计语言,20世纪70年代中期。目前C、C++使用比较多。专家系统开发语言或开发工具。如:CLIPS语言。arthy2020/4/102二、逻辑程序设计语言(说明性语言);易于表达人的思维,主要应用于专家系统、规划、自然语言理解、机器定理证明等人工智能相关问题的求解。,逻辑式语言都支持说明性程序设计风范;1)根据问题约束的高层描述来构建程序;2)告诉计算机“什么是真的”和“需要做什么”,而不是“怎样做”;3)允许程序员集中精力对待求解问题(一个封闭的世界)的描述,而不是写一些诸如“下一步做什么”之类的底层算法指令。2020/4/103【】:水平线与垂直线问题。使用两个谓词:vertical/2和horizontal/2vertical(line(point(X,Y),point(X,Z))).horizontal(line(point(X,Y),point(Z,Y))).vertical(line(point(1,1),point(1,3))).yes事实查询/目标horizontal(line(point(1,1),point(2,Y))).Y = 1 ;nohorizontal(line(point(2,3),P)).P = point(_G434,3) ;no什么是真的?需要做什么?2020/4/104【】求解以下六个英语单词的纵横字谜问题。abalone,abandon,anagram,connect,elegant,enhance事实规则2020/4/查询/目标2020/4/106一、所有的Prolog语句由项(term)(atom):Prolog的符号值以小写字母开始的一串字母、数字、下划线或用单引号界定的一串任何可打印的ASCII字符。、数字和下划线;下划线(_)表示匿名变量;注意与命令式语言中变量的区别。(谓词/复杂项)谓词演算的原子命题functor(term_1,...,term_n)算符(项1,…,项n)、Prolog语言及其基本结构Prolog的基本语句仅有三种,即事实、规则和目标。Prolog是陈述性语言,一旦给它提交必要的事实和规则之后,Prolog就使用内部的演绎推理机制自动求解程序给定的目标,而不需要在程序中列出详细的求解步骤。1、事实事实用来说明一个问题中已知的对象和它们之间的关系。在Prolog程序中,事实由谓词名及用括号括起来的一个或几个对象组成。谓词和对象可由用户自己定义。例如,likes(bill,book). 是一个名为like的关系,表示对象bill和book之间有喜欢的关系。2020/4/1082、规则由几个互相有依赖性的简单句(谓词)组成,用来描述事实之间的依赖关系。从形式上看,规则由左边表示结论的后件谓词和右边表示条件的前提谓词组成。bird(X):-animal(X),has(X,feather). 表示凡是动物并且有羽毛,那么它就是鸟。3、目标(问题)目标的结构与事实或规则相同,可以是一个简单的谓词,也可以是多个谓词的组合。目标分内、外两种,内部目标写在程序中,外部目标在程序运行时由用户手工键入。?-student(john).表示“john是学生吗?”2020/4/109三、,约束变量即有值的变量。,指谓词名相同,参数个数和类型对应相同,另:若两个均为常量,则必须相同;若两个为约束变量,则两约束值相同;若一个为常量,一个为变量,则约束值与常量相同;至少有一个自由变量。例:p(“ob1”,”ob2”,z).p(“ob1”,X,Y).只有当1)X被约束为”ob2”,2)Y、Z的约束值相同或至少有一个自由变量时,才可匹配合一。