<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hant-TW">
	<id>https://wiki.taigi.ima.org.tw/w/index.php?action=history&amp;feed=atom&amp;title=Floyd-Warshall%E6%BC%94%E7%AE%97%E6%B3%95</id>
	<title>Floyd-Warshall演算法 - 修訂紀錄</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.taigi.ima.org.tw/w/index.php?action=history&amp;feed=atom&amp;title=Floyd-Warshall%E6%BC%94%E7%AE%97%E6%B3%95"/>
	<link rel="alternate" type="text/html" href="https://wiki.taigi.ima.org.tw/w/index.php?title=Floyd-Warshall%E6%BC%94%E7%AE%97%E6%B3%95&amp;action=history"/>
	<updated>2026-04-09T10:49:54Z</updated>
	<subtitle>本 wiki 上此頁面的修訂紀錄</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://wiki.taigi.ima.org.tw/w/index.php?title=Floyd-Warshall%E6%BC%94%E7%AE%97%E6%B3%95&amp;diff=457751&amp;oldid=prev</id>
		<title>TaiwanTonguesApiRobot：​從 JSON 檔案批量匯入</title>
		<link rel="alternate" type="text/html" href="https://wiki.taigi.ima.org.tw/w/index.php?title=Floyd-Warshall%E6%BC%94%E7%AE%97%E6%B3%95&amp;diff=457751&amp;oldid=prev"/>
		<updated>2025-08-23T03:53:20Z</updated>

		<summary type="html">&lt;p&gt;從 JSON 檔案批量匯入&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新頁面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Floyd-Warshall 演算法&amp;#039;&amp;#039;&amp;#039;（英語：Floyd-Warshall algorithm）， 中文亦稱&amp;#039;&amp;#039;&amp;#039;枋洛他德演算法&amp;#039;&amp;#039;&amp;#039;抑是&amp;#039;&amp;#039;&amp;#039;佛洛依德演算法&amp;#039;&amp;#039;&amp;#039;，是解決任意兩點間的上短路徑的一種演算法，會當正確處理有向圖負權（毋過袂當存在負權迴路）的上短路徑問題，同時嘛予人用佇計算有向圖的遞移閉包。&lt;br /&gt;
