Prolog图表示缺少事实

Prolog图表示缺少事实,prolog,Prolog,我在Prolog中有一个带边的图。我将图形表示为一组prolog事实。其中,例如s(a,b,2)。=b是a的继承者。下面是我在prolog中为这个图表提供的事实 事实: s(a,b,2). s(a,c,1). s(b,e,4). s(b,g,2). s(c,d,1). s(c,x,3). s(x,g,1). goal(g). 我错过了一个事实吗s(例如,1)。 其中g是e的继承者?或者它甚至在这个节点上被搜索,因为“b”只有两个分支“e”和“g”。有人能给我解释一下吗?感谢我们可以以某种方式

我在Prolog中有一个带边的图。我将图形表示为一组prolog事实。其中,例如
s(a,b,2)。
=b是a的继承者。下面是我在prolog中为这个图表提供的事实

事实:

s(a,b,2).
s(a,c,1).
s(b,e,4).
s(b,g,2).
s(c,d,1).
s(c,x,3).
s(x,g,1).
goal(g).
我错过了一个事实吗<代码>s(例如,1)。
其中g是e的继承者?或者它甚至在这个节点上被搜索,因为“b”只有两个分支“e”和“g”。有人能给我解释一下吗?感谢

我们可以以某种方式枚举图形,从而确定边为:

s(a, b, 2).
s(a, c, 1).
s(b, e, 4).
s(b, g, 2),
s(c, d, 1).
s(c, x, 3).
s(e, g, 1).
s(x, g, 1).
goal(g).
s(a,b,2)。
s(a,c,1)。
s(b,e,4)。
s(b,g,2),
s(c,d,1)。
s(c,x,3)。
s(e,g,1)。
s(x,g,1)。
目标(g)。

如果我们看看原始的源代码。
s(e,g,1)。
部分缺失。

在这里键入后,我想我明白了原因。节点“b”已被完全浏览/访问,因此无需移动到下一个节点“e”?如果你想让你的事实如实反映情况,它们应该如实反映情况。s(b,g,2)。s(e,g,1)。照片上有。s(b,g,1)不在图片中。@williness是个好地方。现在配对