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

在SageMath中可视化13个顶点的完全3一致超图超边

使用SageMath可视化13顶点完全3一致超图并着色

完全3一致超图(13个顶点)的边数为$\binom{13}{3}=286$,手动绘制确实不现实,SageMath可以快速实现创建、着色和可视化,正好能呈现你需要的杂乱效果。

步骤1:创建超图

SageMath内置了complete_hypergraph函数,直接生成指定顶点数和边大小的完全超图:

# 生成13个顶点的完全3一致超图
H = complete_hypergraph(13, 3)

步骤2:超图着色

你可以直接调用SageMath的超图着色方法,先获取色数,再生成着色方案:

# 获取超图的色数
chromatic_num = H.chromatic_number()
print("该超图的色数为:", chromatic_num)

# 生成贪心着色方案(也可指定其他算法)
coloring = H.coloring(greedy=True)

注:13顶点的完全3一致超图色数为7,因为需要将顶点划分为独立集(每个独立集最多2个顶点,否则会构成超边),13个顶点最少需要7个独立集。

步骤3:可视化(带着色)

由于边数极多,通过调整边的透明度、顶点大小和标签,既能呈现杂乱感,又能区分顶点着色:

# 绘制超图,设置边透明度(0.1)避免完全重叠,顶点带标签和着色
plot = H.plot(
    vertex_colors=coloring,
    edge_alpha=0.1,
    vertex_size=30,
    vertex_labels=True,
    edge_color="gray"
)

# 显示图像
plot.show()

# 保存为PDF/PNG文件(可选)
plot.save("13-vertex-3-uniform-complete-hypergraph.pdf")

自定义着色(可选)

如果需要指定颜色映射,可手动构建颜色字典替换默认着色:

# 自定义颜色映射
custom_colors = {
    0: "#FF5733", 1: "#33FF57", 2: "#3357FF",
    3: "#FF33A6", 4: "#FFC300", 5: "#8C489F", 6: "#489F8C"
}

# 将着色结果映射为自定义颜色
vertex_color_dict = {v: custom_colors[c] for v, c in coloring.items()}

# 重新绘制
custom_plot = H.plot(
    vertex_colors=vertex_color_dict,
    edge_alpha=0.1,
    vertex_size=30,
    vertex_labels=True
)
custom_plot.show()

运行上述代码后,就能得到你需要的、充满超边的可视化效果,同时顶点按着色方案区分。

内容的提问来源于stack exchange,提问作者B. Phair

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 07:17:46