PROLOG-生成图形的所有连接组件的列表

时间:2019-01-06 17:38:36

标签: prolog graph-theory

本月我在学校学习了序言,但我仍然是新手。

我想要实现的是在一个列表中生成所有连接的组件。

我的想法是在图形上运行多个DFS,完成后每个DFS都会生成一个列表,比方说LC附加到结果列表ALL_LC上。

我在网上找到了一些代码,从一开始就非常有帮助。


connected(a,b).
connected(b,e).
connected(c,d).
isConnected(X,Y) :- connected(X,Y).
isConnected(X,Y) :- connected(Y,X).
next_node(Current, Next, Path) :-
    isConnected(Current, Next),
    not(member(Next, Path)).

dfs(Goal, Goal, _, [Goal]).
dfs(Start, Goal, Visited, [Start|Path]) :-
    next_node(Start, Next_node, Visited),
    dfs(Next_node, Goal, [Next_node|Visited], Path).

首先,我想到了编辑DFS函数的步骤,因为我不知道GOAL(试图到达的节点),所以我在每一步中都只有一组根。自访问以来,我会跳过一些。

有什么想法可以编辑DFS以便到达那里吗?

0 个答案:

没有答案