2012年5月23日水曜日

CHOLMOD の permutation

CHOLMOD の結果から clique の情報を取り出すのが次の方向だが、これが意外と難しい。
今日までに分かった点では、cholmod_factor の中に入っている Perm の順番と実際にコレスキー分解に用いている順番が異なる、という点である。

Perm で求まるのは(AMD で計算していると仮定したとき)、Matlab 表記であれば
Perm = amd(A);
である。
これに対して、コレスキー分解に用いられているのは、
Perm = amd(A);
[parent, post] = etree(A(Perm,Perm));
Perm2 = Perm(post);
である。
つまり、elimination tree の post-ordering で並び変えた後にコレスキー分解を行っている。

この順番に並び変えた後に、単純に極大クリークを求めてみたが、この情報とCHOLMOD から得られる supernode の情報はかなり異なる。
post-ordering から supernode を生成する過程と、その過程と極大クリークの関係を理解する必要がありそうだ。


今日の作業内容:CHOLMOD 確認 3h
今日のランチ:らく 焼き魚定食
明日の予測作業時間:2h



0 件のコメント:

コメントを投稿