gpt4 book ai didi

prolog - PROLOG 事实是双边的吗?

转载 作者:行者123 更新时间:2023-12-02 03:38:10 26 4
gpt4 key购买 nike

所以我刚刚开始在 PROLOG(SWI 发行版)中编程。我有良好的逻辑基础,并且熟悉事实、规则、量化和所有这些词汇。

据我所知,您可以定义一个事实,例如:

married(a,b).

我知道如果您进行如下查询:

?: married(X,b).

答案是“a”。我的问题是,如果我想制定一条使用先前声明的事实的规则,它会考虑“a 与 b 结婚”,但它会考虑“b 与 a 结婚”还是我必须声明另一个事实像:

married(b,a).

让它发挥作用吗?对于任何可以表现为事实的双边关系来说都是如此。

最佳答案

你的意思是关系是否自动对称?那么不 - 假设你有一个有向图 edge(a,b) ,那么你就不会想要另一个方向 edge(b,a)来推断。另外,元数大于 2 的关系怎么样?

您始终可以创建谓词的对称闭包:

r_sym(X,Y) :-
r(X,Y).
r_sym(X,Y) :-
r(Y,X).

使用新的谓词名称可防止无限派生链 r(X,Y) -> r(Y,X) -> r(X,Y) -> .... .

关于prolog - PROLOG 事实是双边的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49490302/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com