人工智能语言--PROLOG
[ 作者:张家华    转贴自:本站原创    点击数:6710    更新时间:2004-6-6    文章录入:admin ]
 
 
 

一、什么是人工智能语言 人工智能(AI)语言是一类适应于人工智能和知识工程领域的、具有符号处理和逻辑推理能力的计算机程序设计语言。能够用它来编写程序求解非数值计算、知识处理、推理、规划、决策等具有智能的各种复杂问题。 典型的人工智能语言主要有LISP、Prolog、Smaltalk、C++等。 一般来说,人工智能语言应具备如下特点: •具有符号处理能力(即非数值处理能力); •适合于结构化程序设计,编程容易; •具有递归功能和回溯功能; •具有人机交互能力; •适合于推理; •既有把过程与说明式数据结构混合起来的能力,又有辨别数据、确定控制的模式匹配机制。 人们可能会问,用人工智能语言解决问题与传统的方法有什么区别呢? 传统方法通常把问题的全部知识以各种的模型表达在固定程序中,问题的求解完全在程序制导下按着预先安排好的步骤一步一步(逐条)执行。解决问题的思路与冯.诺依曼式计算机结构相吻合。当前大型数据库法、数学模型法、统计方法等都是严格结构化的方法。 对 于人工智能技术要解决的问题,往往无法把全部知识都体现在固定的程序中。通常需要建立一个知识库(包含事实和推理规则),程序根据环境和所给的输入信息以 及所要解决的问题来决定自己的行动,所以它是在环境模式的制导下的推理过程。这种方法有极大的灵活性、对话能力、有自我解释能力和学习能力。这种方法对解 决一些条件和目标不大明确或不完备,(即不能很好地形式化,不好描述)的非结构化问题比传统方法好,它通常采用启发式、试探法策略来解决问题。 二、Prolog语言及其基本结构 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                (得到了一个结果) 程序运行界面如下图所示:

例2 汉诺塔问题:         有N个有孔的盘子,最初这些盘子都叠放在柱a上(如图1),要求将这N个盘子借助柱b从柱a移到柱c(如图2),移动时有以下限制:每次只能移动一个盘子;大盘不能放在小盘上。问如何移动?

该问题可以采用递归法思想来求解,其源程序为: predicates                             /*谓词段*/        hanoi(integer)        move(integer,symbol,symbol,symbol)        inform(symbol,symbol).        clauses                               /*子句段*/        hanoi(N):-move(N,a,b,c).        move(1,A,_,C):-inform(A,C),!.        move(N,A,B,C):-N1=N-1,move(N1,A,C,B),                       inform(A,C),move(N1,B,A,C).        inform(Loc1,Loc2):-nl,write("移动1个盘子从柱" ,Loc1,"到柱",Loc2).             goal                                /*目标段,问移动3个盘子的方法*/        hanoi(3).

这个例子的目标包含在程序里面,因此运行时程序将直接输出所有结果。 程序运行界面如下图所示:

四、Prolog语言的常用版本 Prolog语言最早是由法国马赛大学的Colmerauer和他的研究小组于1972年研制成 功。早期的Prolog版本都是解释型的,自1986年美国Borland公司推出编译型Prolog,即Turbo Prolog以后,Prolog便很快在PC机上流行起来。后来又经历了PDC PROLOG、Visual Prolog不同版本的发展。并行的逻辑语言也于80年代初开始研制,其中比较著名的有PARLOG、Concurrent PROLOG等。 1、Turbo Prolog 由美国Prolog开发中心(Prolog Development Center, PDC)1986年开发成功、Borland公司对外发行,其1.0,2.0,2.1版本取名为Turbo Prolog,主要在IBM PC系列计算机,MS-DOS环境下运行。 2、PDC Prolog 1990年后,PDC推出新的版本,更名为PDC Prolog 3.0,3.2,它把运行环境扩展到OS/2操作系统,并且向全世界发行。它的主要特点是: •速度快。编译及运行速度都很快,产生的代码非常紧凑。 •用户界面友好。提供了图形化的集成开发环境。 •提供了强有力的外部数据库系统。 •提供了一个用PDC Prolog编写的Prolog解释起源代码。用户可以用它研究Prolog的内部机制,并创建自己的专用编程语言、推理机、专家系统外壳或程序接口。 •提供了与其他语言(如C、Pascal、Fortran等)的接口。Prolog和其他语言可以相互调用对方的子程序。 •具有强大的图形功能。支持Turbo C、Turbo Pascal同样的功能。 3、Visual Prolog Visual Prolog是基于Prolog语言的可视化集成开发环境,是PDC推出的基于Windows环境的智能化编程工具。目前,Visual Prolog在美国、西欧、日本、加拿大、澳大利亚等国家和地区十分流行,是国际上研究和开发智能化应用的主流工具之一。 Visual Prolog具有模式匹配、递归、回溯、对象机制、事实数据库和谓词库等强大功能。它包含构建大型应用程序所需要的一切特性:图形开发环境、编译器、连接 器和调试器,支持模块化和面向对象程序设计,支持系统级编程、文件操作、字符串处理、位级运算、算术与逻辑运算,以及与其它编程语言的接口。 Visual Prolog包含一个全部使用Visual Prolog语言写成的有效的开发环境,包含对话框、菜单、工具栏等编辑功能。 Visual Prolog与SQL数据库系统、C++开发系统、以及Visual Basic、Delphi或Visual Age等编程语言一样,也可以用来轻松地开发各种应用。 Visual Prolog软件的下载地址为:http://www.visual-prolog.com 。

