给出二元关系R.构造传递和反身封闭 R *。在LISP ////怎么来的?
答案 0 :(得分:0)
你没有提供太多信息,但通常,给定关系R,R的传递和反身闭包是一个关系R *定义如下:
让我们假设您有一个函数R,其行为如下:
(funcall R :x X :y Y)
返回非零值iff R(X,Y)(funcall R :x X)
返回所有Y,使得R(X,Y)(funcall R :y Y)
返回所有X,使得R(X,Y)(funcall R)
返回(X,Y)对的列表,其中R(X,Y)。然后你可以构建一个计算传递和反身闭包的函数;如果您想知道R*(X,Z)
是否成立,请从X
开始,尝试满足Y
的所有可能的R(X,Y)
,直到Y
等于{{1}或者,您可以递归地确定Z
。
实施并测试后,尝试检测周期。