gpt4 book ai didi

prolog - 列表上的成对关系

转载 作者:行者123 更新时间:2023-12-04 02:09:51 26 4
gpt4 key购买 nike

如果列表的所有元素对对于给定关系都为真,则以下高阶谓词成功。这种关系是否有一个共同的或更好的,更多的意图揭示名称?

我对这个名字的最初动机是在 ,经常有一个约束all_different/1这被描述为真的,如果元素成对不同。事实上,更喜欢说元素都不同,但我经常被纠正(由 Prolog 程序员)使用成对不同。事实上,这个约束现在可以最自然地表示为 pairwise(#\=, Zs) .

pairwise(Rel_2, Xs) :-
i_pairwise(Xs, Rel_2).

i_pairwise([], _).
i_pairwise([X|Xs], Rel_2) :-
maplist(call(Rel_2,X),Xs),
i_pairwise(Xs, Rel_2).

正如@aBathologist 所观察到的,pairwise 不是正确的词,因为它可能对非自反 Rel 有意义也。

此外,关系 Rel不是全关系,因为 call(Rel, X, X)可能会失败,但是 pairwise(Rel, Xs)还是可以成功的。

我什至为 (a->a->Bool)->[a]->Bool .但是哈约 found it : 姓名 pairwise与pointwise相反。

看了MO和数学:
  • Who invented pairwise different
  • Difference between pairwise distinct and unique
  • 最佳答案

    我非常喜欢你的问题。我翻遍了维基百科,试图找到一个合适的术语。我将列表视为一个集合,从某种意义上说,每个成员都是一个不同且可微的元素,因此即使同一原子有两个实例,也会是不同的元素,因为它们的位置或其他什么。我认为您所描述的谓词将是 [connex] 二元关系( https://en.wikipedia.org/wiki/Total_relation ):

    A binary relation R over X is called connex if for all a and b in X such that a ≠ b, a is related to b or b is related to a (or both)



    另一方面,如果该关系也是自反的,那么它将描述一个完全二元关系(在与 connex 相同的页面上讨论)。

    但是,我认为您的谓词 pairwise/2实际上不符合您给出的描述,或者(更有可能)我不太明白。

    您说谓词应该成功“如果列表的所有元素对对于给定关系都为真”。但是 pairwise(>, [1,2,3])是假的,而 pairwise(<, [1,2,3])是真的,而 pairwise(>, [3,2,1])是真的,但 pairwise(<, [3,2,1])是假的。但是在这些列表中的每一对元素中,一个大于另一个。

    编辑:

    以下是我误解的结果,结果与问题无关。

    我提供了以下定义,认为这可能是对 @false 所描述内容的更准确定义,但他指出它并没有定义我认为的关系。我保留它是为了使我们在评论中的后续交流易于理解。

    添加另一个反向检查列表的子句可以解决这个问题,但是否还有其他关系无法通过反向捕获?另外,是否有更有效的方法来实现真正的连接检查?
    connex_over(Rel, Xs) :-
    i_connex_over(Xs, Rel), !.
    connex_over(Rel, Xs) :-
    reverse(Xs, Sx),
    i_connex_over(Sx, Rel).

    i_connex_over([], _).
    i_connex_over([X|Xs], Rel) :-
    maplist(call(Rel,X),Xs),
    i_connex_over(Xs, Rel).

    在@false 指出我在前面的错误后,我写了以下定义。我相信它确实描述了 S 元素的联系:
    actual_connex_over(Rel, S) :-
    foreach( ( select(X, S, T), member(Y, T) ),
    ( call(Rel, X, Y) ; call(Rel, Y, X) )
    ).

    关于prolog - 列表上的成对关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22950154/

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