自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(58)
  • 资源 (2)
  • 收藏
  • 关注

原创 Prolog的超集---ECLiPSe

大家在看SWI-Prolog参考手册时会看到“ECLiPSe”此时不要与集成开发环境Eclipse相混淆这两个是完全不同的东西。下面来介绍ECLiPSe:ECLiPSe是一种计算机编程语言,它用于开发和部署约束编程应用程序的软件系统,例如,在优化,计划,调度,资源分配,时间表,传输等领域。它也适合于教授组合问题解决的大多数方面,例如 问题建模,约束规划,数学规划和搜索技术。它包含约束求解器库,高级建模和控制语言(Prolog的超集),与第三方求解器的接口,集成开发环境以及用于嵌入主机环境的接口。ECL

2020-10-13 17:44:51 367 2

原创 使用文件

转载自:https://mp.weixin.qq.com/s/aZ8fhJMsv8pTZL2Wvoch-w本章涉及文件处理和模块化的各个方面。我们将学习三个知识点:1.谓词定义如何分布在不同文件中。2.如何编写模块化软件系统。3.如何将结果写入文件以及如何从文件读取输入。1通过文件分割程序在这一阶段,您已经编写了许多使用谓词append / 3和member / 2的程序。每次需要其中一个时,您可能要做的就是回到定义并将其复制到要使用它的文件中。也许,在做了几次之后,您开始认为.

2020-09-11 08:34:19 396

原创 数据库操作和收集解 上机操作

转载自:https://mp.weixin.qq.com/s/5I4tC82Vym4odRLcUAlLyw当每次输入listing命令时都会有经过系统内部排过序的谓词列出,所以我们在后续的操作中都采用有具体谓词名的命令来列出要查看的谓词。?- assert(happy(mia)).true.?- listing(happy).:- dynamic happy/1.happy(mia).true.?- assert(happy(vincent))....

2020-09-11 08:34:01 360

原创 数据库操作和收集解

转载自:https://mp.weixin.qq.com/s/5tNIRd0XRtuhO-6zcQ3_UA本章有两个主要目标:1.讨论Prolog中的数据库操作。2.讨论内置谓词,这些谓词使我们将问题的所有解答收集到一个表中1 数据库操作Prolog具有四个数据库操作命令:assert,retract,asserta和assertz。让我们看看如何使用它们。假设我们从一个空的数据库开始。因此,如果我们给出命令:?-listing.然后Prolog只会回答tr...

2020-09-11 08:33:42 260

原创 截断和否定 上机操作

转载自:https://mp.weixin.qq.com/s/ETG_9fiElwWtQYb-JUf6yA?- [user].|: p(X):- a(X).|: p(X):- b(X), c(X), d(X), e(X).|: p(X):- f(X).|: a(1).|: b(1).|: b(2).|: c(1).|: c(2).|: d(2).|: e(2).|: f(3).|: ^D% user://1 compiled 0.00 sec, 11 cl

2020-09-11 08:33:22 136

原创 使用文件 上机操作

转载自:https://mp.weixin.qq.com/s/DgFxF1Rj4HN13LzRmMgeEw?- ls. //列出当前目录的所有文件//请体会下面的正确命令?- ['kb2.pl'].true.?- ['kb2'].true.?- [kb2].true.?- edit(kb2).% Waiting for editor ...% Running make to reload modified files% Upd...

2020-09-11 08:32:52 273

原创 截断和否定

转载自:https://mp.weixin.qq.com/s/w5cjPDg0SDGiIMQjpXgYBw本章有两个主要目标:1.解释如何在cut谓词的帮助下控制Prolog的回溯行为。2.解释如何将截断打包成更结构化的形式,即否定为失败。1 截断自动回溯是Prolog最具特色的功能之一。但是回溯会导致效率低下。有时,Prolog可能会浪费时间探索无能为力的可能性。对其行为的这一方面进行一些控制将是一件令人愉快的事情,但是到目前为止,我们仅看到了两种(相当粗糙的)方法:更...

