我有一个带有点Node
和H(n)
节点值的Heuristc表。
在转换为prolog
个事实时,我在下面是否正确?
在所有大写字母(即(A,B,C,...))上,给我一个黄色的高亮显示error
是否需要将它们更改为小写才能正确?
% Heuristic table
/* Node H(n)
* A 10
* B 5
* C 4
* D 8
* E 5
* G 0
* X 1
*/
%Table as facts
A(10).
B(5).
C(4).
D(8).
E(5).
G(0).
X(1).
答案 0 :(得分:1)
首先,事实必须以小写字母开头。
第二,呈现这些内容的方式确实取决于您将如何使用它们。 如果每个事实都将按其名称分别调用,则类似以下的内容将起作用:
a(10).
b(5).
c(4).
d(8).
e(5).
g(0).
x(1).
但是,您很可能需要分批处理它们,这意味着要么创建这些事实的列表并按名称指定每个事实,要么使用如下的通用事实形式:
hnode(a,10).
hnode(b,5).
hnode(c,4).
hnode(d,8).
hnode(e,5).
hnode(g,0).
hnode(x,1).
根据您的需求,您可能更喜欢使用字符串而不是原子:
hnode("A",10).
hnode("B",5).
hnode("C",4).
hnode("C",8).
hnode("E",5).
hnode("G",0).
hnode("X",1).