路径/小径/步行的定义
传统上,一条路是指现在通常被称为开放步行的一条路。现在,在没有任何限定条件的情况下,路径通常被理解为简单,这意味着没有顶点(因此没有边)被重复。(“链”一词也用于指所有顶点和边都是不同的游走。)
path(Rel_2, Path, X0,X)
Path
n(a, b). n(b, c). n(b, a). ?- path(n,Xs, a,X). Xs = [a], X = a ; Xs = [a, b], X = b ; Xs = [a, b, c], X = c ; false.
:- meta_predicate path(2,?,?,?). :- meta_predicate path(2,?,?,?,+). path(R_2, [X0|Ys], X0,X) :- path(R_2, Ys, X0,X, [X0]). path(_R_2, [], X,X, _). path(R_2, [X1|Ys], X0,X, Xs) :- call(R_2, X0,X1), non_member(X1, Xs), path(R_2, Ys, X1,X, [X1|Xs]). non_member(_E, []). non_member(E, [X|Xs]) :- dif(E,X), non_member(E, Xs).
守候你守候我
相关分类