自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

博命生涯

To be a better man

  • 博客(25)
  • 资源 (2)
  • 收藏
  • 关注

转载 Prolog教程 16

  Prolog特别适合开发自然语言的应用系统。在这一章,我们将为寻找Nani游戏添加自然语言理解的部分。(由于Prolog谓词是使用的英文符号,所以这里的自然语言理解只能局限在英文中)在着手于编制寻找Nani之前, 我们先来开发一个能够分析简单英语句子的模块。把这种方法掌握之后,编制寻找Nani的自

2007-08-31 09:45:00 3106

转载 Prolog教程 15

  在前面的章节中,我们了解了Prolog是如何解释目标的,并且通过实例说明了Prolog的运行流程。在这一章,继续探索Prolog的程序流程控制,我们将介绍和一般的程序设计语言相似的流程控制。前面我们使用谓词fail和write/1来列印出游戏中所有的物品。这种流程控制类似于一般语言中“do,whi

2007-08-31 09:44:00 4308

转载 Prolog教程 14

  直到目前为止,我们都一直在使用Prolog内建的回溯功能。使用此功能可以方便地写出结构紧凑的谓词来。但是,并不是所有的回溯都是必须的,这时我们需要能够人工地控制回溯过程。Prolog提供了完成此功能的谓词,他叫做cut,使用符号!来表示。Cut能够有效地剔除一些多余的搜索。如果在cut处产生回溯,

2007-08-31 09:42:00 2402 1

转载 Prolog教程 13

我们已经学习过了Prolog的数据结构,它的形式如下:functor(arg1,arg2,...,argN).这是Prolog的唯一的数据结构,但是Prolog允许这种数据结构有其它的表达方法(仅仅是表达方法不同)。这种表达方法有时候更加接近我们的习惯,正如列表的两种表达法一样。现在要介绍的是操作符语法。以前曾经介绍了数学符号,在这一章我们将看到它和Prolog的数据结构是等价的,并且学习如何定义

2007-08-31 09:40:00 2269

转载 Prolog教程 12

