1
トポロジカルソートの手順、その正確さの証明
定義:状態機械の保存された不変条件は、状態に関する述語、が状態に対して真であり、が何らかの状態である場合、は次のようになります。 。PPPP(q)P(q)P(q)qqqq→ rq→rq \rightarrow rrrrP(r )P(r)P(r) 定義:折れ線グラフは、エッジがすべて1つのパス上にあるグラフです。 定義:正式には、状態機械は、セットの要素が「状態」と呼ばれ、関係が遷移関係と呼ばれ、遷移関係のグラフの矢印がトランジションと呼ばれます。状態から状態への遷移は、と記述されます。qqqrrrq→ rq→rq \rightarrow r DAG:有向アシリックグラフ 次の手順は、任意の有向グラフ適用できます。GGG サイクルにあるエッジを削除します。 削除エッジ頂点からパスがある場合に頂点には含まれていません。< u → v ><u→v>あなたuuvvv< u → v ><u→v> 頂点と頂点間にどちらの方向にもパスがない場合は、エッジを追加します。< u → v ><u→v>あなたuuvvv 該当するものがなくなるまで、これらの操作を繰り返します。 この手順は、状態マシンとしてモデル化できます。開始状態はであり、状態はすべてと同じ頂点を持つ可能な有向グラフです。GGGGGG (b)プロシージャがダイグラフで終了する場合、はと同じ頂点を持つ折れ線グラフであることを証明します。HHHHHHGGG ヒント:が折れ線グラフでない場合、何らかの操作が適用可能でなければならないことを示します。HHH (c) DAGであることが手順の保存された不変であることを証明します。 (d)そのことを証明するGGG はDAGであり、手順が終了すると、最終的な折れ線グラフのウォーク関係はトポロジの種類になります。 GGG。 ヒント:述語が P(u 、v )P(u,v)P(u,v)::からの有向パスがあります あなたuu に vvv 2つの頂点について、手順の保存された不変式です u 、v u, vu, \ …