我想在 Prolog 中编写这个算法,首先我需要从图表列表中创建一个矩阵。我以前做过(也在你们中的一些人的帮助下,伙计们),但现在我不知道如何将它存储在列表列表中(我认为这是 prolog 情况下的最佳方法)。我想我可以从那里继续(在每个算法中都有三重 for 循环)。程序的逻辑对我来说并不难,而是如何处理数据。很抱歉打扰并提前致谢!
我的矩阵生成器:
graph(a,b).
graph(a,a).
graph(b,c).
graph(b,d).
graph(c,d).
graph(a,e).
graph(e,f).
matrix :- allnodes(X),printmatrix(X).
node(X) :- graph(X,_).
node(X) :- graph(_,X).
allnodes(Nodes) :- setof(X, node(X), Nodes).
printedge(X,Y) :- graph(Y,X), write('1 ').
printedge(X,Y) :- \+ graph(Y,X), write('0 ').
printmatrix(List):- member(Y, List),nl,member(X, List),printedge(X,Y),fail.