スキップしてメイン コンテンツに移動

投稿

10月, 2024の投稿を表示しています

NetworkXで可視化 2

 NetworkXで一枚可視化が出来たので、今度は少し深入りしてみようと思います。 Software for Complex Networks — NetworkX 3.3 documentation Greedy Coloringというものがありました。12面体ドデカヘドラのグラフです。 「greedy」という言葉の語源は、古英語の「grēdīg」に遡るそうです。この言葉は「欲しい」という意味の「grēd」から派生しており、もともとは「渇望している」「強く欲する」というニュアンスを持っており、現在の意味では「欲深い」「貪欲な」という意味だそうです。 Greedy alogorithmは貪欲法と呼ばれ、局所探索法 と並んで近似アルゴリズムの 最も基本的な考え方の一つだそうです。 Greedyな手法というと、最適化問題を解くためのアルゴリズムの一種で、各段階で局所的に最適な選択を行いながら全体の最適解に近づこうとする方法だそうです。具体的には、各ステップでその時点での最善の選択を行い、その選択が後のステップでも続いていく特徴があるそうです。 それでは、コードを見てみます。 # ライブラリーのインポート import numpy as np import networkx as nx import matplotlib.pyplot as plt import matplotlib.colors as mpl numpyは、 数値計算ライブラリ networkxは、 グラフ構造を操作するためのライブラリ matplotlib.pyplotは、 グラフを描画するためのライブラリ matplotlib.colorsは、 カラーマッピングに使用されるライブラリ # グラフの生成 G = nx.dodecahedral_graph() nx.dodecahedral_graphで、 ドデカヘドラ(12面体)グラフを生成します。 # グラフの色付け graph_coloring = nx.greedy_color(G) unique_colors = set (graph_coloring.values()) nx.greedy_color(G)で、 貪欲法を用いてグラフのノードに色を割り当てます。この方法では、隣接するノードが異なる色を持つようにします。...