2020-09-10 09:31:10 579

原创 理解项 上机操作

转载自:https://mp.weixin.qq.com/s/zK48OWSjL-GUlBm9GmzOEA?- a==a.true.?- a==b.false.?- a=='a'.true.?- X==Y.false.?- X=Y.X = Y.?- a=X,a==X.X = a.?- X=Y,X==Y.X = Y.?- a\==a.false.?- a\==b.true.?- a...

2020-09-10 09:29:05 255

原创 理解项

转载自:https://mp.weixin.qq.com/s/-3da54b-UZ5VFBB5Ljl-FA本章有三个主要目标:1.引入==谓词。2.仔细研究项结构。3.介绍运算符。1比较项Prolog包含一个用于比较项的重要谓词,即恒等谓词== / 2。顾名思义,这测试了两个项是否相同。但是== / 2不会实例化变量,因此它与合一谓词= / 2不同。让我们看一些例子。?- a == a.true?- a == b.false?- a =...

2020-09-10 09:27:07 209

原创 更多确定子句文法 上机操作

转载自:https://mp.weixin.qq.com/s/7o4ZezcHZumZo_XCURQM-g$ vimex8-1.pl$ swipl ex8-1.plWarning: /Users/limanxi/swi-prolog/ex8-1.pl:17:Warning: Clauses ofnp/2are not together in the source-fileWarning: Earlier definition at /Users/xxxxxxx/sw...

2020-09-10 09:25:19 192

原创 更多确定子句语法

转载自:https://mp.weixin.qq.com/s/knJC5mlYgntbLMtmzeuC7A本章有两个主要目标:1.研究DCG表示法提供的两个重要功能:额外的参数和额外的目标。2.讨论DCGs的现状和局限性。1额外参数在上一章中,我们介绍了基本的DCG表示法。但是DCG所提供的功能远远超过我们迄今为止所看到的。首先,DCG允许我们指定额外的参数。多余的参数可以用于许多目的。我们将研究三个。上下文无关文法的特性作为第一个例子,让我们看看如何使用额外...

2020-09-10 09:21:13 398

原创 确定子句文法 上机操作

转载自:https://mp.weixin.qq.com/s/UYedzZIXz0JRYrYTNjItbw?- [user].|: s(Z):- np(X), vp(Y), append(X,Y,Z).|: np(Z):- det(X), n(Y), append(X,Y,Z).|: vp(Z):- v(X), np(Y), append(X,Y,Z).|: vp(Z):- v(Z).|: det([the]).|: det([a]).|: n([woman]).|: n

2020-09-10 09:17:35 162

原创 确定子句文法 练习与实践环节

转载自:https://mp.weixin.qq.com/s/PqjUQHSDy90KqX-tCugSuA3练习练习7.1。假设我们正在使用以下DCG:s --> foo,bar,wiggle.foo --> [choo].foo --> foo,foo.bar --> mar,zar.mar --> me,my.me --> [i].my --> [am].zar --> blar,car.blar ...

2020-09-10 09:15:02 169

原创 确定子句文法

转载自:https://mp.weixin.qq.com/s/dBwRTNeXKZi7Oux_wMWIYw本章有两个主要目标:1.介绍上下文无关文法(CFGs)及其相关概念。2.介绍确定子句文法(DCGs),这是一种内置的prolog机制,用于处理上下文无关文法(以及其他类型的语法)。1 上下文无关文法Prolog已被用于许多目的,但是其发明者Alain Colmerauer对计算语言学很感兴趣,而这仍然是该语言的经典应用。而且,Prolog提供了许多工具,可以简...

2020-09-10 09:11:31 760

原创 更多列表 上机操作

转载自:https://mp.weixin.qq.com/s/tkLM2F9yAkcOmszp_-DFow?- [user].|: append([],L,L).|: append([H|T],L2,[H|L3]) :- append(T,L2,L3).|: ^D% user://2 compiled 0.00 sec, 2 clausestrue.?- append([a,b,c],[1,2,3],[a,b,c,1,2,3]).true.?- append([a..

