以下に説明する特定の状況を理解したと思いますが、証明を行うための理論的知識が不足しており、それについて言及しているソースを見つけることができませんでした。私の理解が正しければ、隣接行列の半分のスペースを節約できます。そうでなければ、かなり奇妙なバグが発生する可能性があります。ですから、私は確信したいと思います。より堅実な背景を持つ誰かが私の推論を見直していただければ幸いです.
n * n 隣接行列で n 個の頂点の DAG を表し、頂点から頂点へのエッジがある場合はエントリi,j
が、そうでない場合はエントリがあるとします。グラフは有向で非巡回であるため、if 、thenに従います。i nのノードのトポロジー レベルがi n-1のノード以上になるようにマトリックス内のノードを並べ替えると、隣接マトリックスの半分には常にsのみが含まれるように思えます。、次の例のように:1
i
j
0
i,j = 1
j,i = 0
0
V 1 V 2 から V 1 2 3 4 5 6 7 8 / \ / \ / \ / \ から V 1 0 0 0 0 0 0 0 0 / \ / \ 2 0 0 0 0 0 0 0 0 e1/ e2\ e3/ e4\ 3 1 0 0 0 0 0 0 0 / \ / \ 4 1 1 0 0 0 0 0 0 V 3 V 4 V 5 5 0 1 0 0 0 0 0 0 /|\ / 6 0 0 0 1 0 0 0 0 / | \ / 7 0 0 0 1 0 0 0 0 / | \ / 8 0 0 0 1 1 0 0 0 e5/ e6| e7\ e8/ / | \ / V 6 V 7 V 8
たぶん私は正しいのですが、これを確認する正式な方法はありますか?