ビタビアルゴリズム
まず、上述の前提条件について詳しく解説する。ビタビアルゴリズムは状態機械を仮定して動作する。すなわち、モデルとしたシステムは任意の時点で何らかの状態を持つ。状態数は膨大であっても有限であり、リストアップ可能である。各状態がノードとして表される。与えられた状態に対応する状態の系列(経路)が複数考えられるとしても、最も尤もらしい状態経路が1つあり、これを「生存者経路; survivor path」と呼ぶ。これがこのアルゴリズムの基本的な前提である。このアルゴリズムは、ある状態に到達するあらゆる経路を調べ、最も尤もらしい経路を選ぶ。これを状態の並びに対して順次適用するため、あらゆる経路を保持しておく必要はなく、状態1つにつき1つの経路だけを保持する。
第二の重要な前提は、ある状態から別の状態への遷移について増分(通常、数)を付与する点である。この遷移は事象から求められる。
第三の重要な前提は、事象は一般に加算的な意味で経路上で累積するとされる。従って、このアルゴリズムの急所は、各状態についての数を保持する点である。ある事象が起きたとき、このアルゴリズムではこれまでの状態経路の持つ値と新たな遷移における増分を考慮し、最も良いものを選択する。