我有一个带有权重的边列表,我想从中获取不相交的集合。但是,我也想跟踪集合中的权重。例如,如果我有一个数据集,
N1 N2 Weight
a1 a2 1.0
a2 a3 0.5
a3 a5 1.0
a4 a8 1.0
a8 a9 0.8
这将导致两组
[(a1,1.0), (a2,1.0), (a3,1.0*0.5), (a5,0.5*1.0)] and [(a4,1.0),(a8,1.0), (a9,1.0*0.8)]
本质上,关系中的权重乘以权重。除了暴力破解之外,是否有任何有效的算法来跟踪这一点?选择的语言是python。