프롤로그. 그래프의 전 이적 폐쇄 생성
Nov 30 2020
저는 Prolog를 처음 접했습니다. 그런 그래프가 있습니다.
edge(a,e).
edge(e,f).
edge(f,d).
edge(d,a).
전 이적 폐쇄를 다음과 같이 정의합니다.
p(X,Y) :- edge(X,Y).
tran(X,Z) :- p(X,Y), p(Y,Z).
그래프의 전 이적 폐쇄를 구성해야합니다. 진행 방법을 알려주십시오.
답변
2 WillemVanOnsem Nov 30 2020 at 00:58
문제 는 임의의 숫자가 아닌 두 가장자리 trans/2
만 걸을 것이라는 것입니다 .
tran(X, Z)
hold if edge(X, Z)
또는 edge(X, Y)
then 을 보유 하는 술어 를 정의 할 수 있습니다 tran(Y, Z)
. 따라서 우리는 후자에서 하나의 가장자리를 따르고 다음에서 재귀합니다 tran/2
.
tran(X, Z) :-
edge(X, Z).
tran(X, Z) :-
edge(X, Y),
tran(Y, Z).