gpt4 book ai didi

prolog - 如何删除/防止对称解决方案

转载 作者:行者123 更新时间:2023-12-05 06:43:54 25 4
gpt4 key购买 nike

我正在定义这样的规则:

person(p1).
person(p2).

near(X,Y) :-
person(X),
person(Y),
checkNear. % Not important how

我检查 XY 都是人,然后我检查他们是否在附近(比这更复杂,但我简化了)。

问题是我得到了一个对称解:

?- near(X,Y).
X = p1, Y = p2 ;
X = p2, Y = p1.

在这种情况下,您如何强制一对解决方案?

只要求一个解决方案不是一种选择,因为可能有一个人 p3 需要考虑。

最佳答案

我认为使用标准术语顺序更简单 @<

near(X, Y) :-
person(X),
person(Y),
X @< Y, % arbitrary, but breaks symmetry
checkNear.

关于prolog - 如何删除/防止对称解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31695598/

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