在Prolog中生成大小为n的所有可能图

在Prolog中生成大小为n的所有可能图,prolog,combinations,graph-theory,Prolog,Combinations,Graph Theory,我正试图编写一个生成器,在Prolog中生成大小为n的所有可能的图。我在Prolog中看到的大多数图形都表示为事实列表。我正在考虑将其表示为图形(顶点、边),例如: 而生成器(G,n)将找到大小为n的所有可能的图 我在编写生成器时遇到了一些问题,因为它的结构不是递归的。可以用Prolog写一个吗?我应该如何处理这个问题?(我对序言很陌生)谢谢 你先用英语(或其他语言)写吗英语通常直接翻译成序言。首先,清点一下你拥有的和你想要实现的目标。这对于任何n来说都是不可行的,除了非常小的一个。你也在为每个

我正试图编写一个生成器,在Prolog中生成大小为n的所有可能的图。我在Prolog中看到的大多数图形都表示为事实列表。我正在考虑将其表示为图形(顶点、边),例如:

生成器(G,n)
将找到大小为n的所有可能的图


我在编写生成器时遇到了一些问题,因为它的结构不是递归的。可以用Prolog写一个吗?我应该如何处理这个问题?(我对序言很陌生)谢谢

你先用英语(或其他语言)写吗英语通常直接翻译成序言。首先,清点一下你拥有的和你想要实现的目标。这对于任何
n
来说都是不可行的,除了非常小的一个。你也在为每个n个顶点的图寻找每一个可能的连接。e、 没有连接到完全连接?我最近不得不对二叉树做一些类似的事情,通过引用它可以更容易地找到期望的内容以及如何做。有没有这样的数学参考来描述这些图。一个简单的方法是先做一层递归,然后再添加另一层递归,直到得到所需的。然后,如果愿意,您可以返回并简化和折叠谓词。
Graph([Vertex1, Vertex2, Vertex3, ...], [(Vertex1-Vertex2, Vertex2-Vertex3,...)].