隣接行列Aを持つグラフGがあるとします。Gは二部構成です。 どのようにGの頂点を常に2つのグラフを形成する2つのセットに分割できますか? ありがとう!二部グラフの隣接行列の分割
2
A
答えて
2
各要素を最初に0に設定して、頂点の数に等しいサイズの配列which
を宣言します。次に、グラフを深度優先で検索し、移動中の「レベル番号」を記録します。これは1から始まり、各エッジを横断して1と2の間で交互になります。到達したすべての頂点について、現在のレベルを対応するエントリwhich
に割り当て、(以前は0だった場合は)その子を処理するために繰り返します。その後、which
のすべての要素は1または2になり、which[i]
はどのセット頂点がi
に属するかを示します。
直感的に言えば、DFS内の親から子への各トラバーサルがレベルを「下」にし、各トラバーサルバックがあなたを「上」に戻すと想像することができます。 2つのプロパティによって、偶数レベルのすべての頂点は奇数レベルの頂点にのみ接続でき、その逆もあります。したがって、ノードを「偶数」または「奇数」にラベル付けするだけで、2つのセットに分割するだけで十分です。
グラフに複数のコンポーネントが含まれている場合は、各コンポーネントごとに個別のDFSが必要です。
関連する問題
- 1. グラフの隣接行列
- 2. Neo4j内のグラフの隣接行列
- 3. グラフの隣接行列の実装
- 4. 隣接行列と有向グラフの隣接リスト
- 5. グラフの表現:隣接リストと行列
- 6. 隣接行列、グラフの実装
- 7. 二部グラフの完璧なマッチングの分割
- 8. 隣接グラフの二乗を計算するアルゴリズム
- 9. Pythonの行列から隣接リストのグラフを作成する
- 10. ジュリアの加重隣接行列のグラフ表示をプロットする
- 11. グラフの実装と隣接行列の初期化
- 12. Cのグラフの隣接リスト
- 13. igraphの隣接行列からグラフを構築する
- 14. グラフ内の隣接行列(エラーが発生している)
- 15. 隣接リストとグラフ
- 16. 無向グラフの隣接リスト
- 17. 隣接行列のBFS
- 18. 隣接リストと隣接行列の相違
- 19. 隣接行列DFSとBFS
- 20. 二部グラフの最大マッチング
- 21. 二部の行列で
- 22. 十二面体グラフの中で隣接リストをコード化する方法は?
- 23. python:hermitianとanti-hermitianの部分の分割行列
- 24. Cグラフ隣接リストの実装
- 25. Java-edge overlappingの隣接行列
- 26. 隣接行列の最適化計算
- 27. 任意のN * M行列を部分行列の等しい部分に分割する
- 28. Javaでグラフの隣接行列をコーディングし、三角形を数える
- 29. 隣接行列からのPython igraphを使ってwieghtedグラフを読む
- 30. PostgreSQLの部分で配列を分割
ワンダフル!ありがとう! :) – faximan
@faximan:あなたは大歓迎です:) –