2020-09-10 09:08:27 144

原创 更多的列表

转载自:https://mp.weixin.qq.com/s/EA4anAY-Ga09Ht6bmY7oug本章有两个主要目标:1.要定义append / 3,这是一个用于连接两个表的谓词,并说明了可以使用的谓词。2.讨论两种反转表的方法:使用append / 3的朴素方法和使用累加器的更有效方法。1 Append我们将定义一个重要的谓词append / 3,其所有参数都是表。以声明的方式查看,当表L3是将表L1和L2串联在一起的结果时,append(L1,L2,L3)将成立...

2020-09-10 09:02:52 217

原创 算数 上机操作

转载自:https://mp.weixin.qq.com/s/1my79TnLOc0p0BWoSYlc7A1 Prolog中的算术?- 8 is 6+2.true.?- -2 is 6-8.true.?- 3 is 6/2.true.?- 1 is mod(7,2).true.?- X is 6+2.X = 8.?- X is 6*2.X = 12.?- R is mod(7,2).R = 1.?- [...

2020-09-09 09:53:12 156

原创 算术

转载自:https://mp.weixin.qq.com/s/WvQcyFSb4qb5SnHr0O3sKg1 Prolog中的算术Prolog提供了许多用于处理整数的基本算术工具(即,形式为...- 3,-2,-1、0、1、2、3、4 ...的数字)。大多数Prolog实施还提供了处理诸如1.53或6.35×105之类的实数(或浮点数)的工具,但我们将不讨论这些工具,因为它们对于本书中讨论的符号处理任务不是特别有用。另一方面,整数在符号任务中很有用(例如,我们使用它们来说明表的长度),因此了解如何.

2020-09-09 09:52:00 522

原创 列表 上机操作

转载自:https://mp.weixin.qq.com/s/45ossL8uSnbZLk1K-i-sEw1表?- [Head|Tail] = [mia, vincent, jules, yolanda].Head = mia,Tail = [vincent, jules, yolanda].?- [X|Y] = [mia, vincent, jules, yolanda].X = mia,Y = [vincent, jules, yolanda].?-...

2020-09-09 09:50:43 208

原创 实践环节

转载自:https://mp.weixin.qq.com/s/zbrHhIrwy2-nFgKhRfvKTQ5实践环节练习4的目的是帮助您熟悉递归表的思路。我们首先建议您进行一些跟踪,然后再进行一些编程练习。首先,系统地对a2b / 2进行大量跟踪,以确保您完全了解其工作原理。尤其是:1.跟踪一些成功的示例,这些示例不涉及变量。例如,跟踪查询a2b([a,a,a,a],[b,b,b,b])并将输出与文本中的讨论相关联。2.跟踪一些失败的简单示例。尝试使用涉及不同长度表的...

2020-09-09 09:48:51 139

原创 练习

转载自:https://mp.weixin.qq.com/s/yvlQFf6rfGB4FFEblT4e6g4练习练习4.1 Prolog如何响应以下查询?1. [a,b,c,d] = [a,[b,c,d]].2. [a,b,c,d] = [a|[b,c,d]].3. [a,b,c,d] = [a,b,[c,d]].4. [a,b,c,d] = [a,b|[c,d]].5. [a,b,c,d] = [a,b,c,[d]].6. [a,b,c,d] = [a,...

2020-09-09 09:47:32 140

原创 向下递归表

转载自:https://mp.weixin.qq.com/s/Ccuzt9N0vEgovgH4bR9jbQ3向下递归表member / 2谓词的工作方式是递归地处理表中的内容,对头部进行处理,然后对末尾进行相同处理。以这种方式递归表(或实际上是几个表)在Prolog中极为常见。实际上非常普遍,因此真正掌握这项技术很重要。因此,让我们来看另一个示例。在处理表时,我们经常希望将一个表与另一个表进行比较,或者将一个表的位复制到另一个表中,或者将一个表的内容转换为另一个表或类似的内容。这里有一...

