定義:状態機械の保存された不変条件は、状態に関する述語、が状態に対して真であり、が何らかの状態である場合、は次のようになります。 。
定義:折れ線グラフは、エッジがすべて1つのパス上にあるグラフです。
定義:正式には、状態機械は、セットの要素が「状態」と呼ばれ、関係が遷移関係と呼ばれ、遷移関係のグラフの矢印がトランジションと呼ばれます。状態から状態への遷移は、と記述されます。
DAG:有向アシリックグラフ
次の手順は、任意の有向グラフ適用できます。
- サイクルにあるエッジを削除します。
- 削除エッジ頂点からパスがある場合に頂点には含まれていません。
- 頂点と頂点間にどちらの方向にもパスがない場合は、エッジを追加します。
該当するものがなくなるまで、これらの操作を繰り返します。
この手順は、状態マシンとしてモデル化できます。開始状態はであり、状態はすべてと同じ頂点を持つ可能な有向グラフです。
(b)プロシージャがダイグラフで終了する場合、はと同じ頂点を持つ折れ線グラフであることを証明します。
ヒント:が折れ線グラフでない場合、何らかの操作が適用可能でなければならないことを示します。
(c) DAGであることが手順の保存された不変であることを証明します。
(d)そのことを証明する はDAGであり、手順が終了すると、最終的な折れ線グラフのウォーク関係はトポロジの種類になります。 。
ヒント:述語が ::からの有向パスがあります に 2つの頂点について、手順の保存された不変式です DAGの。
(e)そのことを証明する が有限の場合、プロシージャは終了します。
ヒント:しましょう サイクル数 エッジの数であり、 頂点の間に(いずれかの方向に)有向パスを持つ頂点のペアの数になります。ご了承ください どこ の頂点の数です 。係数を見つける as + bp + e + cは非負の整数値であり、各遷移で減少します。
私の問題:
問題に悩まされました そして しかし、他の問題の解決策も歓迎します。
問題で 、私はヒントとそれがなぜ与えられるのか、それがどのように役立つのか理解できませんでした。
証明するための私の方法で 、私は与えられた手順が常に開始グラフ上のエッジに関連付けられている頂点の順序を維持することを示すことを試みています 。したがって、頂点の「優先順位」が維持されるため、折れ線グラフは自動的にトポロジカルソートになります。
ただし、手続き番号 問題があるのですが、それが優先順位を保持していることをどのように示すのですか?