|
首先作一些准备工作,利用前面介绍的算法,求出"不相容状态对"集合D和"相容状态对"集合C。 Step1 从D中任选一个"不相容状态对"(sp, sq),作以下操作以便在π中形成2个生长点: C1 = { sp }; C2 = { sq }; π = { C1 , C2 }; S = S - {sp, sq}; K = 3; Step2 对S中每一状态sj 作以下操作,以便继续在π中形成新的生长点: 若sj和π中每一相容类Ci (1≤i< k)都不相容,则 Ck = { sj }; π = π ∪ Ck ; S = S - { sj }; K = K + 1; Step3 若 S = φ; 转Step6 否则,令T = 0; 并对S中每一状态sj 作以下操作:若sj 和某一相容类Ci 相容,则 Ci = Ci ∪ { sj }; S = S - { sj }; T = 1; Step4 若 T = 1, 转Step3 Step5 若 S ≠ φ , 从S中任选一状态sj ,作以下操作: Ck = { sj }; π = π ∪ Ck ; S = S - { sj }; K = K + 1; 转Step3; Step6 算法结束,π即为所求。
|