为了能够更好地表达一组数据,Prolog引入了列表(List)这种数据结构。 列表是一组项目的集合,此项目可以是Prolog的任何数据类型,包括结构和列表。列表的元素由方括号括起来,项目中间使用逗号分割。例如下面的列表列出了厨房中的物品。[apple, broccoli, refrigerator] 我们可以使用列表来代替以前的多个子句。例如:loc_list([apple, broccoli,

2007-08-31 09:39:00 3550

转载 Prolog教程 11

Prolog的最强大的功能之一就是它内建了模式匹配的算法----联合(Unification)。以前我们所介绍的例子中的联合都是较为简单的。现在来仔细研究一下联合。下表中列出了联合操作的简要情况。变量&任何项目: 变量可以与任何项目绑定,其中也包括变量 原始项目&原始项目: 两个原始项目(原子或整数)只有当它们相同时才能联合。 结构&结构: 如果两个结构的每个相应的参数能联合,那么这两个结构可以联

2007-08-31 09:38:00 2692

转载 Prolog教程 10

到目前为止,所介绍的事实、查询以及规则都使用的是最简单的数据结构。谓词的参数都是原子或者整数,这些都是Prolog的基本组成元素。例如我们所使用过的原子有:office, apple flashlight, nani通过把这些最简单的数据组合起来,可以生成复杂的数据类型,我们称之为结构。结构由结构名和一定数量的参数组成。这与以前所学过的目标和事实是一样的。functor(arg1,arg2,...

2007-08-31 09:36:00 2453

转载 Prolog教程 9

Prolog的程序就是谓词的数据库,我们通常把这些谓词的子句写入Prolog的程序中的。在运行Prolog时,解释器首先把所有的子句调入到内存中。所以这些写在程序中的子句都是固定不变的。那么有没有办法动态地控制内存中的子句呢?Prolog提供了这方面的功能。这就意味着,Prolog程序在运行过程中,还能够改变它自己。它使用一些内部谓词来完成这个功能。最重要的几个谓词如下:asserta(X)把子句

2007-08-31 09:34:00 3534 3

转载 Prolog教程 8

Prolog中也有一些能够进行数学计算的功能,但是数学计算是不好用逻辑的事物来描述的。因此计算一个数学表达式的方法和我们以前所学习的模式匹配有很大的区别。因此,Prolog专门提供了内部谓词is来计算数学表达式。其语法形式如下:X is 变量X将被赋值为表达式的值,在回溯时不赋值。数学表达式的形式和其他的语言相同。下面是使用Prolog计算的一些例子。?- X is 2 + 2. X = 4 ?-

2007-08-31 09:32:00 3608

转载 Prolog教程 7

  到现在为止,我们已经对Prolog有了一个基本的了解,现在有必要对我们所学过的知识做一个系统的总结。 Prolog的程序是由一系列的事实和规则组成的数据库。 规则之间的调用是通过联合操作完成的,Prolog能够自动的完成模式匹配。 规则还可以调用内部谓词,例如

2007-08-31 09:31:00 4335 2

转载 Prolog教程 6

  前面我们已经说过,谓词是使用一系列的子句来定义的。以前我们所学习的子句是事实,现在让我们来看看规则吧。规则的实质就是储存起来的查询。它的语法如下:head :- body其中,head 是谓词的定义部分,与事实一样,也包括谓词名和谓词的参数说明。:- 连接符,一般可以读作‘如果’。body 一个或

2007-08-31 09:26:00 3265 4

转载 Prolog教程 5

  我们可以把简单的查询连接起来,组成一些较复杂的查询。例如,如果我们想知道厨房里能吃的东西,就可以向Prolog进行如下的询问。?- location(X, kitchen), edible(X). 简单的查询只有一个目标,而混合查询可以把这些目标连接起来,从而进行较为复杂的查询。上面的连接符号,

2007-08-31 09:25:00 4330

转载 Prolog教程 4

  现在我们的游戏中已经有了一些事实,使用Prolog的解释器调入此程序后,我们就可以对这些事实进行查询了。本章和下一章中的Prolog程序只包括事实,我们要学会如何对这些事实进行查询。Prolog的查询工作是靠模式匹配完成的。查询的模板叫做目标(goal)。如果有某个事实与目标匹配,那么查询就成功了

2007-08-31 09:24:00 4533

转载 Prolog教程 3

事实 (facts) 注:斜粗体字表示Prolog的专有名词事实(facts)是prolog中最简单的谓词(predicate)。它和关系数据库中的记录十分相似。在下一章中我们会把事实作为数据库来搜索。谓词: Prolog语言的基本组成元素,可以是一段程序、一个数据类型或者是一种关系。它由谓词名和参数组成。两个名称相同而参数的数目不同的谓词是不同的谓词。 事实的语法结构如下:pred(arg1

2007-08-30 20:00:00 5963 3

转载 Prolog教程 2

探索PrologProlog在英语中的意思就是Programming in LOGic(逻辑编程)。它是建立在逻辑学的理论基础之上的, 最初是运用于自然语言的研究领域。然而现在它被广泛的应用在人工智能的研究中,它可以用来建造专家系统、自然语言理解、智能知识库等。同时它对一些通常的应用程序的编写也很有帮助。使用它能够比其他的语言更快速地开发程序,因为它的编程方法更象是使用逻辑的语言来描述程序。从

2007-08-30 19:58:00 7378 2

转载 Prolog教程 1

如果你是一位prolog的新手,希望你首先阅读这篇文章,好对prolog的全局有个了解。在这篇文章中我会把prolog和其他的程序语言做比较,所以希望你已经具有了一定的编程水平。什么是prolog?prolog是Programming in LOGic的缩写,意思就是使用逻辑的语言编写程序。prolog不是很高深的语言,相反,比较起其他的一些程序语言,例如c、basic等等语言, prol

2007-08-30 19:55:00 24659 1

原创 Aleph输入文件

Aleph是Inductive logic programming的一个工具。Aleph输入文件包括三个,分别为:事实文件(input.b),正例文件(input.f),反例文件(input.n)。三个文件的文件名字部分相同,但具有不同的扩展名。调用时,使用命令:read_all(input)。事实文件事实文件是一个形如*.b的文件,包含以Prolog子句形式进行编码的相关领域信息,也可以

2007-08-30 19:24:00 1230

原创 选择

人生要有多少次选择  每次有多少个选项眼前 却必须唯一指定一个 时光一直向前 过去不会重演你可以在下一次修正但永远回不到上一个瞬间 勇敢地做出抉择 坚定地走下去也许前路满是艰险谁又知 殊途不是引向深渊勇敢地做出抉择 坚定地走下去不再迟疑不前我要自己决定命运长出了一口气 享受一番解脱的快感抬起头 又一个岔路在我面前

2007-08-28 21:04:00 697

原创 艰难的抉择

犹豫了好多天,最终还是决定留下继续读博。不知道这条路会走多久,只知道一定会很艰辛!没有钱,没有妻,面临课题的巨大压力!真的很难!既然选择了,就不要再踌躇,给自己鼓鼓劲,调整心态,坦然面对艰辛。我现在要尽快转变思路,不能再纠缠在读博好不好的问题中。我面临的问题已经是:如何做研究!既然选择了远方,便不顾风雨兼程。漫漫长路,谁人与我同行? 

2007-08-26 21:50:00 839

原创 Unix哲学

Unix遵循的原则是KISS(Keep it simple, stupid)。在http://en.wikipedia.org/wiki/Unix_philosophy 上有很多的基本上大同小异的Unix哲学,都是很经典的。        Doug McIlroy 是认为UNIX的哲学是这样的:三条哲学,简明扼要,就是这三条哲学贯穿着整个Unix世界。尤其是第一条“do one thing

2007-08-15 18:26:00 1696

原创 冠军的致辞

今年的国际高校编程竞赛冠军由一支来自波兰的华沙大学的代表队摘得,这个队之所以取得了这么好的成绩要归因于Jan Madey教授的指导。Jan Madey的夺冠致辞:“我们团队在去日本决赛之前确立了两个目标,一个最低目标、一个最高目标,我们的最低目标是获得冠军,而我们的最高目标是彻底击垮所有对手。”我希望我也能有这样的态度和意志。 

2007-08-12 13:34:00 1323

原创 英语谚语收藏

 智慧英语Blind men can judge no colours. 不宜问道于盲. Blessed is he who expects nothing, for he shall never be disappointed. 人无所求最享福,因他不为失望苦. Blood is thicker than water. 血浓于水. Blood will have blood. 血债要用血

2007-08-12 08:54:00 987

原创 编程好习惯

我们在编码的时候总是希望能写出风格良好,清晰、健壮的程序,把代码当成一件艺术品来看待、来雕琢,让coding成为一种艺术。 看了很多大牛关于编程风格与修养方面的文章,很受启发,结合自己体会,简录几条,提醒自己时刻注意。1.参数检查对于有参数的函数,首先要对参数的合法性进行检查。可以利用assert断言或其他方式进行判断。.对于文件、动态分配内存等需要进行系统调用的操作应该对返回值进行检查。2.动态

2007-08-11 14:30:00 950

原创 初中踢球的日子

昨日与初中同学的聊天不禁勾起了我对初中生活的回忆,想起了那时踢球的日子。那是一群多么纯真,多么可爱的孩子,那是一段多么难忘的清纯岁月。 那时的我们是青涩的,害羞的,来自不同的小学,彼此还不熟悉,是足球将我们紧紧联系到一起。每个中午,体育课,放学后,我们都要痛快的踢上一场,酣畅淋漓。学校的操场上,广场前的草坪上都留下了我们的身影与足迹。忘不了,瓢泼大雨之中的追逐、奔跑;忘不了,踢碎玻璃后的逃之夭

2007-08-11 14:29:00 853

转载 编程修养

什么是好的程序员?是不是懂得很多技术细节?还是懂底层编程?还是编程速度比较快?我觉得都不是。对于一些技术细节来说和底层的技术,只要看帮助,查资料就能找到,对于速度快,只要编得多也就熟能生巧了。我认为好的程序员应该有以下几方面的素质:  1、有专研精神,勤学善问、举一反三。  2、积极向上的态度,有创造性思维。  3、与人积极交流沟通的能力,有团队精神。  4、谦虚谨慎,戒骄戒燥。  5、写出的代码

2007-08-11 14:24:00 701

C.Plus.Plus.Coding.Standards.101.Rules.Guidelines.and.Best.Practices.

讲述c++编程中标准的原则,帮助您编写更好更健康的代码。

2009-08-25

Gentle Tutorial of the EM Algorithm.pdf

是一个关于EM算法不错的综述,讲述的比较全面且浅显。

2009-08-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除