Изменения

Перейти к: навигация, поиск

Алгоритм Витерби

168 байт добавлено, 00:27, 18 мая 2018
Псевдокод
'''for''' <tex>\mathtt{i} = 2</tex> '''to''' <tex>\mathtt {T}</tex>
'''for''' <tex>\mathtt{j} = 1</tex> '''to''' <tex>\mathtt {K}</tex>
<tex>\mathtt{TStateTIndex}[\mathtt{j}, \mathtt{i}]} = \arg\max_{1 \leqslant \mathtt{k}\leqslant \mathtt{K}} \limits (\mathtt{TState}[\mathtt{k}, \mathtt{i } - 1] * \mathtt{A}[\mathtt{k}, \mathtt{j}] * B[j, Y[i]]})</tex> <tex>\mathtt{TIndexB}[j, i]} = \arg\max_{1 \leqslant \mathtt{kj}\leqslant , \mathtt{K}Y} \limits ([\mathtt{TState[k, i - 1] * A[k, j] * B[j, Y[i}]]})</tex>
''<font color=green>// функция arg max() ищет максимум выражения в скобках и возвращает аргумент(в нашем случае <tex>\mathtt{k}</tex>), при котором достигается этот максимум</font>''
<tex>\mathtt{TState}[\mathtt{j}, \mathtt{i}] = \mathtt{TState}[\mathtt{TIndex}[\mathtt{j}, \mathtt{i}], \mathtt{i} - 1] * \mathtt{A}[\mathtt{k}, \mathtt{j}] * \mathtt{B}[\mathtt{j}, \mathtt{Y}[\mathtt{i}]]</tex>
<tex>\mathtt{X}[\mathtt{T}] = \arg\max_{1 \leqslant \mathtt{k}\leqslant \mathtt{K}} \limits (\mathtt{TState}[\mathtt{k}, \mathtt{T}])</tex>
'''for''' <tex>\mathtt{i} = \mathtt{T}</tex> '''downto''' <tex>2</tex>
62
правки

Навигация