アルゴリズム閉鎖転送ワーシャルを求めて

 ----------------------------

質問:Rは、セットSに定義されたバイナリ関係で、R閉鎖要求が送信されます。

入力:リレーションR、セットA

出力:T(R)、Rの推移閉包であります 

ソリューション:ウォーシャルアルゴリズム

----------------------------

推移閉包(推移閉包)R&LT * = R&LT ∪R&LT ∪R&LT ∪∪R&LT ...... N-  

転送関係Rの閉鎖を説明すると、T(R)で表されるR *で表すことができる関係です。

ウォーシャルアルゴリズムは次のように動作します。

まず、R行列を表し、

次いで、各素子を介して上から下へ、i番目の列の、列によって最初の列からトラバースを開始します

第i行j列の要素が1である場合、第i行第j列に相当を添加しました。

 

Pythonのシミュレーションコード:

 

#行インデックスR用の第1の2次元配列インデックス、及び第二の添字は列インデックスであることを想定。
:ウォーシャルDEF(R&LT)
  Nサイズ=(R&LT)
  範囲(0 ,. 1-N-)におけるIのための:
    :範囲内のJ(0 ,. 1-N-)用
      IF R&LT [J] [I] == 1:
        R&LT [ J] [:] = R&LT + [I] [:]
  戻りR&LT

おすすめ

転載: www.cnblogs.com/dynmi/p/12122937.html