资源描述:
《prolog语言.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、PROLOG语言Prolog在英语中的意思就是ProgramminginLOGic(逻辑编程)。它是建立在逻辑学的理论基础之上的,最初是运用于自然语言的研究领域。然而现在它被广泛的应用在人工智能的研究中,它可以用来建造专家系统、自然语言理解、智能知识库等。它对一些通常的应用程序的编写也很有帮助。使用它能够比其他的语言更快速地开发程序,因为它的编程方法更象是使用逻辑的语言来描述程序。PROLOG特点超高级语言说明性语言(对于某些问题)只要告诉计算机做什么表达力强坚实的数学基础——一阶谓词逻辑自动回溯支持递归归调用
2、广泛应用于AI领域PROLOG要点DOMAINS(论域段)PREDICATES(谓词定义)CLAUSES(事实及规则段)GOAL(目标)predicatesthief(symbol)likes(symbol,symbol)may_steal(symbol,symbol)clausesthief(john).likes(tom,food).likes(john,wine).likes(john,X):-likes(tom,X).may_steal(X,Y):-thief(X),likes(X,Y).DialogG
3、oal:may_steal(john,What)What=foodWhat=wine2Solutions运行表(List)——表由方括号与元素组成,元素又可是一个表。非空表可用[x
4、y]表示,x—表头y—表尾例:[a,b,c][a
5、[b,c]][b,c][b
6、[c]][c][c
7、[]]空表无表头!表头a表尾[b,c]表头b表尾[c]表头c表尾[]匹配与回溯自动实现的搜索算法之一——匹配Prolog语言能自动将目标与知识库子句集中的事实、规则的结论部分(从第一句开始到最后一句为止)逐句进行匹配。下述三种情况之一
8、者匹配成功:(1)完全相同例:thief(john)与thief(john)(2)谓词相同,相应项一为变量,一为常量——变量实例化例:thief(Y)与thief(john)匹配结果:Y被实例化为john{john/Y}(3)谓词相同,相应项均为变量——变量一致化clauseslikes(tom,talk)./*1*/likes(bill,swim)./*2*/likes(bill,talk)./*3*/likes(mary,wine)./*4*/likes(tom,X):-likes(mary,X)./*5*
9、/如果Goal:likes(bill,talk)与第3句匹配一致如果Goal:likes(tom,wine)与第5句左部匹配{wine/X}任务转化为likes(mary,wine)与第3句匹配一致例1DialogGoal:likes(bill,talk)TrueDialogGoal:likes(tom,wine)True运行运行clauseslikes(tom,talk)./*1*/likes(bill,swim)./*2*/likes(bill,talk)./*3*/likes(mary,wine)./*4
10、*/likes(tom,X):-likes(mary,X)./*5*/如果Goal:likes(tom,swim)与第5句左部匹配{swim/X}任务转化为likes(mary,swim)与1—5匹配均失败DialogGoal:likes(tom,swim)False运行clausesfact(1,1)./*1*/fact(X,Y):-X1=X-1,fact(X1,Y1),Y=X*Y1./*2*/设Goal:fact(2,N)与1匹配失败与2左部匹配成功{2/X,N/Y}产生三个子目标:(1)X1=2-1(2)
11、fact(X1,Y1)(3)N=2*Y1(1)X1=1立即成功(2)fact(1,Y1)与/*1*/匹配成功{1/Y1}(3)N=2*1=2成功例2DialogGoal:fact(2,N)N=21Solutions运行自动实现的搜索算法之二——回溯例:clauseslikes(tom,talk)./*1*/likes(bill,swim)./*2*/likes(bill,talk)./*3*/friend(john,X):-likes(X,talk),likes(X,swim)/*4*/设Goal:friend
12、(john,Who)搜索指针P1=13失败,p1=4成功,{Who/X}变量一致化,产生两个子目标:(1)likes(Who,talk)P2-1=1成功,变量实例化{tom/Who}(2)likes(tom,swim)P2-2=14均失败,Who与tom脱解,回溯——试图重新满足子目标(1)重作:(1)likes(Who,talk)P2-1=2失败,P2-1=3成功{bill/Wh