AI PROLOG语言
- 格式:pptx
- 大小:973.12 KB
- 文档页数:58
人工智能语言——PROLOG作者:王春莲王海霞来源:《电脑知识与技术·学术交流》2008年第05期摘要:Prolog是人工智能语言的一个典型代表。
本文简要阐述了人工智能语言及其特点,并通过实例介绍了Prolog语言及其基本结构。
关键词:人工智能语言;Prolog;递归中图分类号:TP312文献标识码:A文章编号:1009-3044(2008)05-10ppp-0cProlog的思想最早由R. Kowalski提出,1972年,第一个prolog语言在法国的马赛研制成功,最初设计思想是以FOL为背景,设计一个处理逻辑推理问题的会话式语言。
Prolog 目前是AI应用中重要的开发工具,也是开发知识库、ES、自然语言接口、智能信息管理系统的重要工具。
1 什么是人工智能语言人工智能(AI)语言是一类适应于人工智能和知识工程领域的、具有符号处理和逻辑推理能力的计算机程序设计语言。
能够用它来编写程序求解非数值计算、知识处理、推理、规划、决策等具有智能的各种复杂问题。
典型的人工智能语言主要有LISP、Prolog、Smalltalk、C++等。
一般来说,人工智能语言应具备如下特点:(1)具有符号处理能力;(2)适合于结构化程序设计,编程容易;(3)具有递归功能和回溯功能;(4)具有人机交互能力;(5)适合于推理。
人们可能会问,用人工智能语言解决问题与传统的方法有什么区别呢?传统方法通常把问题的全部知识以各种的模型表达在固定程序中,问题的求解完全在程序制导下按着预先安排好的步骤一步一步(逐条)执行。
解决问题的思路与冯.诺依曼式计算机结构相吻合。
当前大型数据库法、数学模型法、统计方法等都是严格结构化的方法。
对于人工智能技术要解决的问题,通常需要建立一个知识库,程序根据环境和所给的输入信息以及所要解决的问题来决定自己的行动,所以它是在环境模式的制导下的推理过程。
这种方法有极大的灵活性、对话能力、有自我解释能力和学习能力。
实验一 PROLOG 语言编程一、实验目的1.加深学生对逻辑程序运行机理的理解。
2.掌握PROLOG 语言的特点、熟悉其编程环境。
3.为今后人工智能程序设计做好准备。
二、预习要求1.复习PROLOG 语言的语法。
2.熟悉PROLOG 的语言环境。
3.阅读一些PROLOG 的程序。
三、实验内容1、编写一个描述亲属关系的PROLOG 程序,然后再给予出一些事实数据,建立一个小型演绎数据库。
提示:可以以父亲和母亲为基本关系(作为基本谓词),再由此来描述祖父、祖母、兄弟、姐妹以及其他所属关系。
2、编写一个路径查询程序,使其能输出图中所有路径。
提示:程序中的事实描述了下面的有向图,规则是图中两节点间通路的定义。
3、一个雇主在发出招聘广告之后,收到了大量的应聘申请。
为了从中筛选出不量的候选人,该雇主采用下列判据:申请者必须会打字、开车,并且住在伦敦。
(a )用Prolog 规则表述这个雇主的选择准则。
(b )用Prolog 事实描述下列申请者的情况:史密斯住在剑桥,会开车但不会打字。
布朗住在伦敦,会开车也会打字。
简住在格拉斯哥,不会开车但会打字。
埃文斯住在伦敦,会开车也会打字。
格林住在卢顿,会开车也会打字。
(c )要求Prolog 提供一个候选人名单。
e四、代码1、编写一个描述亲属关系的PROLOG程序,然后再给予出一些事实数据,建立一个小型演绎数据库。
提示:可以以父亲和母亲为基本关系(作为基本谓词),再由此来描述祖父、祖母、兄弟、姐妹以及其他所属关系。
domainsname=symbol.predicatesmother(name,name).father(name,name).grandfather(name,name).grandmother(name,name).sister(name,name).aunt(name,name).goalgrandmother(a,X),write("X=",X),nl,father(b,Y),write("Y=",Y),nl,sister(d,Z),write("Z=",Z),nl,aunt(d,T),write("T=",T).clausesmother(a,c).mother(a,d).mother(c,g).mother(c,f).father(b,c).father(b,d).father(e,g).father(e,f).grandfather(X,Z):-father(X,Z),father(Y,Z).grandmother(X,Z):-mother(X,Y),mother(Y,Z).sister(X,Y):-mother(Z,X),mother(Z,Y).aunt(X,Y):-mother(Z,Y),sister(Z,X).2、编写一个路径查询程序,使其能输出图中所有路径。
人工智能技术基础实验报告姓名:学号:班级:指导教师:完成时间:实验一 PROLOG语言编程练习1目的与要求实验目的:加强学生对逻辑程序运行机能的理解,使学生掌握PROLOG语言的特点、熟悉其编程环境,同时为后面的人工智能程序设计做好准备。
实验要求:(1)程序自选,但必须是描述某种逻辑关系的小程序。
(2)跟踪程序的运行过程,理解逻辑程序的特点。
(3)对原程序可作适当修改,以便熟悉程序的编辑、编译和调试过程。
2实验环境Turbo PROLOG3实验内容在Turbo PROLOG或Visual Prolog集成环境下调试运行简单的PROLOG程序,如描述亲属关系的PROLOG程序或其他小型演绎数据库程序等。
4实验题目与结果(1)源程序:domainsd=integerpredicatesnot_(D,D)and_(D,D,D)or_(D,D,D)xor(D,D,D)clausesnot_(1,0).not_(0,1).and_(0,0,0).and_(0,1,0).and_(1,0,0).and_(1,1,1).or_(0,0,0).or_(0,1,1).or_(1,0,1).or_(1,1,1).xor(Input1,Input2,Output):-not_(Input1,N1),/*(1,0)*/not_(Input2,N2),/*(0,1)*/and_(Input1,N2,N3),and_(Input2,N1,N4),or_(N3,N4,Output).实验结果:(2)源程序:predicatesstudent(integer,string,real)gradegoalgrade.clausesstudent(1,"zhang",90.2).student(2,"li",95.5).student(3,"wang",96.4).grade:-write("Please input name:"),readln(Name), student(_,Name,Score),nl,write(Name,"grade is",Score).grade:-write("Sorry,the student cannot find!"). 实验结果:(3)源程序:domainsn,f=integerpredicatesfactorial(n,f)goalreadint(I),factorial(I,F),write(I,"!=",F).clausesfactorial(1,1).factorial(N,Res):-N>0,N1=N-1,factorial(N1,FacN1),Res=N*FacN1.实验结果:(4)源程序:domainss=symbolpredicatesp(s) p1(s) p2(s) p3(s) p4(s) p5(s,s) p11(s) p12(s) p31(s) goalp(X),write("the x is ",X).clausesp(a1):-p1(b),p2(c).p(a2):-p1(b),p3(d),p4(e).p(a3):-p1(b),p5(f,g).p1(b):-p11(b1),p12(b2).p3(d):-p31(d1).p2(c1).p4(e1).p5(f,g).p11(b1).p12(b2).p31(d11).实验结果:(5)源程序:domainsname=symbolage =integerpredicatesplayer(name,age)match(name,name)clausesplayer(peter,9).player(paul,10).player(chris,9).player(susan,9).match(X,Y):- player(X,9), player(Y,9), X<>Y.match(X,Y):- !, player(X,9), player(Y,9), X<>Y.match(X,Y):- player(X,9), !, player(Y,9), X<>Y.match(X,Y):- player(X,9), player(Y,9), !, X<>Y. match(X,Y):- player(X,9), player(Y,9), X<>Y, ! .实验结果:5问题及解决:第一个程序中,简单定义了与、或、非、异或,之后验证异或结果是否正确,输入数据即可,但是注意电脑是二进制,只能输入1,0。
信息技术与工程学院课程名称人工智能论文题目人工智能PROLOG语言简介专业班级13级计本二班作者******指导教师何淑贤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在美国、加拿大、西欧、澳大利亚、新西兰、日本、韩国、新加坡等发达国家和地区十分流行,是国际上研究和开发智能化应用的主流工具之一。
目前,中国在智能化领域的教学、研究、开发及应用正在迎来一个蓬勃发展的新时期,拥有较多的群体,对这种工具软件的需求已经逐渐显现出来。
用Prolog编写的人工智能专家系统设计与实现人工智能(Artificial Intelligence,AI)作为一门前沿的科学技术,正在逐渐渗透到各个领域,并在其中发挥着重要作用。
专家系统(Expert System)作为人工智能的一个重要分支,在知识表示和推理方面具有独特优势,被广泛应用于医疗、金融、工业控制等领域。
而Prolog作为一种逻辑编程语言,其规则引擎和模式匹配特性使其成为构建专家系统的理想选择。
本文将介绍如何使用Prolog编写人工智能专家系统,包括设计思路、实现步骤和案例分析。
1. 专家系统概述专家系统是一种模拟人类专家决策过程的计算机程序,通过将专家的知识和经验转化为计算机可处理的形式,来解决复杂的问题。
专家系统通常由知识库、推理机制和用户接口三部分组成,其中知识库存储了领域知识,推理机制根据用户输入的问题和知识库中的规则进行推理,最终给出结论或建议。
2. Prolog简介Prolog是一种基于逻辑的编程语言,其核心思想是利用逻辑规则进行推理。
Prolog程序由事实(Facts)和规则(Rules)组成,通过匹配规则中的条件来实现推理过程。
Prolog具有强大的模式匹配能力和自动回溯机制,非常适合用于构建专家系统。
3. 人工智能专家系统设计3.1 知识表示在设计人工智能专家系统时,首先需要将领域知识表示为Prolog 中的事实和规则。
事实通常包括对象之间的关系或属性,而规则描述了根据某些条件得出结论的推理过程。
例如,在医疗领域的专家系统中,可以表示疾病与症状之间的关系,以及根据症状推断可能患有的疾病。
3.2 推理机制推理是专家系统的核心功能,Prolog通过自动搜索匹配规则来实现推理过程。
当用户提出问题时,系统会根据用户输入的信息和知识库中的规则进行匹配,并逐步推导出结论。
如果存在多个可能的结论,Prolog会尝试不同路径直到找到所有可能解。
3.3 用户接口为了方便用户与专家系统交互,需要设计友好的用户接口。