资源简介
Viterbi算法实现,隐马尔科夫模型,属机器学习范畴,用于模式识别等,C#源码
代码片段和文件信息
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Viterbi
{
class Program
{
const int m = 2; //隐含状态数
const int n = 3; //观察状态数
static int[] sArray = new int[n]; //隐含状态序列
static int[] oArray = { 0 1 2 }; //可观察状态序列
static double[] iArray = { 0.6 0.4 };//初始概率矩阵
static double[] aArray = { { 0.7 0.3 } { 0.4 0.6 } };//转移概率矩阵
static double[] bArray = { { 0.5 0.4 0.1 } { 0.1 0.3 0.6 } };//发射概率矩阵
static double[] resultArray = new double[n m];//保存结果
static void Main(string[] args)
{
Viterbi(sArray oArray iArray aArray bArray);
foreach (int i in sArray)
{
Console.Write(i);
}
Console.ReadKey();
}
static void Viterbi(int[] s int[] o double[] i double[] a double[] b)
{
for (int j = 0; j < m; j++)
{
resultArray[0 j] = iArray[j] * bArray[j oArray[0]];
}
for (int j = 1; j < n; j++)
{
for (int p = 0; p < m; p++)
{
for (int k = 0; k < m; k++)
{
double tmp = resultArray[j - 1 p] * aArray[p k] * bArray[k oArray[j]];
if (tmp > resultArray[j k])
resultArray[j k] = tmp;
}
}
}
for (int j = 0; j < n; j++)
{
double tmp = resultArray[j 0];
sArray[j] = 0;
for (int p = 0; p < m; p++)
{
if (resultArray[j p] > tmp)
sArray[j] = p;
}
}
}
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 6144 2017-11-18 20:50 Viterbi\Viterbi\bin\Debug\Viterbi.exe
文件 13824 2017-11-18 20:50 Viterbi\Viterbi\bin\Debug\Viterbi.pdb
文件 11600 2017-11-18 20:50 Viterbi\Viterbi\bin\Debug\Viterbi.vshost.exe
文件 490 2017-11-18 20:50 Viterbi\Viterbi\bin\Debug\Viterbi.vshost.exe.manifest
文件 5826 2017-11-18 20:50 Viterbi\Viterbi\obj\x86\Debug\DesignTimeResolveAssemblyReferencesInput.cache
文件 446 2017-11-18 20:50 Viterbi\Viterbi\obj\x86\Debug\Viterbi.csproj.FileListAbsolute.txt
文件 6144 2017-11-18 20:50 Viterbi\Viterbi\obj\x86\Debug\Viterbi.exe
文件 13824 2017-11-18 20:50 Viterbi\Viterbi\obj\x86\Debug\Viterbi.pdb
文件 1997 2017-11-18 20:50 Viterbi\Viterbi\Program.cs
文件 1370 2017-11-18 20:50 Viterbi\Viterbi\Properties\AssemblyInfo.cs
文件 2435 2017-11-18 20:50 Viterbi\Viterbi\Viterbi.csproj
文件 863 2017-11-18 20:50 Viterbi\Viterbi.sln
目录 0 2017-11-18 20:50 Viterbi\Viterbi\obj\x86\Debug
目录 0 2017-11-18 20:50 Viterbi\Viterbi\bin\Debug
目录 0 2017-11-18 20:50 Viterbi\Viterbi\obj\x86
目录 0 2017-11-18 20:50 Viterbi\Viterbi\bin
目录 0 2017-11-18 20:50 Viterbi\Viterbi\obj
目录 0 2017-11-18 20:50 Viterbi\Viterbi\Properties
目录 0 2017-11-18 20:50 Viterbi\Viterbi
目录 0 2017-11-18 20:50 Viterbi
----------- --------- ---------- ----- ----
64963 20
评论
共有 条评论