最小元素法定義

最小元素法(Minimum Element Method)是一種用來解決最短路徑問題(Shortest Path Problem)的算法。在圖論中,最短路徑問題是指找出兩點之間或多點之間的最短路徑。最小元素法通常用來解決單源最短路徑問題(Single-Source Shortest Path Problem),即給定一個圖和一個源點,找出從源點到其他所有點的最短路徑。

最小元素法的原理是使用一個稱為斐波那契堆(Fibonacci Heap)的數據結構來維護一個最小堆,並通過貪心算法來逐步找出最短路徑。算法的基本步驟如下:

  1. 初始化:將圖中所有頂點的距離設為無窮大,源點的距離設為0。
  2. 堆構建:使用斐波那契堆來構建一個最小堆,堆中的元素是頂點及其距離。
  3. 堆提取:從堆中提取具有最小距離的頂點,並更新其鄰點的距離。
  4. 更新:如果更新後的鄰點距離比原來的短,則更新該鄰點的距離。
  5. 重複:重複堆提取和更新的步驟,直到堆中沒有頂點或者找到所需的頂點。

最小元素法的時間複雜度為O((|V| + |E|) log |V|),其中|V|是圖中頂點的數量,|E|是邊的數量。這個算法在實際應用中通常非常高效,尤其是對於大規模圖形。

需要注意的是,最小元素法是Peter van Emde Boas在1979年提出的,但直到1996年,R. H. Bellman、L. J. Tarjan和S. H. Whitesides才將其應用於最短路徑問題。