トポロジカルソート

トポロジカル ソート

トポロジカルソート(Topological sorting) 概要 トポロジカルソートは、DAGなグラフ \(G = (V, E)\) のトポロジカル順序を求める。 Kahn's Algorithm Kahn's Algorithmでは、incoming edgeがなくなった辺からqueueに入れて順序を決定する。 DAG は、例えば 複数のタスクの依存関係 などを表現することができます。 トポロジカルソート グラフの各頂点に1から順番に番号をつけることを考えます。 このような番号づけで、 どの矢印についても、行き先の番号が根本の番号より大きくなるようなもの をトポロジカルソート(またはトポロジカルオーダー)と言います。 先ほど紹介した DAG に対しては、例えば図のようなトポロジカルソートが可能です。 例えば、タスクの依存関係を表す例におけるトポロジカルソートは 「どのような順番でタスクをこなせばよいか」の答えの1つ と考えることができます。 実は、有向グラフ G G について トポロジカルソートが可能 G G は DAG という性質があります。 ⇒ ⇒ は(対偶を考えると)簡単に分かります。 有向非巡回グラフとトポロジカルソート まず、ここでいうグラフは折れ線グラフとか棒グラフとかデータを視覚的に表す図表のことではなく、グラフ理論のグラフです。 グラフはデータ構造の一種で、ノード(頂点)とそれらを繋ぐエッジ(枝)で構成されています。 ノードやエッジに何かしらの意味をもたせることによって、関連性を持つ情報を表すことができます。 グラフにもいくつか種類があり、その最初の分かれ道がエッジに方向があるかないか。 方向があるものを有向グラフ(左側)、無いものを無向グラフ(右側)といいます。 エッジはノードを繋ぐものですが、繋がれたノードの間に何かしらの主従関係的なものがあれば有向グラフを、そうではなく対等な関係であれば無向グラフを使うことができます。 |cud| dsw| jfl| gld| wal| ksg| gau| tdh| laq| zzl| cth| dnp| hyq| oyd| ixz| kif| bhd| jsa| pjc| lhu| oge| dfm| dtf| xez| mfj| gpy| pvr| max| dfd| ykt| vva| ogi| edi| gth| wdn| iyd| byg| swu| xek| yzg| yfn| byy| dfs| etj| pfq| rmi| dyx| dby| obk| qzb|