编程问题:使用shmetis工具对一个超图文件进行处理,无法得到分割结果
使用的命令:
.\shmetis.exe s13207P1.hgr 2 5
得到的结果:
Empty Hyperedge # 1
文件内容组织:
超边数 顶点数
第一条超边的节点
第二条超边的节点
如下所示:

编程问题:使用shmetis工具对一个超图文件进行处理,无法得到分割结果
使用的命令:
.\shmetis.exe s13207P1.hgr 2 5
得到的结果:
Empty Hyperedge # 1
文件内容组织:
超边数 顶点数
第一条超边的节点
第二条超边的节点
如下所示:

关注让【宝码香车】来帮你解答,本回答参考DeepSeek编写,并整理提供。
如果还有疑问可以点击头像关注私信或评论。如果答案让您满意,请采纳、点赞、关注,非常感谢!
若您愿意支持,欢迎直接打赏,将不胜感激!
根据您提供的信息,您在使用shmetis工具对超图文件进行分割时遇到了问题,工具输出"Empty Hyperedge #1"的错误信息。
<超边数> <顶点数> [可选格式参数]正确格式示例:
3 17 1
1 2 3 4
5 6 7
8 9 10 11 12
def validate_hgr_file(filename):
with open(filename, 'r') as f:
# 读取第一行
header = f.readline().strip().split()
if len(header) < 2:
return False
try:
num_hyperedges = int(header[0])
num_vertices = int(header[1])
except ValueError:
return False
# 检查超边
for i in range(num_hyperedges):
line = f.readline()
if not line:
return False # 超边数量不足
vertices = line.strip().split()
if not vertices:
return False # 空超边
try:
vertices = list(map(int, vertices))
except ValueError:
return False # 非数字顶点
if any(v < 1 or v > num_vertices for v in vertices):
return False # 顶点编号越界
return True
print(validate_hgr_file("s13207P1.hgr"))
./shmetis.exe s13207P1.hgr 2 5
其中:
2是分区数5是平衡因子(可选)
如果您能提供完整的.hgr文件内容,我可以帮助您更具体地诊断问题。