1. 程式人生 > >數學歸納法在資料結構與演算法分析設計中的應用

數學歸納法在資料結構與演算法分析設計中的應用

最簡單和常見的數學歸納法是證明當n等於任意一個自然數時某命題成立。證明分下面兩步:

  • 證明當 n= 1 時命題成立。
  • 假設 n=m 時命題成立,那麼可以推匯出在 n=m+1 時命題也成立。(m代表任意自然數)

1. 圖

  • G=(V, E) 為一個有向圖或無向圖,假定 BFS 以給定結點 sV 作為源節點在圖 G 上執行。則在 BFS 終結時,對於每個結點 vV,BFS 計算得到的 v.d 滿足 v.dδ(s,v)δ(s,v)sv 的最短路徑,v.d:以 BFS 的方式從源點出發到 v 之間的距離)。

    以數學歸納法的方式進行證明,此外還需理解的細節即是,BFS 的方式需藉助先進先出的佇列,其最核心的兩個操作,enqueue 與 dequeue。我們的歸納假設是:對於所有的結點 v

    Vv.dδ(s,v)

    enqueue(G, u),從結點 u 進行鄰接表搜尋時發現了結點 v(u 可以到 v,根據三角不等式性,δ(s,v)δ(s,u)+1),根據歸納法假設有 u.dδ(s,u),根據符號 .d 的定義知,v.d=u.d+1,因此:

    v.d=u.d+1δ(s,u)+1δ(s,v)
  • 證明:任意連通無向圖 G=(V,E) 滿足 |E||V|1

    • 當只有一個頂點時,|E|=0,|V|=1,顯然成立;
    • 因為是連通的,故取出一個頂點(|V|=|V|1),以及與之相連的邊(不只一個 |E|1+|E|),構成一個新的子圖 G=(V,E),根據數學歸納法,則有:
|E|1+|E||E|1+|E||V|1+1|E|1+|E||V|+11|E|1+|E||V|1|E||V|1