2020-09-09 09:45:52 348

原创 成员

转载自:https://mp.weixin.qq.com/s/CssLyqHaXRdUFW1UUiMwNw2成员现在该来看一下我们用于处理表的递归Prolog程序的第一个示例。我们想知道的最基本的事情之一就是某物是否是表的元素。因此,让我们写一个程序,当输入任意对象X和表L作为输入时,它告诉我们X是否属于L。执行此操作的程序通常称为成员,这是Prolog程序的最简单示例利用表的递归结构。这里是:member(X, [X|T]).member(X, [H|T]):- member(X...

2020-09-09 09:44:32 105

原创 列表

转载自:https://mp.weixin.qq.com/s/Mgt7eWcPy_gfnrZeEDiKCQ本章有三个主要目标:1.介绍表,这是Prolog编程中经常使用的重要递归数据结构。2.要定义member / 2谓词,这是用于处理表的基本Prolog工具。3.介绍递归表的思路。1 表顾名思义,表只是项目的简单排列。更精确地说,它是元素的有限序列。以下是Prolog中表的一些示例:[mia, vincent, jules, yolanda][m...

2020-09-09 09:43:10 125

原创 递归 上机操作

转载自:https://mp.weixin.qq.com/s/kqzCFTLbKCIQPYn-E8lH4w$ vimeating.pl$ swiplWelcome to SWI-Prolog (threaded, 64 bits, version 8.1.15)SWI-Prolog comes with ABSOLUTELY NO WARRANTY. This is free software.Please run ?- license. for legal details...

2020-09-09 09:40:44 188

原创 现在学 Prolog 递归

转载自:https://mp.weixin.qq.com/s/r6CcuC8n7iRaQSzShovl5w本章有两个主要目标:1.在Prolog中引入递归定义。2.表明Prolog程序的声明性含义与其程序含义之间可能存在不匹配。1递归定义谓词可以递归定义。粗略地说,如果谓词中的一个或多个规则引用了自己,则它是递归定义的。示例1:Eating考虑以下知识库: is_digesting(X,Y) :- just_ate(X,Y). is_di...

2020-09-09 09:34:17 2252

原创 现在学 Prolog 合一和证明搜索 上机操作

转载自:https://mp.weixin.qq.com/s/jRsgECeGagR-EOGIlLJUwQ$ swiplWelcome to SWI-Prolog (threaded, 64 bits, version 8.1.15)SWI-Prolog comes with ABSOLUTELY NO WARRANTY. This is free software.Please run ?- license. for legal details.For online help a.

2020-09-08 10:00:31 212

原创 现在学 Prolog 合一和证明搜索

转载自:https://mp.weixin.qq.com/s/SeMjK-_XR69jSQEQ-iRHMg本章有两个主要目标:1.讨论Prolog中的合一,并解释Prolog合一与标准合一有何不同。在此过程中,我们将introduce/ 2,Prolog合一的内置谓词,并与check / 2合一,即标准合一的内置谓词。2.解释Prolog在尝试使用惯用方式从旧信息中推断出新信息时使用的搜索策略。1合一在上一章中使用知识库KB4时,我们简要提到了合一的思想。例如,我们说过Pro...

2020-09-08 09:58:37 641

原创 现在学 Prolog 事实,规则和查询上机练习

转载自:https://mp.weixin.qq.com/s/v0YrW7IvSRtguRFG_Ha6Jg第一章上机操作$ swiplWelcome to SWI-Prolog (threaded, 64 bits, version 8.1.15)SWI-Prolog comes with ABSOLUTELY NO WARRANTY. This is free software.Please run ?- license. for legal details.For ...

2020-09-08 09:55:53 1000

原创 现在学 Prolog 事实,规则和查询

