私はnetworkx(グラフを扱うためのPythonライブラリ)を使用しています。私は基本的にはさまざまなエッジのノードを持っていますが、最も接続されているノードを使用した場合のパスがどのように見えるかを見たいと思っています。グラフ理論(ネットワークxを使用)でノードに重み/確率を追加することは可能ですか?
私は接続の数を確認するには、このコマンドを使用することができます:
len(G.edges(CurrentNode))
を、私はエッジの数を取得することができますが、私はパスとしてリストにこれを適用するかどうかはわかりません。たとえば、この数値を属性として追加できますが、パスを見つけるときに属性が考慮されていないと考えられます。エッジが接続された後にこれを追加するため、エッジ自体にウェイトを追加できません。もう1つの問題は、スコアが高ければ高いほど私はパスを辿りたいが、エッジは最も低い重み付けエッジに従うと思う。
ノードの特定の特性に基づいて他の人がどのようなアプローチでパスを見つけるのでしょうか?誰かがnetworkxのためにこれを行う方法を知っているなら、素晴らしい!しかし、私はnetworkxには多くの機能があると思うので、理論や一般的なアプローチを得ることができれば、私はPythonでそれを行う方法を見つけることができると確信しています。
更新:申し訳ありませんが、間違って説明している可能性があります。ノードに属性を追加することはできますが、これらの属性に基づいてパスの決定を行う方法がわかりません。したがって、私の場合、特定の条件に基づいて、ノード間にエッジを追加しています。ノードの各グループは、異なる日(day1data ..、day2data ..、day3data ..)を表します。したがって、特定のルールが一致した場合にのみday1からday2のノードにいくつかのノードを接続します。一度エッジが接続されると、パスを選択するときにそれらのエッジがより重視されるようにします。だから、基本的にそのノードを接続するエッジの総数である、現在の各ノードに属性 '重み'を追加しました。 私の問題は、自分自身で作成しラベルを付けた属性( 'abc' = 'hello world'という名前のラベルを作成でき、その属性をノード)。パスを作成するときにこのウェイトを考慮するにはどうしたらいいですか(エッジはすでに作成されているため、戻って再作成することはできません)。
これはあなたを助けることがあります。http://en.wikipedia.org/wiki/Shortest_path_problem - 申し訳ありません...しかし、私は「networkx」を使用してパスに重みを追加する方法を教えてすることはできませんしないでください。 – Louis