您的位置首页百科问答

Prolog规则结构与实例

Prolog规则结构与实例

的有关信息介绍如下:

Prolog规则结构与实例

Prolog是一门独特的编程语言。在这篇经验中,我将介绍关于它的一个重要的子句形式——规则及其用法。

6Prolog的基本概念和语法规则

让我们先从一个简单的规则开始讨论:

eats(john, Y) :- food(Y), sweet(Y).

这个规则告诉我们,如果Y是食物且甜,那么约翰会去吃它。

规则由三个要素组成:

规则头(此例中为eats(john,Y));

符号“:-”(这个符号的意思可以理解为“如果”或“是”);

规则体(此例中为food(Y), sweet(Y))。盯虚摸

以下是相应的整个代码。

下面是运行结果。Prolog把试图满足讯问

?- eats(john,Food).

的任务变为同时满足food(Food).和sweet(Food).。

由于Prolog的特性使得它特别适合用于地图上色、日程安排之类没有算法或难以用算法描述的问题。接下来,以地图上色的问题作为例子。地图上色时,需要让相邻的两片区域用不同的颜败光色表示。下图是美国东南部的地图,尝试用三种颜色将它们区别出来。

在下面这个规则中,告诉了Prolog各个州的的接壤关系:

coloring(Alabama, Mississippi, Georgia, Tennessee, Florida) :- different(Mississippi, Tennessee), different(Mississippi, Alabama),

……

下图是整个代码。

运行时,对Prolog用下列语句进行提问:

?- coloring(Alabama, Mississippi, Georgia, Tennessee, Florida).

这样就生成了需要的结果。

在这些问题中,我们没有使用算法荡晃!Prolog不是通过编写算法来解决逻辑问题的,而是通过如实地描述真实世界,来呈现计算机可以设法解决的逻辑问题,让计算机做这些工作吧。