转载自:https://mp.weixin.qq.com/s/KEvuSWTwz6Ef1Y7-8riQZQ本文有两个主要目标:1.给出一些prolog程序的简单例子。这将向我们介绍prolog中的三个基本构造:事实、规则和查询。它还将向我们介绍一些其他主题,如prolog中逻辑的作用,以及借助变量执行合一的思想。2.开始prolog的系统研究,定义项、原子、变量和其他句法概念。1一些简单的例子prolog中只有三个基本结构:事实、规则和查询。事实和规则的集合称为知识库(或数据库),pro

2020-09-08 09:53:57 2188

原创 填字游戏

转载自:https://mp.weixin.qq.com/s/PbopBAcQo9q37_sUanh4zw给定一个填字游戏和一组单词的空的(或几乎空的)框架。问题是将这些词放入框架中。特定的填字游戏在文本文件中指定,该文件首先以任意顺序列出单词(每行一个单词)。然后,在空行之后,定义填字游戏框架。在此框架规范中,空字符位置由点(.)表示。为了简化解决方案,字符位置还可以包含预定义的字符值。然而谜题在文件p7_09a.dat中定义,其它谜题示例为p7_09b.dat和p7_09d.dat。还有一个

2020-09-08 09:45:34 824

原创 英文数字单词、一筐鸡蛋的问题

转载自:https://mp.weixin.qq.com/s/Drd-HeLIRTZY25rsrbLsXA英文数字单词在财务文档(如支票)上,有时必须用全文字写数字。示例:175必须写成one-seven-five。编写谓词full_words / 1以全字显示(非负)整数。程序文件名: p7_05.pl% full_words(N) :- print the number N in full words (English)% (non-negative integer) (+).

2020-09-08 09:43:44 141

原创 非图

转载自:https://mp.weixin.qq.com/s/_2K_ONH8BWHCMQ67kv4l_Q1994年前后,一种智力游戏在英国非常流行。《星期日电讯报》写道:“无图是来自日本的谜语,目前每周只在《星期日电讯报》上发表。简单地用你的逻辑和技能来完成网格并展示一张图片或图表。”作为一个Prolog程序员,你的处境更好:你可以让你的计算机来完成这项工作!难题是这样的:本质上,矩形位图的每一行和每一列都用其占用的单元格的不同字符串的相应长度进行注释。解决难题的人必须仅根据这些长度来完成位.

2020-09-08 09:41:50 399

原创 算术难题

转载自:https://mp.weixin.qq.com/s/wqbeHvQoafrGdpNBispMEA给定一个整数列表,找到插入算术符号(运算符)的正确方法,使结果为正确的等式。示例:使用数字列表[2,3,5,7,11],我们可以形成等式2-3+5+7 = 11或2=(3*5+7)/11(以及另外10个),解决这个问题的想法来自Roland Beuret。谢谢程序文件名:p7_04.pl% equation(L,LT,RT) :- L是数字列表,它们是算术项LT和RT中的叶子-从左...

2020-09-08 09:40:02 236

原创 冯·科赫猜想

转载自:https://mp.weixin.qq.com/s/BnSalO-hEPI-E7jmL2Pqnw给定具有n节点的树(因此有n-1边)。找到一种方法,从枚举节点1到n,因此,从边1到边n-1以这样的方式,对于每个边k其节点号的差等于k。推测这总是可能的。这是一个例子,可以很清楚地说明这一点:我们的任务我们的代码将以一棵树作为输入,我们可以采用所需的格式,但是对于测试用例,我们将通过它们的弧和它们的节点列表来提供树。例如,这是图片中树的输入:[d-a,a-g,b-c,e-f

2020-09-08 09:37:20 187

原创 骑士巡游

