グラフプログラミング

グラフは,完全に拡張可能な頂点と辺の特性を与えることで,トポロジーで具現化された構造情報以上のことを表すことができるようになる.例えば頂点は力学系モデルを含むことができ,辺は信号を含むことができるので,グラフでブロック図モデルを表すことができる.頂点と辺の特性は,多くのグラフアルゴリズムで使われるように,深さ優先,または幅優先で走査したときに状態を保存することができる.Wolfram言語はグラフフレームワーク全体をさまざまに拡張することができる豊富な行列,最適化,ブールベースフレームワーク一式を備えており,グラフプログラミングにマルチパラダイムアプローチを提供する.

走査ベースのアルゴリズム

BreadthFirstScan グラフを幅優先順で走査する

DepthFirstScan グラフを深さ優先順で走査する

"DiscoverVertex"  ▪  "UnvisitedVertex"  ▪  "PrevisitVertex"  ▪  "PostvisitVertex"  ▪  "FrontierEdge"  ▪  "CycleEdge"  ▪  "BackEdge"  ▪  ...

行列ベースのアルゴリズム »

AdjacencyMatrix 隣接疎行列表現に変換する

AdjacencyGraph 隣接行列からグラフを構築する

IncidenceMatrix  ▪  IncidenceGraph  ▪  KirchhoffMatrix  ▪  KirchhoffGraph

Transpose  ▪  Dot  ▪  Eigenvalues  ▪  Eigenvectors  ▪  ...

最適化ベースのアルゴリズム »

Minimize 制約条件付き関数を最小化する

NMinimize  ▪  FindMinimum  ▪  ...

ブール関数ベースのアルゴリズム »

SatisfiableQ ブール式・関数がTrueになりうるかどうかを検証する

TautologyQ  ▪  Conjunction  ▪  Disjunction  ▪  ...