Can you summarize the following document?
        
  假設給定隱式馬爾可夫模型(HMM)狀態空間 formula_1,共有k個狀態,初始狀態 formula_2 的概率為 formula_3,從狀態 formula_2 到狀態 formula_5 的轉移概率為 formula_6。 令觀察到的輸出為 formula_7。 產生觀察結果的最有可能的狀態序列 formula_8 由遞推關係給出:  此處 formula_10 是前 formula_11 個最終狀態為 formula_12 的觀測結果最有可能對應的狀態序列的概率。 通過儲存向後指標記住在第二個等式中用到的狀態 formula_13 可以獲得維特比路徑。宣告一個函式 formula_14,它返回若 formula_15時計算 formula_10 用到的 formula_13 值 或若 formula_18時的formula_12. 這樣:  這裡我們使用了arg max的標準定義 演算法複雜度為 formula_21

  想象一個鄉村診所。村民有著非常理想化的特性,要麼健康要麼發燒。他們只有問診所的醫生的才能知道是否發燒。 聰明的醫生通過詢問病人的感覺診斷他們是否發燒。村民只回答他們感覺正常、頭暈或冷。  假設一個病人每天來到診所並告訴醫生他的感覺。醫生相信病人的健康狀況如同一個離散馬爾可夫鏈。病人的狀態有兩種“健康”和“發燒”,但醫生不能直接觀察到,這意味著狀態對他是“隱含”的。每天病人會告訴醫生自己有以下幾種由他的健康狀態決定的感覺的一種:正常、冷或頭暈。這些是觀察結果。 整個系統為一個隱馬爾可夫模型(HMM)。  醫生知道村民的總體健康狀況,還知道發燒和沒發燒的病人通常會抱怨什麼症狀。 換句話說,醫生知道隱馬爾可夫模型的引數。 這可以用Python語言表示如下:  在這段程式碼中, 起始概率codice_1 表示病人第一次到訪時醫生認為其所處的HMM狀態,他唯一知道的是病人傾向於是健康的。這裡用到的特定概率分佈不是均衡的,如轉移概率大約是codice_2。 轉移概率codice_3表示潛在的馬爾可夫鏈中健康狀態的變化。在這個例子中,當天健康的病人僅有30%的機會第二天會發燒。放射概率codice_4表示每天病人感覺的可能性。假如他是健康的,50%會感覺正常。如果他發燒了,有60%的可能感覺到頭暈。  病人連續三天看醫生,醫生髮現第一天他感覺正常,第二天感覺冷,第三天感覺頭暈。 於是醫生產生了一個問題:怎樣的健康狀態序列最能夠解釋這些觀察結果。維特比演算法解答了這個問題。 函式codice_5 具有以下引數: codice_6 為觀察結果序列, 例如 codice_7; codice_8 為一組隱含狀態; codice_9 為起始狀態概率; codice_10 為轉移概率; 而 codice_11 為放射概率。 為了簡化程式碼,我們假設觀察序列 codice_6 非空且 codice_13 和 codice_14 對所有狀態 i,j 有定義。  在執行的例子中正向/維特比演算法使用如下:  維特比演算法揭示了觀察結果 codice_7 最有可能由狀態序列 codice_16產生。 換句話說,對於觀察到的活動, 病人第一天感到正常,第二天感到冷時都是健康的,而第三天發燒了。  維特比演算法的計算過程可以直觀地由格圖表示。 維特比路徑本質上是穿過格式結構的最長路徑。 診所例子的格式結構如下, 黑色加粗的是維特比路徑: 在實現維特比演算法時需注意許多程式語言使用浮點數計算,當 p 很小時可能會導致結果下溢。 避免這一問題的常用技巧是在整個計算過程中使用對數概率,在對數系統中也使用了同樣的技巧。 當演算法結束時,可以通過適當的冪運算獲得精確結果。

  首先是一些問題必要的設定。 設觀察值空間為 formula_22、 狀態空間為 formula_23、 觀察值序列為 formula_24, formula_25 為 formula_26轉移矩陣,其中 formula_27 為從狀態 formula_28 轉移到 formula_29 的轉移概率、 formula_30 為 formula_31 放射矩陣(emission matrix),其中 formula_32 為在狀態 formula_28 觀察到 formula_34 的概率、 大小為 formula_35 的初始概率陣列 formula_36, formula_37 為 formula_38 的概率。 我們稱路徑 formula_39 為生成觀察值 formula_24 的狀態序列。  在這個動態規劃問題中, 我們構造了兩個大小為 formula_41 的二維表 formula_42 。 formula_43 的每個元素, formula_44,儲存生成 formula_45 時最有可能的路徑 formula_46, formula_47 的概率。 formula_48 的每個元素, formula_49,儲存最有可能路徑 formula_50, formula_51 的 formula_52。  我們按 formula_53 增序填充兩個表 formula_54。  function "VITERBI"( ) :
維特比演算法(英語:Viterbi algorithm)是一種動態規劃演算法。它用於尋找最有可能產生觀測事件序列的維特比路徑——隱含狀態序列,特別是在馬爾可夫資訊源上下文和隱馬爾可夫模型中。