转载自:https://mp.weixin.qq.com/s/Mv1MAR0XTo-9eEZPSVXJGw国际象棋中马(骑士)的走法很特别:先横向或竖向走两格,再往左或往右走一格,并跳过路上的其他棋子。马(骑士)“L”形走法引出了很多数学趣题,其中最简单的是“骑士巡游”。马(骑士)要求进行一系列移动,使得它恰好访问国际象棋棋盘(或任何其他大小的棋盘)的每格各一次。下图表示一个5X5棋盘上的“巡游”,并显示了一条可能的路线。这条路线不是“闭合的”,即马的起点和终点不在同一格。你能在5X5棋盘上找出一条闭合

2020-09-08 09:36:41 1053

原创 八皇后问题

转载自:https://mp.weixin.qq.com/s/Kdvo_yGFaYmw5TjNg6Bb8Q这是计算机科学中的经典问题。目的是在棋盘上放置八个皇后不会有两个皇后互相攻击。也就是说,在同一行,同一列或同一对角线中,没有两个皇后区。我们通过允许棋盘的任意尺寸N来概括这个原始问题。我们用数字1..N表示皇后的位置。例如: [4,2,7,3,6,8,5,1]表示第一列中的皇后在第4行中,第二列中的皇后在第2行中,依此类推。通过使用数字1..N的置换,我们保证没有两个皇后在同一行中...

2020-09-07 09:46:43 543

原创 用Prolog解决数独

转载自:https://mp.weixin.qq.com/s/NE4j2Jc0vzw9pr2w4BF7hg我们先了解一下什么是数独数独(shù dú)是源自18世纪瑞士的一种数学游戏。它是一种运用纸、笔进行演算的逻辑游戏。数独有多种类型,我们仅以其中一种类型作为本文实例。玩家需要根据9×9盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行、每一列、每一个粗线宫(3*3)内的数字均含1-9,不重复。方格水平方向有九横行,垂直方向有九纵列的矩形,画分八十一个小正方形,称为九宫格(.

2020-09-07 09:44:51 1684

原创 图 练习 5

转载自:https://mp.weixin.qq.com/s/mGqpI81rdsxGyaz1K-l6jw7、节点的度和图形着色程序文件p6_07.pl:1:-ensure_loaded(p6_01).% conversions2 :-ensure_loaded(p6_02).% adjacent/33% a)编写确定给定节点度数的谓词degree(Graph,Node,Deg)% degree(Graph,Node,Deg) :- Deg是图Grap...

2020-09-07 09:42:57 342

原创 图 练习 4

转载自:https://mp.weixin.qq.com/s/ymcl69qtM2sYA6O9wxv_JA上一练习中所需文件p6_04.dat的内容:graph([a, b, c, d, e, f, g, h], [e(a, b), e(a, d), e(b, c), e(b, e), e(c, e), e(d, e), e(d, f), e(d, g), e(e, h), e(f, g), e(g, h)]).5、构造标记图的最小生成树ms_tree(G,T,S) :- T是图G的最.

2020-09-07 09:38:53 297

SWI-Prolog 用户手册 8.0.3版本 英文(pdf)

SWI-Prolog is a comprehensive and portable implementation of the Prolog programming language. SWI-Prolog aims to be a robust and scalable implementation supporting a wide range of applications. In particular, it ships with a wide range of interface libraries, providing interfaces to other languages, databases, graphics and networking. It provides extensive support for managing HTML/SGML/XML and RDF documents. The system is particularly suited for server applications due to robust support for multithreading and HTTP server libraries.

2019-11-08

asp.net 程式设计基础篇

本书是针对.NET 初学者而写作的入门书,不是以讨论新技术到底可以做到什么程度为前提,而 是希望可以帮读者打好.NET 的基础,并且愉快的学习新技术。身为计算机知识工作者深深体会 到导入新技术的痛苦,所以本书力求信息单纯化、技术原理化、理论实务化,并避免让读者直接 面对杂乱无章、未经消化过的信息,而以大量的插图以及示意图,让各位读者可以愉快的享受新 技术所带来的好处。

2010-06-01

空空如也

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

TA关注的人

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