考虑以下关系:edge(X,Y)、Red(X,Y)、Blue(X,Y)。这些关系表示一个图,其边缘可以被着色为红色或蓝色(或无颜色)。
为以下查询提供安全的数据记录规则(必要时使用否定)。
Q1。找到从 X 到 Y 的路径(链接边序列)的节点 X 和 Y 对?
我的尝试:- 可达(X,Y):- 边缘(X,Y)
可达(X,Y):- 边缘(X,Z),可达(Z,Y)
Q2。找到节点 X 和 Y 对,其中存在从 X 到 Y 的均匀长度的路径(一系列连接的边),红色和蓝色交替出现?
我的尝试:
我制作了奇偶数据记录程序和一个红/蓝程序,但不知道如何将两者结合起来以获得偶数长度的交替红/蓝节点
奇数(x,y):- 边缘(x,y)
奇数(x,y):- 边缘(x,z),偶数(z,y)
偶数(x,y):- 边缘(x,z),奇数(z,y)。
路径(X,Y):- 红色(X,Y)
路径(X,Y):- 路径(X,Z),蓝色(Z,W),路径(W,Y)