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

基于无向多重图的电网路径分析:生成含边重数全路径方法咨询

生成带重数边的所有完整路径组合

你需要的是将每段相邻节点的可选边列表,生成所有可能的完整路径组合——这本质是求多个列表的笛卡尔积,也就是从每个子列表中选一个元素,生成所有可能的组合方式。Python的itertools.product工具正好能高效解决这个问题。

实现代码

先把各段可选边整理成二维列表,再用itertools.product生成所有组合:

import itertools
import pprint

# 定义各段相邻节点的可选边列表
edge_options = [
    ['SCA-24 <-> SCA-69 (1)', 'SCA-24 <-> SCA-69 (2)'],
    ['SCO-69 <-> SCA-69 (1)'],
    ['SCO-69 <-> PAA-69 (1)'],
    ['PAA-69 <-> OCA-T4-69 (1)', 'PAA-69 <-> OCA-T4-69 (2)'],
    ['OCA-T4-69 <-> OCA-138 (1)'],
    ['OCA-138 <-> LVR-138 (1)'],
    ['LVR-138 <-> LAG-138 (1)', 'LVR-138 <-> LAG-138 (2)']
]

# 生成所有可能的路径组合(笛卡尔积)
full_paths = list(itertools.product(*edge_options))
# 将元组转换为列表,匹配目标输出格式
full_paths = [list(path) for path in full_paths]

# 格式化打印结果
pprint.pprint(full_paths)

代码说明

  • itertools.product(*edge_options):用*解包二维列表,product会遍历每个子列表的元素,生成所有可能的组合,每个组合对应一条完整路径。
  • 列表转换:product返回的是元组类型,通过列表推导式转成列表,和你给出的示例输出格式完全一致。
  • 动态适配:如果你的边列表是从电网图中动态生成的(比如根据节点路径遍历相邻边的重数),只需把每段的可选边收集到edge_options中,就能直接复用这段代码。

运行代码后,输出结果就是你需要的完整路径集合。

内容的提问来源于stack exchange,提问作者Ruan Carlo Weiers Britzke

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 00:37:54