【问题标题】:Viterbi algorithm in linear time线性时间的维特比算法
【发布时间】:2011-05-02 22:52:48
【问题描述】:

我有一个问题,给定一个隐马尔可夫模型和状态 SI 需要找到一种算法,该算法在时间 O(|S|) 内返回通过隐马尔可夫模型的给定序列 X 的最可能路径。

我正在考虑开发一个图表,其中我将在 X 中的不同位置拥有所有不同的状态,并在该图表上运行最短路径算法。但是我将有 n|S|^2 个边(其中 n 是 X 中的状态数)和 n|S|顶点。

我发现的最佳算法是在时间 O(|E|+|V|) 中运行的非循环最短路径,在我的情况下为 O(|S|^2)。 有没有我可以开发的算法让它在 O(|S|) 时间内运行?我需要的只是总体思路。

谢谢

【问题讨论】:

  • 如果序列长于状态数怎么办?然后,您需要一种在亚线性时间内评估序列的算法。
  • 维特比算法在|S|中是二次的

标签: algorithm viterbi markov-models hidden-markov-models


【解决方案1】:

我认为,如果您想检索最有可能的确切序列,则无法在所有实例上以线性时间完成。但是,如果您的符号空间是离散的,则平均情况时间复杂度可能会降低。看看 Ukkonen 对计算编辑距离的优化及其generalizations。也可以看看compression based techniques 这也是基于 Ukkonen 的工作。

【讨论】:

    猜你喜欢
    • 2018-08-29
    • 1970-01-01
    • 2011-12-22
    • 2013-02-25
    • 1970-01-01
    • 2016-02-05
    • 2012-04-01
    • 1970-01-01
    • 2013-05-29
    相关资源
    最近更新 更多