You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

生成2至12节点全连接独立图的代码实现问题求助

生成2到12节点的所有简单无向图解决方案

问题根源

你之前的代码重复生成同一完全图,核心问题在于:

  • 固定遍历12个节点的所有边,未做去重和边子集枚举
  • Table的第二个参数设为13,只是机械重复生成13次同一个完全图

实现步骤

1. 单节点数的所有图生成函数

针对任意n个节点,先生成无重复的无向边,再枚举这些边的所有子集(每个子集对应一个独特的图):

allGraphs[n_] := Module[{nodes, uniqueEdges},
  nodes = Range[n];
  // 生成i<j的无向边,避免重复计算
  uniqueEdges = Table[i -> j, {i, nodes}, {j, nodes} // Select[# > i &]] // Flatten;
  // 枚举所有边子集,每个子集对应一个图
  UndirectedGraph[nodes, #] & /@ Subsets[uniqueEdges]
]
  • 若不需要空图(无任何边的图),可将Subsets[uniqueEdges]改为Subsets[uniqueEdges, {1, Length[uniqueEdges]}]

2. 批量生成2到12节点的所有图

将上述函数应用到2到12的节点数范围:

allGraphsRange = Table[allGraphs[n], {n, 2, 12}]

3. 可选:过滤连通图

如果只需要连通的图,可在生成后用ConnectedGraphQ过滤:

allConnectedGraphs[n_] := Select[allGraphs[n], ConnectedGraphQ]
allConnectedGraphsRange = Table[allConnectedGraphs[n], {n, 2, 12}]

注意事项

  • 节点数n≥10时,图的总数会呈指数爆炸(比如n=10时有2^45≈3.5×10¹³个图),实际生成会导致内存溢出或算力耗尽,建议仅对n≤6的场景测试。

内容的提问来源于stack exchange,提问作者user23279792

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 23:25:10