• 大小: 20KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-26
  • 语言: C#
  • 标签: Viterbi  

资源简介

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


评论

共有 条评论

相关资源