人工智能语言--PROLOG相关推荐

  1. 人工智能语言 PROLOG 很智能

    人工智能语言是一类适应于人工智能和知识工程领域的.具有符号处理和逻辑推理能力的计算机程序设计语言,其中Prolog是当代最有影响的人工智能语言之一. 一.什么是人工智能语言 人工智能(AI)语言是一类 ...

  2. Atitit.5gl 第五代语言编程语言 PROLOG教程  人工智能语言的标准 与实现

    Atitit.5gl 第五代语言编程语言 PROLOG教程  人工智能语言的标准 与实现 1. 第五代语言就是自然语言又被称为知识库语言或人工智能语言,1 2. 人工智能语言特点2 2.1. 试探法2 ...

  3. TIOBE 8 月编程语言排行榜:数据挖掘和人工智能语言强势崛起!

    整理 | 郑丽媛 出品 | CSDN(ID:CSDNnews) 今天,TIOBE 官方最新发布了 8 月的编程语言榜单,一起来看本月榜单中有什么值得关注的发展趋势吧? (图片来自视觉中国) 数据挖掘和 ...

  4. 知识库递归编程java和prolog代码;逻辑语言Prolog简介(附24555字PDF发“递归prolog简介”下载)

    知识库递归编程java和prolog代码:逻辑语言Prolog简介(附24555字PDF发"递归prolog简介"下载) 数据简化DataSimp 今天 数据简化DataSimp导 ...

  5. 人工智能语言python实验报告_【报名】人工智能语言Python启蒙课程(五六年级)...

    原标题:[报名]人工智能语言Python启蒙课程(五六年级) 7月,图书馆为中低年级的小朋友准备了两期8节课的少儿编程启蒙课程.8月,我们将为小学高年级的学生朋友献上一期人工智能语言Python启蒙公 ...

  6. 从I到R:人工智能语言简史

    整理 | apddd 出品 | AI科技大本营(ID:rgznai100) 语言的界限就是我与世界的界限. --维特根斯坦 编程语言之所以能持续吸引新用户,大多并非源于语言自身特性,而是因其成为了某种 ...

  7. 人工智能语言,我们的骄傲

    最适合开发人工智能的编程语言有哪些 这两年,"一只狗"AlphaGo打遍天下棋手无对手,让我们认识了什么叫人工智能.在刚刚过去的IT领袖峰会上,BAT三位大佬都表示看好人工智能的未 ...

  8. java人工智能语言_5种人工智能编程语言!Java依然屹立不倒

    如果您正在开发一个新的人工智能项目,但仍然没有决定使用哪种语言进行编程,那么您现在马上就要知道了. 人工智能是工程学的一个分支,其基本目的是使计算机能够以与智能人类相似的方式智能思考.以下是最常用于制 ...

  9. 人工智能语言python培训

    (报告出品方/作者:申万宏源,刘洋) 1. AI产业链:从算力到应用 1.1 AI行业产业链:工作流程视角 设计.实现.运行: 算法设计环节:机器视觉.语音识别.自然语音处理.知识图谱: 算法实现环节 ...

最新文章

  1. 10个非常有趣的Linux命令
  2. 摩根士丹利华鑫基金公司面试
  3. 《系统集成项目管理工程师》必背100个知识点-46质量与等级
  4. H5与Native交互之JSBridge技术 1
  5. 关于http协议的理解
  6. 天梯—计算阶乘和(C语言)
  7. 2011-寒假 linux 学习笔记
  8. 快速上手使用本地测试工具postman
  9. 常用Word 排版要求
  10. 计算机给文件重命名快捷键,计算机中文件重命名快捷键是什么
  11. 远程登陆服务器跑深度学习程序
  12. 最详细的【微信小程序+阿里云Web服务】开发部署指引(十一):开发小程序设置功能
  13. 手写java_JAVA实现简单手写识别
  14. 计算机关机更改域用户登录,计算机怎么退域和重新加域?
  15. Matlab操作excel格式文件
  16. tensorflow最新版本与keras版本对应
  17. 台式计算机经常使用的硬盘是什么尺寸,台式机固态硬盘多大合适
  18. 中信银行信用卡中心2020校园招聘风险管理类 | 一面+二面(2019.10.12-13)
  19. 基于粒子群PSO优化灰色神经网络的鞋销量预测
  20. 学生选课系统(模拟)

热门文章

  1. Nginx实现https反向代理配置
  2. python神经网络分析案例_python神经网络实战
  3. python神经网络编程pdf百度云下载-Python神经网络编程高清版.pdf
  4. START 0.296.1 中文版 (腾讯官方云游戏平台)
  5. 基于linux的oracle_rac实时应用集群研究,基于Linux的OracleRAC实时应用集群研究毕业设计论文(资料4)...
  6. Web前端第三阶段--DOM
  7. 公司不让使用XShell破解版后,我准备用这种方式!
  8. 使用计算机解决科学研究,应用计算机科学
  9. Google Dremel数据模型详解
  10. STARK中的FRI代码解析