歡迎使用CSDN markdown編輯器

2021-07-29 15:39:50 字數 1649 閱讀 4946

定理二

設a是滿足|a| = n 的乙個集合,且r是a上的乙個關係,那麼有

r∞sup> = r ∪ r2sup> ∪ … ∪ rnsup>.

換句話說, 計算r∞sup>時不需要比n大的r的冪。

證明    設a和b是a中的元素,假設a,x1sub>, x2sub>, … , xmsub>, b是r中一條從a到b的路徑,也就是說(a, x1sub>), (x1sub>, x2sub>), … , (xmsub>, b)都在r中。

如果xisub>和xjsub>是同乙個點,i < j, 那麼該路徑可劃分為三個塊。首先,一條從a到xisub>的路徑,然後是一條從xisub>到xjsub>的路徑,最後是

從xjsub>到b的路徑。因為xisub> = xjsub>, 中間的路徑是自迴圈的,所以我們可以略過它並把另兩條路徑拼接。這給予了我們一條更短的div>

從a到b的路徑。div>

現在使a,x1sub>, x2sub>, … , xksub>, b是從a到b的最短路徑。若a ≠ b,則該路徑上所有頂點都是不同的。否則前面的討論告訴我們我們div>

能夠找到一條更短的路徑。因此該路徑長度最多是n - 1(在|a| = n的情況下)。若a = b,根據相似的理由,a,x1sub>, x2sub>, … , xksub>

div>

是不同的,所以該路徑的長度最多為n。換句話說,若a r∞ sup>b,那麼a rksup> b,其中k滿足1 ≤ k ≤ n。因此r∞sup> = r ∪ r2sup> ∪ … ∪ rnsup>.div>

用來解決問題1的方法分別都有某些困難。繪圖法對於大的集合、關係來說是不實用的,並且也不是系統化的。運用矩陣div>

的方法在一般情況下可用,且也是足夠系統化以便電腦進行程式設計的,但它不夠有效率,且構建大的矩陣的代價大到足以被div>

禁止使用。幸運的是,有乙個更有效率的用來計算傳遞閉包的演算法,它就是warshall演算法。div>

div>

warshall演算法div>

設想有乙個在集合a = 上的關係r。若x1sub>, x2sub>, … , xmsub>是r中的一條路徑,那麼除x1sub>、xmsub>外的任何頂點是這條路div>

徑的內頂點。現在,對1 ≤ k ≤ n,我們定義乙個布林矩陣wb>

ksub>. 當且僅當從aisub>到ajsub>有r上的一條路徑時,wb>

ksub>的(i, j)位才為1,且div>

這條道路的內頂點來自集合。div>

既然任何頂點都來自,那麼當且僅當在r上有某路徑連線aisub>和ajsub>時,wb>

nsub>在(i, j)位為1。換句話說,wb>

n sub>=mb>

r∞sup>

sub>。div>

若我們定義wb>

0sub>為mb>

rsub>,那麼我們會得到乙個首位是mb>

rsub>,末位是mb>

r∞sup>

sub>的序列,我們會展現如何通過wb>

k-1sub>去計算wb>

ksub>。接著我們div>

會從矩陣mb>

rsub>開始,一次前進一步,n次之後就能得到矩陣mb>

r∞sup>

sub>。這個流程被稱作warshall演算法。矩陣與div>

div>

歡迎使用CSDN markdow

本markdown編輯器使用stackedit修改而來,用它寫部落格,將會帶來全新的體驗哦 markdown 是一種輕量級標記語言,它允許人們使用易讀易寫的純文字格式編寫文件,然後轉換成格式豐富的html頁面。維基百科 使用簡單的符號標識不同的標題,將某些文字標記為粗體或者斜體,建立乙個鏈結等,詳細...

歡迎毛毛與妞妞使用CSDN markdown編輯器

建立乙個自定義列表 如何建立乙個註腳 注釋也是必不可少的 katex數學公式 新的甘特圖功能,豐富你的文章 uml 圖表 flowchart流程圖 匯出與匯入 你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器,可以仔細閱讀這篇文章,了解一下mar...

歡迎使用CSDN markdow1n編輯器

本markdown編輯器使用stackedit修改而來,用它寫部落格,將會帶來全新的體驗哦 markdown 是一種輕量級標記語言,它允許人們使用易讀易寫的純文字格式編寫文件,然後轉換成格式豐富的html頁面。維基百科 使用簡單的符號標識不同的標題,將某些文字標記為粗體或者斜體,建立乙個鏈結等,詳細...