信息技术与工程学院
课程名称 论文题目 专业班级 作 者 指导教师
成
2016 年6月 16 日 绩
人工智能PROLOG语言简介
因特网上丰富的人工智能教育资源为我国高中人工智能教育的开展提供了一个强有力的学习支持。虽然大多以国外网站居多,但教师若能结合本校实际情况和学生的特点对其合理利用,使之本土化、校本化,无疑能够有效地促进人工智能教育的顺利开展。 人工智能(AI)语言是一类适应于人工智能和知识工程领域的、具有符号处理和逻辑推理能力的计算机程序设计语言。能够用它来编写程序求解非数值计算、知识处理、推理、规划、决策等具有智能的各种复杂问题。
典型的人工智能语言主要有LISP、Prolog、Smalltalk、C++等。
一般来说,人工智能语言应具备如下特点:
•具有符号处理能力(即非数值处理能力);
•适合于结构化程序设计,编程容易;
•具有递归功能和回溯功能;
•具有人机交互能力;
•适合于推理;
•既有把过程与说明式数据结构混合起来的能力,又有辨别数据、确定控制的模式匹配机制。
其中,Prolog语言是人工智能与专家系统领域最著名的逻辑程序设计语言。Visual Prolog指可视化逻辑程序设计语言,是基于Prolog语言的可视化集成开发环境,是Prolog开发中心(PDC)
最新推出的基于Windows环境的智能化编程工具,其语言特性符合相应的国际标准ISO/IEC 13211-1:1995。
Visual Prolog是当今新一代开发智能化应用的强有力工具,它还支持基于网络的开发、数据库、多媒体、与C语言集成等。Visual Prolog在美国、加拿大、西欧、澳大利亚、新西兰、日本、韩国、新加坡等发达国家和地区十分流行,是国际上研究和开发智能化应用的主流工具之一。目前,中国在智能化领域的教学、研究、开发及应用正在迎来一个蓬勃发展的新时期,拥有较多的群体,对这种工具软件的需求已经逐渐显现出来。国内已有不少Visual Prolog用户,一个Visual Prolog群体正在逐渐形成。预计不久的将来,在国际上已经十分流行的最新版本的可视化逻辑程序设计语言Visual Prolog将会在国内广泛流行,并将迅速成为中国研究和开发智能化应用的主流工具。
Visual Prolog具有模式匹配、递归、回溯、对象机制、事实数据库和谓词库等强大功能。它包含构建大型应用程序所需要的一切特性:图形开发环境、编译器、连接器和调试器、支持模块化和面向对象程序设计、支持系统级编程、文件操作、字符串处理、位级运算、算术与逻辑运算,以及与其他编程语言的接口。
Visual Prolog包含一个大型库,捆绑了大量的API函数,包括Windows GUI函数族、ODBC/OCI数据库函数族和因特网函数族(socket,FTP,HTTP,CGI等)。这个开发环境全部使用Visual Prolog语言写成,而且包含对话框、菜单、工具栏等若干编码专
家和图形编辑器。Visual Prolog支持Windows 9x/Me/NT/2000/XP,OS/2,Linux和SCOUNIX等操作系统。
Visual Prolog非常适合于专家系统、规划和其他AI相关问题的求解,是智能程序设计语言中具有代表性且应用较多的一种语言。由于这种语言很适合表达人的思维和推理规则,在自然语言理解、机器定理证明、专家系统等方面得到了广泛的应用,在智能程序设计语言中占有相当重要的地位。Visual Prolog不仅是优秀的智能化应用开发工具,而且与SQL数据库系统、Visual C++或其他C++开发系统、Visual Basic,Delphi或Visual Age等编程语言一样,已经成为适用于任何应用领域的强有力的通用开发工具。
Visual Prolog是基于Prolog语言的可视化集成开发环境,是PDC推出的基于Windows环境的智能化编程工具。目前,Visual Prolog在美国、西欧、日本、加拿大、澳大利亚等国家和地区十分流行,是国际上研究和开发智能化应用的主流工具之一。
Visual Prolog具有模式匹配、递归、回溯、对象机制、事实数据库和谓词库等强大功能。它包含构建大型应用程序所需要的一切特性:图形开发环境、编译器、连接器和调试器,支持模块化和面向对象程序设计,支持系统级编程、文件操作、字符串处理、位级运算、算术与逻辑运算,以及与其它编程语言的接口。
Visual Prolog包含一个全部使用Visual Prolog语言写成的有效的开发环境,包含对话框、菜单、工具栏等编辑功能。
Visual Prolog与SQL数据库系统、C++开发系统、以及Visual Basic、Delphi或Visual Age等编程语言一样,也可以用来轻松地开发各种应用。
智能化是当前计算机、自动化、通信、管理等信息科学技术领域中的新方法、新技术、新产品的重要发展方向与开发策略之一。信息处理的智能化与信息社会对智能的巨大需求是人工智能发展的强大动力。人工智能与专家系统曾取得过许多令人注目的成果,也走过不少弯路,经历过不少挫折。近几年来,随着计算机及网络技术的迅猛发展,特别是因特网的大规模普及,人工智能与专家系统的研究再度活跃起来,并正向更为广阔的领域发展。围绕人工智能与专家系统的研究和应用开发也迎来一个蓬勃发展的新时期。因此,引进与消化国际上已经广泛流行的功能强大和通用的智能程序设计语言、工具与环境,对于中国开发智能化应用系统十分必要。鉴于国内已有许多用户在使用Visual Prolog,而这方面的中文资料比较缺乏,我们编写了本书,系统介绍了基于Visual Prolog的AI程序设计的功能特点、编程方法与技术,相信对于开发智能化软件有启迪作用,也希望对国内在这一领域的教学、研究及智能化应用水平的提高起到良好的促进作用,且有益于国内同行在这一领域与国际主流保持一致。
Prolog是当代最有影响的人工智能语言之一,由于该语言很适合表达人的思维和推理规则,在自然语言理解、机器定理证明、
专家系统等方面得到了广泛的应用,已经成为人工智能应用领域的强有力的开发语言。
现在的Prolog语言有许多版本,但它们的核心部分都是一样的。Prolog的基本语句仅有三种,即事实、规则和目标三种类型的语句,且都用谓词表示,因而程序逻辑性强,文法简捷,清晰易懂。另一方面,Prolog是陈述性语言,一旦给它提交必要的事实和规则之后,Prolog就使用内部的演绎推理机制自动求解程序给定的目标,而不需要在程序中列出详细的求解步骤。
传统方法通常把问题的全部知识以各种的模型表达在固定程序中,问题的求解完全在程序制导下按着预先安排好的步骤一步一步(逐条)执行。解决问题的思路与冯·诺依曼式计算机结构相吻合。当前大型数据库法、数学模型法、统计方法等都是严格结构化的方法。
对于人工智能技术要解决的问题,往往无法把全部知识都体现在固定的程序中。通常需要建立一个知识库(包含事实和推理规则),程序根据环境和所给的输入信息以及所要解决的问题来决定自己的行动,所以它是在环境模式的制导下的推理过程。这种方法有极大的灵活性、对话能力、有自我解释能力和学习能力。这种方法对解决一些条件和目标不大明确或不完备,(即不能很好地形式化,不好描述)的非结构化问题比传统方法好。它采用试探法来解决问题。人工智能也尚未发展到完全能解决这类问题
的全部问题。这类问题是人工智能研究要解决的问题。随之而来也希望计算机硬件结构也来一个革命,突破冯·诺依曼体系结构。
1、事实
事实用来说明一个问题中已知的对象和它们之间的关系。在Prolog程序中,事实由谓词名及用括号括起来的一个或几个对象组成。谓词和对象可由用户自己定义。
例如,谓词likes(bill,book).
是一个名为like的关系,表示对象bill和book之间有喜欢的关系。
2、规则
规则由几个互相有依赖性的简单句(谓词)组成,用来描述事实之间的依赖关系。从形式上看,规则由左边表示结论的后件谓词和右边表示条件的前提谓词组成。
例如,规则 bird(X):-animal(X),has(X,feather).
表示凡是动物并且有羽毛,那么它就是鸟。
3、目标(问题)
把事实和规则写进Prolog程序中后,就可以向Prolog询问有关问题的答案,询问的问题就是程序运行的目标。目标的结构与事实或规则相同,可以是一个简单的谓词,也可以是多个谓词的组合。目标分内、外两种,内部目标写在程序中,外部目标在程序运行时由用户手工键入。
例如问题 ?-student(john).
表示“john是学生吗?”
Prolog程序的简单例子
以下两个例子在Turbo Prolog 2.0环境下运行通过。
[ 注:一个Turbo Prolog程序至少包括谓词段、子句段和目标段三项。目标可以包含在程序中,也可以在程序运行时给出。]
例1 谁是john的朋友?
predicates /*谓词段,对要用的谓词名和参数进行说明*/
likes(symbol, symbol)
friend(symbol, symbol)
clauses /*子句段,存放所有的事实和规则*/
likes(bell,sports). /*前4行是事实*/
likes(mary,music).
likes(mary,sports).
likes(jane,smith).
friend(john,X):-likes(X,sports),likes(X,music). /*本行是规则*/
当上述事实与规则输入计算机后,运行该程序,用户就可以进行询问,如输入目标:
friend(john,X)
即询问john的朋友是谁,,这时计算机的运行结果为: X=mary (mary是john的朋友)
1 Solution (得到了一个结果)
引用资料:
1. 廉师友 人工智能技术导论(第二版) 西安电子科技大学出版社 2002
2. 陈群秀 《人工智能》(远程教育研究生课程) http://www.sztvu.com/tsinghua/rgzn/art2011.htm
http://www.sztvu.com/tsinghua/rgzn/art212.htm
3. Visual Prolog语言简介
http://www.kddxy.net/~lei/VIP.html#VPL
4. 人工智能语言
http://myandyou2008.51.net/rengongzhineng/第十四章人工智能语言.htm
信息技术与工程学院
课程名称 论文题目 专业班级 作 者 指导教师
成
2016 年6月 16 日 绩
人工智能PROLOG语言简介
因特网上丰富的人工智能教育资源为我国高中人工智能教育的开展提供了一个强有力的学习支持。虽然大多以国外网站居多,但教师若能结合本校实际情况和学生的特点对其合理利用,使之本土化、校本化,无疑能够有效地促进人工智能教育的顺利开展。 人工智能(AI)语言是一类适应于人工智能和知识工程领域的、具有符号处理和逻辑推理能力的计算机程序设计语言。能够用它来编写程序求解非数值计算、知识处理、推理、规划、决策等具有智能的各种复杂问题。
典型的人工智能语言主要有LISP、Prolog、Smalltalk、C++等。
一般来说,人工智能语言应具备如下特点:
•具有符号处理能力(即非数值处理能力);
•适合于结构化程序设计,编程容易;
•具有递归功能和回溯功能;
•具有人机交互能力;
•适合于推理;
•既有把过程与说明式数据结构混合起来的能力,又有辨别数据、确定控制的模式匹配机制。
其中,Prolog语言是人工智能与专家系统领域最著名的逻辑程序设计语言。Visual Prolog指可视化逻辑程序设计语言,是基于Prolog语言的可视化集成开发环境,是Prolog开发中心(PDC)
最新推出的基于Windows环境的智能化编程工具,其语言特性符合相应的国际标准ISO/IEC 13211-1:1995。
Visual Prolog是当今新一代开发智能化应用的强有力工具,它还支持基于网络的开发、数据库、多媒体、与C语言集成等。Visual Prolog在美国、加拿大、西欧、澳大利亚、新西兰、日本、韩国、新加坡等发达国家和地区十分流行,是国际上研究和开发智能化应用的主流工具之一。目前,中国在智能化领域的教学、研究、开发及应用正在迎来一个蓬勃发展的新时期,拥有较多的群体,对这种工具软件的需求已经逐渐显现出来。国内已有不少Visual Prolog用户,一个Visual Prolog群体正在逐渐形成。预计不久的将来,在国际上已经十分流行的最新版本的可视化逻辑程序设计语言Visual Prolog将会在国内广泛流行,并将迅速成为中国研究和开发智能化应用的主流工具。
Visual Prolog具有模式匹配、递归、回溯、对象机制、事实数据库和谓词库等强大功能。它包含构建大型应用程序所需要的一切特性:图形开发环境、编译器、连接器和调试器、支持模块化和面向对象程序设计、支持系统级编程、文件操作、字符串处理、位级运算、算术与逻辑运算,以及与其他编程语言的接口。
Visual Prolog包含一个大型库,捆绑了大量的API函数,包括Windows GUI函数族、ODBC/OCI数据库函数族和因特网函数族(socket,FTP,HTTP,CGI等)。这个开发环境全部使用Visual Prolog语言写成,而且包含对话框、菜单、工具栏等若干编码专
家和图形编辑器。Visual Prolog支持Windows 9x/Me/NT/2000/XP,OS/2,Linux和SCOUNIX等操作系统。
Visual Prolog非常适合于专家系统、规划和其他AI相关问题的求解,是智能程序设计语言中具有代表性且应用较多的一种语言。由于这种语言很适合表达人的思维和推理规则,在自然语言理解、机器定理证明、专家系统等方面得到了广泛的应用,在智能程序设计语言中占有相当重要的地位。Visual Prolog不仅是优秀的智能化应用开发工具,而且与SQL数据库系统、Visual C++或其他C++开发系统、Visual Basic,Delphi或Visual Age等编程语言一样,已经成为适用于任何应用领域的强有力的通用开发工具。
Visual Prolog是基于Prolog语言的可视化集成开发环境,是PDC推出的基于Windows环境的智能化编程工具。目前,Visual Prolog在美国、西欧、日本、加拿大、澳大利亚等国家和地区十分流行,是国际上研究和开发智能化应用的主流工具之一。
Visual Prolog具有模式匹配、递归、回溯、对象机制、事实数据库和谓词库等强大功能。它包含构建大型应用程序所需要的一切特性:图形开发环境、编译器、连接器和调试器,支持模块化和面向对象程序设计,支持系统级编程、文件操作、字符串处理、位级运算、算术与逻辑运算,以及与其它编程语言的接口。
Visual Prolog包含一个全部使用Visual Prolog语言写成的有效的开发环境,包含对话框、菜单、工具栏等编辑功能。
Visual Prolog与SQL数据库系统、C++开发系统、以及Visual Basic、Delphi或Visual Age等编程语言一样,也可以用来轻松地开发各种应用。
智能化是当前计算机、自动化、通信、管理等信息科学技术领域中的新方法、新技术、新产品的重要发展方向与开发策略之一。信息处理的智能化与信息社会对智能的巨大需求是人工智能发展的强大动力。人工智能与专家系统曾取得过许多令人注目的成果,也走过不少弯路,经历过不少挫折。近几年来,随着计算机及网络技术的迅猛发展,特别是因特网的大规模普及,人工智能与专家系统的研究再度活跃起来,并正向更为广阔的领域发展。围绕人工智能与专家系统的研究和应用开发也迎来一个蓬勃发展的新时期。因此,引进与消化国际上已经广泛流行的功能强大和通用的智能程序设计语言、工具与环境,对于中国开发智能化应用系统十分必要。鉴于国内已有许多用户在使用Visual Prolog,而这方面的中文资料比较缺乏,我们编写了本书,系统介绍了基于Visual Prolog的AI程序设计的功能特点、编程方法与技术,相信对于开发智能化软件有启迪作用,也希望对国内在这一领域的教学、研究及智能化应用水平的提高起到良好的促进作用,且有益于国内同行在这一领域与国际主流保持一致。
Prolog是当代最有影响的人工智能语言之一,由于该语言很适合表达人的思维和推理规则,在自然语言理解、机器定理证明、
专家系统等方面得到了广泛的应用,已经成为人工智能应用领域的强有力的开发语言。
现在的Prolog语言有许多版本,但它们的核心部分都是一样的。Prolog的基本语句仅有三种,即事实、规则和目标三种类型的语句,且都用谓词表示,因而程序逻辑性强,文法简捷,清晰易懂。另一方面,Prolog是陈述性语言,一旦给它提交必要的事实和规则之后,Prolog就使用内部的演绎推理机制自动求解程序给定的目标,而不需要在程序中列出详细的求解步骤。
传统方法通常把问题的全部知识以各种的模型表达在固定程序中,问题的求解完全在程序制导下按着预先安排好的步骤一步一步(逐条)执行。解决问题的思路与冯·诺依曼式计算机结构相吻合。当前大型数据库法、数学模型法、统计方法等都是严格结构化的方法。
对于人工智能技术要解决的问题,往往无法把全部知识都体现在固定的程序中。通常需要建立一个知识库(包含事实和推理规则),程序根据环境和所给的输入信息以及所要解决的问题来决定自己的行动,所以它是在环境模式的制导下的推理过程。这种方法有极大的灵活性、对话能力、有自我解释能力和学习能力。这种方法对解决一些条件和目标不大明确或不完备,(即不能很好地形式化,不好描述)的非结构化问题比传统方法好。它采用试探法来解决问题。人工智能也尚未发展到完全能解决这类问题
的全部问题。这类问题是人工智能研究要解决的问题。随之而来也希望计算机硬件结构也来一个革命,突破冯·诺依曼体系结构。
1、事实
事实用来说明一个问题中已知的对象和它们之间的关系。在Prolog程序中,事实由谓词名及用括号括起来的一个或几个对象组成。谓词和对象可由用户自己定义。
例如,谓词likes(bill,book).
是一个名为like的关系,表示对象bill和book之间有喜欢的关系。
2、规则
规则由几个互相有依赖性的简单句(谓词)组成,用来描述事实之间的依赖关系。从形式上看,规则由左边表示结论的后件谓词和右边表示条件的前提谓词组成。
例如,规则 bird(X):-animal(X),has(X,feather).
表示凡是动物并且有羽毛,那么它就是鸟。
3、目标(问题)
把事实和规则写进Prolog程序中后,就可以向Prolog询问有关问题的答案,询问的问题就是程序运行的目标。目标的结构与事实或规则相同,可以是一个简单的谓词,也可以是多个谓词的组合。目标分内、外两种,内部目标写在程序中,外部目标在程序运行时由用户手工键入。
例如问题 ?-student(john).
表示“john是学生吗?”
Prolog程序的简单例子
以下两个例子在Turbo Prolog 2.0环境下运行通过。
[ 注:一个Turbo Prolog程序至少包括谓词段、子句段和目标段三项。目标可以包含在程序中,也可以在程序运行时给出。]
例1 谁是john的朋友?
predicates /*谓词段,对要用的谓词名和参数进行说明*/
likes(symbol, symbol)
friend(symbol, symbol)
clauses /*子句段,存放所有的事实和规则*/
likes(bell,sports). /*前4行是事实*/
likes(mary,music).
likes(mary,sports).
likes(jane,smith).
friend(john,X):-likes(X,sports),likes(X,music). /*本行是规则*/
当上述事实与规则输入计算机后,运行该程序,用户就可以进行询问,如输入目标:
friend(john,X)
即询问john的朋友是谁,,这时计算机的运行结果为: X=mary (mary是john的朋友)
1 Solution (得到了一个结果)
引用资料:
1. 廉师友 人工智能技术导论(第二版) 西安电子科技大学出版社 2002
2. 陈群秀 《人工智能》(远程教育研究生课程) http://www.sztvu.com/tsinghua/rgzn/art2011.htm
http://www.sztvu.com/tsinghua/rgzn/art212.htm
3. Visual Prolog语言简介
http://www.kddxy.net/~lei/VIP.html#VPL
4. 人工智能语言
http://myandyou2008.51.net/rengongzhineng/第十四章人工智能语言.htm