初识Prolog

对Prolog的初步了解

刚接触Prolog,对其能做的事甚感兴趣。

严格来说,我不认为这是程序,因为它执行哪一步不是由人来确定的,好像是有了初级的“智能”。

你定义一些规则,然后提出一个问题,它就会按这些规则来找答案。

比如有如下规则:

         father(X,Y).  % X是Y的father

         %X是Z的grandfather的条件是:X是Y的father并且Y是Z的father

         grandfather(X,Z)      :-       father(X,Y),father(Y,Z).

然后提出以下事实:

         father(tom,jerry).

         father(jack,tom).

接着提出问题

         ?-grandfather(Who, jerry). % 谁是jerry的grandfather

程序就会按照规则去找,并输出结果

         Who= jack .

是不是给人一种新奇的感觉,程序竟然能自己找答案!

但现在用Prolog人工智能的并不多,肯定有其原因,所以我打算细细探究一番。

 

开发软件介绍

龙涎在其博客中介绍了七种Prolog的编译器/解释器。我在Win7 64位系统上试了三种工具,VisualProlog, Amzi Prolog和SWI prolog。只有Visual Prolog和SWI prolog能正常运行,Amzi Prolog一直出问题,原因还未查到。

Visual Prolog有较好的IDE,但是编程时需要对谓词以及数据类型进行声明,较为复杂和繁琐。而SWI prolog则要简单得多,只需说明规则和事实,然后提出问题即可。下面说一下SWI prolog如何使用。

 

SWI prolog使用

1.下载及安装

SWI prolog官网是http://www.swi-prolog.org/

Windows各种版本的下载地址是http://www.swi-prolog.org/download/daily/bin/


根据自己情况选择一个下载,我使用的w64pl-2014-12-09.exe

然后直接安装,安装过程中会提示将".pl"文件与编译器关联(一般选择与swipl\bin目录下的swipl-win.exe进行关联)。

 

2. 开始第一个程序

新建一个文本文件,命名为"first.pl"(名字可随意更改,只需保证后缀为.pl即可), 然后对其进行编辑,我是用的是Notepad++.

在里面写如下代码后保存。

/*****************************************************************************/

% 规则

% father(X,Y).  % X是Y的father

% X是Z的grandfather的条件是:X是Y的father并且Y是Z的father

grandfather(X,Z) :-

         father(X,Y),father(Y,Z).

% 事实

father(tom, jerry).

father(jack, tom).

/*****************************************************************************/

 

之后直接双击" first.pl ",会出现一个对话窗口,如下所示:

 

在光标后输入问题:grandfather(Who, jerry).

按回车键后就会出现结果。


至此,第一个程序完成。

  • 6
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值