複製鏈接
請複製以下鏈接發送給好友

馬爾可夫算法

鎖定
馬爾可夫算法是使用類似形式文法的規則在符號上操作的字符串重寫系統。
中文名
馬爾可夫算法
語    種
Refal
操    作
符號串上操作的字符串重寫系統
認    定
圖靈完全

馬爾可夫算法簡介

馬爾可夫算法是使用類似形式文法的規則在符號上操作的字符串重寫系統。馬爾可夫算法被證明是圖靈完全的,這意味着它們適合作為一般的計算模型,並可以用它的簡單概念表示任何數學表達式。
Refal是基於馬爾可夫算法的編程語言

馬爾可夫算法算法

  1. 自頂向下依次檢查規則,看是否能在符號串中找到任何在箭頭左邊的字符串。
  2. 如果沒有找到,停止執行算法。
  3. 如果找到一個或多個,把符號串中的最左匹配的文字替換為在第一個相應規則的箭頭右邊的字符串。
  4. 返回步驟1並繼續。(如果應用的規則是終止規則,則停止執行算法。) [1] 

馬爾可夫算法例子

下列例子展示了馬爾可夫算法的基本操作。

馬爾可夫算法規則

  1. "A" -> "apple"
  2. "B" -> "bag"
  3. "S" -> "shop"
  4. "T" -> "the"
  5. "the shop" -> "my brother"
  6. "從不使用的" ->."終止規則"

馬爾可夫算法符號串

"I bought a B of As from T S."

馬爾可夫算法執行

如果算法應用於上述例子,符號串將被以如下方式變更。
  1. "I bought a B of apples from T S."
  2. "I bought a bag of apples from T S."
  3. "I bought a bag of apples from T shop."
  4. "I bought a bag of apples from the shop."
  5. "I bought a bag of apples from my brother."
算法接着就終止了。

馬爾可夫算法馬爾可夫鏈

馬爾可夫鏈(英語:Markov chain),又稱離散時間馬爾可夫鏈(discrete-time Markov chain,縮寫為DTMC),因俄國數學家安德烈·馬爾可夫(俄語:Андрей Андреевич Марков)得名,為狀態空間中經過從一個狀態到另一個狀態的轉換的隨機過程。該過程要求具備“無記憶”的性質:下一狀態的概率分佈只能由當前狀態決定,在時間序列中它前面的事件均與之無關。這種特定類型的“無記憶性”稱作馬爾可夫性質。馬爾科夫鏈作為實際過程的統計模型具有許多應用。 [2] 
馬爾可夫鏈的每一步,系統根據概率分佈,可以從一個狀態變到另一個狀態,也可以保持當前狀態。狀態的改變叫做轉移,與不同的狀態改變相關的概率叫做轉移概率。隨機漫步就是馬爾可夫鏈的例子。隨機漫步中每一步的狀態是在圖形中的點,每一步可以移動到任何一個相鄰的點,在這裏移動到每一個點的概率都是相同的(無論之前漫步路徑是如何的)。
參考資料
  • 1.    Caracciolo di Forino, A. String processing languages and generalized Markov algorithms. In Symbol manipulation languages and techniques, D. G. Bobrow (Ed.), North-Holland Publ. Co., Amsterdam, The Netherlands, 1968, pp. 191-206.
  • 2.    Norris, James R. Markov chains. Cambridge University Press. 1998.