隣接するノードへの重みを表す 1 つのリストを取得するとします。マルチグラフはハイパーキューブのような形をしています。ノードは、座標によってバイナリ文字列として名前が付けられます。
の例n=3
bin_string = ['000', '100', '010', '001', '110', '101', '011', '111']
weights = [[-5, -13, -2], [16, -9], [-15, 2], [13, -13], [18], [-9], [18]]
次の方法で両方のリストから辞書を作成したいと思います: で開始し000
、すべてのノードにエッジがあり、辞書順が逆になっています ( のようにbin_string
)。2 番目のノードは100
(もう 1 つ、最大のものが最初) になり、そのノードはすべてのノードに対してエッジを持つことができます。したがって、辞書は次のようになります。
d = { '000':{'100':-5, '010':-13, '001':-2},
'100':{'110':16, '101':-9},
'010':{'110':-15, '011':2},
'001':{'101':13, '011':-13},
'110':{'111':18},
'101':{'111':-9},
'011':{'111':18}
}
あらゆる種類の次元を持つハイパーキューブがありbin_string
、次元に応じて既に生成できます。しかし、どのように結婚bin_string
しweights
、1 つの辞書と結婚するのでしょうか?