GESアルゴリズムは、[[PCアルゴリズム|PC]]アルゴリズムのように完全無向グラフから始めるのではなく、空のグラフから始まり、必要なエッジを追加したり、不要なエッジを削除していきながら因果グラフを構築する。エッジの追加は貪欲前方探索(GFS)、削除は貪欲後方探索(GBS)と呼ばれる2つのステップでスコアS(G, D)を最大化する。
グラフに有向エッジを追加することで,[[ベイズ情報量規準]](BIC)のようなスコアや[[統計的仮説検定]]のZスコアで計測される適合性が最も向上させるエッジが追加される.
スコアをそれ以上改善できなくなった場合,GESアルゴリズムは,どのエッジを削除するとスコアが最も改善されるかをエッジごとに検証していく.
## ライブラリ
- [GitHub - juangamella/ges: Python implementation of the GES algorithm for causal discovery, from the 2002 paper "Optimal Structure Identification With Greedy Search" by David Maxwell Chickering.](https://github.com/juangamella/ges)