現在,良く知られているベイジアンネットワークの構造学習アルゴリズムとしては 現実的な時間でグラフ構造を探索するためのヒューリスティクスを用いた K-2アルゴリズム[Cooper 92]がある. このアルゴリズムは (1)各ノードについて親ノードになりえる候補を限定しておく,(2)ある子ノードを一つ 選び,候補となる親ノードを一つづつ加えてグラフを作る,(3)そのグラフのもとで パラメータを決定し,評価する,(4)評価が高くなった時だけ親ノードとして採用し, (5)親ノードとして加える候補がなくなるか,加え ても評価が高くならなくなったら他の子ノードへ移る,(6)全ての子ノード について(1)-(5)を繰り返す,というものである. 始めにノードを順序づけしておくことで親ノードになれるノードの組合せを限定し, 計算量の増大と生成するグラフ構造の循環を避けているが,これにより生成できる 構造の探索範囲も制約されてしまう.他には順序づけをしないヒューリスティクスを 用いた探索アルゴリズム[Buntine 91]や遺伝的アルゴリズムを使って探索するもの [Larranaga 96]などがある.
生成したグラフ構造を評価する際には,過剰に複雑な構造を避けるために, データの尤度と構造の複雑さの両方を考慮することが本質的に重要であり, MDL基準の適用例[Suzuki 93]などがある. また単一の構造に限定するのではなく,仮説となる複数の構造の混合 [Thiesson 98]や,ある変数の値により依存関係を変化させるネットワーク[Geiger 93]もある.