グラフ【graph】
概要
図のグラフ
図としてのグラフは、数値データを棒、折れ線、円などで視覚的に表現し、傾向や割合、対比を直感的に把握しやすくしたものである。表計算ソフトや統計解析ソフト、BIツールなど、データを扱う様々なソフトウェアにグラフを生成する機能が搭載されている。
代表的な種類として、数値の大小を棒の長さで比較する「棒グラフ」、時系列の変化を線でつないで推移を示す「折れ線グラフ」、全体に占める割合を扇形で示す「円グラフ」、二つの変数の相関関係を点の分布で示す「散布図」などがある。用途や伝えたい情報の性質によって適切な種類を選ぶことが重要である。例えば、時系列の変化には折れ線グラフ、構成比には円グラフが適するといった使い分けが行われる。
グラフ理論
数学的な構造としてのグラフは、「ノード」(頂点)と呼ばれる点と、ノード間に関係があることを表す「エッジ」(辺)の組み合わせで構成される抽象的な構造である。1736年に著名な数学者のオイラーがケーニヒスベルクの橋の問題(一筆書き問題)を議論する際に考案された。
エッジに向き(方向)がある「有向グラフ」と、向きのない「無向グラフ」に大別される。エッジに重み(係数)を持たせた「重み付きグラフ」も広く用いられる。複数のエッジをつなぎ合わせた経路の中に、あるノードを出発して自分自身に戻ってくる循環構造が含まれるものを「巡回グラフ」、このような循環構造を含まないという制約を設けたものを「非巡回グラフ」という。
グラフ構造は、Webページ間のリンク構造、SNSのフォロー関係、交通網の経路探索、タスクの依存関係など、複数の要素間の関係性をモデル化する手段として活用される。最短経路を求める「ダイクストラ法」や、グラフを効率よく探索する「深さ優先探索」(DFS)、「幅優先探索」(BFS)といったアルゴリズムもグラフ理論を基盤としている。データベースの分野では、Neo4jのように、ノードとエッジをそのままデータとして格納する「グラフデータベース」も存在する。