&lt;br /&gt;
Floyd-Warshall 演算法的時間複雜度做 $ O ( | V | ^ { 三 } ) $，空間複雜度做 $ O ( | V | ^ { 二 } ) $，其中 $ V $ 是點集。&lt;br /&gt;
&lt;br /&gt;
==原理==&lt;br /&gt;
&lt;br /&gt;
Floyd-Warshall 演算法的原理是動態的規劃。&lt;br /&gt;
&lt;br /&gt;
設 $ D _ { i , j , k } $ 為對 $ i $ 到 $ j $ 的干焦以 $ ( 一 . . k ) $ 集合中的節點為中央節點的上短路徑的長度。&lt;br /&gt;
&lt;br /&gt;
一 . 若上短路徑經過點 k，著 $ D _ { i , j , k }=D _ { i , k , k 影一 } + D _ { k , j , k 影一 } $；&lt;br /&gt;
二 . 若上短路徑不經過點 k，著 $ D _ { i , j , k }=D _ { i , j , k 影一 } $。&lt;br /&gt;
&lt;br /&gt;
所以，$ D _ { i , j , k }={ \ mbox { min } } ( D _ { i , j , k 影一 } , D _ { i , k , k 影一 } + D _ { k , j , k 影一 } ) $。&lt;br /&gt;
&lt;br /&gt;
佇實際演算法內底，為著儉約空間，會使直接佇咧原來空間迵天，按呢空間會當降到二維。&lt;br /&gt;
&lt;br /&gt;
==演算法描述==&lt;br /&gt;
&lt;br /&gt;
Floyd-Warshall 演算法的虛擬碼是描述如下：&lt;br /&gt;
&lt;br /&gt;
` ` `&lt;br /&gt;
一&amp;#039;&amp;#039;&amp;#039;let&amp;#039;&amp;#039;&amp;#039;dist be a | V | × | V | array of minimum distances initialized to ∞ ( infinity )&lt;br /&gt;
二&amp;#039;&amp;#039;&amp;#039;for each&amp;#039;&amp;#039;&amp;#039;vertex _ v _&lt;br /&gt;
三 dist [_ v _] [_ v _] ← 零四&amp;#039;&amp;#039;&amp;#039;for each&amp;#039;&amp;#039;&amp;#039;edge ( _ u _ , _ v _ )&lt;br /&gt;
五 dist [_ u _] [_ v _] ← w ( _ u _ , _ v _ ) _ / / the weight of the edge ( _ u _ , _ v _ ) _&lt;br /&gt;
六&amp;#039;&amp;#039;&amp;#039;for&amp;#039;&amp;#039;&amp;#039;_ k _&amp;#039;&amp;#039;&amp;#039;from&amp;#039;&amp;#039;&amp;#039;一&amp;#039;&amp;#039;&amp;#039;to&amp;#039;&amp;#039;&amp;#039;| V |&lt;br /&gt;
七&amp;#039;&amp;#039;&amp;#039;for&amp;#039;&amp;#039;&amp;#039;_ i _&amp;#039;&amp;#039;&amp;#039;from&amp;#039;&amp;#039;&amp;#039;一&amp;#039;&amp;#039;&amp;#039;to&amp;#039;&amp;#039;&amp;#039;| V |&lt;br /&gt;
八&amp;#039;&amp;#039;&amp;#039;for&amp;#039;&amp;#039;&amp;#039;_ j _&amp;#039;&amp;#039;&amp;#039;from&amp;#039;&amp;#039;&amp;#039;一&amp;#039;&amp;#039;&amp;#039;to&amp;#039;&amp;#039;&amp;#039;| V |&lt;br /&gt;
九&amp;#039;&amp;#039;&amp;#039;if&amp;#039;&amp;#039;&amp;#039;dist [_ i _] [_ j _] &amp;gt; dist [_ i _] [_ k _] + dist [_ k _] [_ j _]&lt;br /&gt;
十 dist [_ i _] [_ j _] ← dist [_ i _] [_ k _] + dist [_ k _] [_ j _]&lt;br /&gt;
十一&amp;#039;&amp;#039;&amp;#039;end if&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
` ` `&lt;br /&gt;
&lt;br /&gt;
其中 ` dist [i] [j] ` 表示因為點 $ i $ 到矣 $ j $ 的代價，當其實 ∞ 表示兩點之間無任何連接。&lt;br /&gt;
&lt;br /&gt;
==使用動態規劃的演算法==&lt;br /&gt;
&lt;br /&gt;
* 上長公共子序列&lt;br /&gt;
* Viterbi 演算法&lt;br /&gt;
&lt;br /&gt;
==實現==&lt;br /&gt;
&lt;br /&gt;
Floyd 演算法佇無仝的程式語言中均有大量的實現方法：&lt;br /&gt;
&lt;br /&gt;
* C + +：boost : : graph 庫下&lt;br /&gt;
* C #：QuickGraph 和 QuickGraphPCL 中均有相關實現方法&lt;br /&gt;
* Java：Apache Commons Graph 庫中&lt;br /&gt;
* JavaScript：Cytoscape 庫中&lt;br /&gt;
* MATLAB：Matlab \ _ bgl 包著&lt;br /&gt;
* Perl：Graph 組件下&lt;br /&gt;
* Python：SciPy 庫下（scipy . sparse . csgraph）， NetworkX 庫中嘛有&lt;br /&gt;
* R：e 一千空七十一和 Rfast 揹仔內&lt;br /&gt;
&lt;br /&gt;
==參考來源==&lt;br /&gt;
&lt;br /&gt;
==參見==&lt;br /&gt;
&lt;br /&gt;
* 圖論上短路&lt;br /&gt;
* Dijkstra 演算法&lt;br /&gt;
* Bellman-Ford 演算法&lt;br /&gt;
&lt;br /&gt;
[[分類: 待校正]]&lt;/div&gt;</summary>
		<author><name>TaiwanTonguesApiRobot</name></author>
	</entry>
</feed>