亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? hmm.cpp

?? 隱馬爾可夫模型演示,給出向前矩陣和向后矩陣
?? CPP
字號:
// Hmm.cpp: implementation of the CHmm class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "hmm_1.h"
#include "Hmm.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CHmm::CHmm()
{
	m_pA = NULL;
	m_pB = NULL;
	m_pPI = NULL;

	m_pInput = NULL;
	m_pRltMatrix = NULL;
	m_plamda = NULL;

	m_iDimA = 0;
	m_iDimB = 0;
	m_iInputLen = 0;
}

CHmm::~CHmm()
{
}

/*
	int iDimA		轉換矩陣的維數
	int iDimB		輸出符號數
	double **pA		狀態轉換矩陣iDimA*iDimA
	double **pB		輸出符號的概率 iDimA*iDimB
	double *pPI		初始狀態概率
*/
void CHmm::SetHmmParam(int iDimA, int iDimB, double **pA, double **pB, double *pPI)
{
	m_pA = pA;
	m_iDimA = iDimA;

	m_pB = pB;
	m_iDimB = iDimB;
	
	m_pPI = pPI;
}

/*
 *	向前算法
 *	int *pInput			檢測序列
 *	int iInputLen		序列長度
 *	double **pRltMatrix	中間結果
 */
double CHmm::Forward(int *pInput, int iInputLen, double **pRltMatrix)
{
	for(int i=0; i<iInputLen; i++)
	{
		if(pInput[i]>=m_iDimB)
		{
			AfxMessageBox("輸入的數據超界");
			return 0.0;
		}
	}


	m_pRltMatrix = pRltMatrix;

	double rlt = 0;
	m_pInput = pInput;
	m_iInputLen = iInputLen;

//	NewMatrix();

	double *alfa;
	alfa = new double[m_iDimA];

	for(i=0; i<m_iDimA; i++)
	{
		alfa[i] = forward_recursion(iInputLen-1, i);
		//m_pRltMatrix[i][0] = alfa[i];
		rlt+=alfa[i];
	}



	delete [] alfa;
	return rlt;
}

double CHmm::forward_recursion(int iIndex, int j)
{
	double rlt= 0;
	double *alfa_last;
	alfa_last = new double[m_iDimA];

	if(iIndex==1)
	{

		for(int i=0; i<m_iDimA; i++)
		{
			alfa_last[i] = m_pPI[i]*m_pB[i][m_pInput[0]];
			m_pRltMatrix[i][0] = alfa_last[i];
		}
	}
	else
	{
		for(int i=0; i<m_iDimA; i++)
		{
			alfa_last[i] = forward_recursion(iIndex-1, i);
		}
	}

	for(int i=0; i<m_iDimA; i++)
	{
		rlt+=alfa_last[i]*m_pA[i][j];
	}

	rlt *= m_pB[j][m_pInput[iIndex]];

	m_pRltMatrix[j][iIndex] = rlt;
	//m_pRltMatrix[j][iIndex+1] = rlt;
	delete [] alfa_last;
	return rlt;
}


/*
 *	向后算法
 *	int *pInput			檢測序列
 *	int iInputLen		序列長度
 *	double **pRltMatrix	中間結果
 */
double CHmm::Backward(int *pInput, int iInputLen, double **pRltMatrix)
{
	for(int i=0; i<iInputLen; i++)
	{
		if(pInput[i]>=m_iDimB)
		{
			AfxMessageBox("輸入的數據超界");
			return 0.0;
		}
	}


	m_pRltMatrix = pRltMatrix;

	double rlt = 0;
	m_pInput = pInput;
	m_iInputLen = iInputLen;

//	NewMatrix();

	double *beta;
	beta = new double[m_iDimA];

	for(i=0; i<m_iDimA; i++)
	{
		beta[i] = backward_recursion(0, i)*m_pPI[i]*m_pB[i][m_pInput[0]];
		m_pRltMatrix[i][0] = beta[i];
		rlt+=beta[i];
	}


	return rlt;
}
double CHmm::backward_recursion(int iIndex, int j)
{
	double rlt = 0.0;
	double *beta_last;
	beta_last = new double[m_iDimA];

	if(iIndex==m_iInputLen-1)
	{
		rlt = 1.0;
		//rlt = 2.0;

	}
	else
	{
		for(int i=0; i<m_iDimA; i++)
		{
			beta_last[i] = backward_recursion(iIndex+1, i);

			rlt+=beta_last[i]*m_pA[j][i]*m_pB[i][m_pInput[iIndex+1]];
		}
	}


	//保存中間結果
	m_pRltMatrix[j][iIndex+1] = rlt;


	return rlt;
}


/*
 *	韋特比算法
 *	int *pInput			檢測序列
 *	int iInputLen		序列長度
 *	int *pBestPath		結果最佳序列
 *	double **pRltMatrix	中間結果
 */
double CHmm::Viterbi(int *pInput, int iInputLen, int *pBestPath, double **pRltMatrix, int **plamda)
{

	for(int i=0; i<iInputLen; i++)
	{
		if(pInput[i]>=m_iDimB)
		{
			AfxMessageBox("輸入的數據超界");
			return 0.0;
		}
	}

	m_pRltMatrix = pRltMatrix;
	m_plamda = plamda;


	double rlt = 0.0;

	m_pInput = pInput;
	m_iInputLen = iInputLen;


	double *deta;
	deta = new double[m_iDimA];

	for(i=0; i<m_iDimA; i++)
	{
		deta[i] = viterbi_recursion(iInputLen-1, i);
		if(rlt<deta[i])
		{
			rlt=deta[i];
			pBestPath[iInputLen-1] = i+1;
		}
	}

	
	for(i=iInputLen-2; i>=0; i--)
	{
		pBestPath[i] = m_plamda[pBestPath[i+1]-1][i+1];
	}

	delete [] deta;
	return rlt;
}
//韋特比算法 的遞推函數
double CHmm::viterbi_recursion(int iIndex, int j)
{
	double rlt= 0;
	double *deta_last;
	deta_last = new double[m_iDimA];

	if(iIndex==1)
	{

		for(int i=0; i<m_iDimA; i++)
		{
			deta_last[i] = m_pPI[i]*m_pB[i][m_pInput[0]];

			//保存中間結果
			m_pRltMatrix[i][0] = deta_last[i];
			
		}
	}
	else
	{
		for(int i=0; i<m_iDimA; i++)
		{
			deta_last[i] = viterbi_recursion(iIndex-1, i);
		}
	}

	double temp;
	for(int i=0; i<m_iDimA; i++)
	{
		temp = deta_last[i]*m_pA[i][j];
		if(rlt<temp)
		{
			rlt=temp;

			//保存最佳路徑
			m_plamda[j][iIndex] = i+1;
		}
	}

	rlt *= m_pB[j][m_pInput[iIndex]];

	//保存中間結果
	//m_pRltMatrix[iIndex][j] = rlt;
	m_pRltMatrix[j][iIndex] = rlt;

	delete [] deta_last;
	return rlt;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
五月婷婷另类国产| 欧美视频中文一区二区三区在线观看| 成人一区二区三区视频在线观看| 成人av电影观看| 日韩一区二区三区高清免费看看| 国产精品色一区二区三区| 日本网站在线观看一区二区三区 | 免费在线看成人av| 91小视频免费看| 国产午夜一区二区三区| 日本vs亚洲vs韩国一区三区二区 | voyeur盗摄精品| 日韩免费观看高清完整版在线观看| 亚洲免费观看视频| 粉嫩蜜臀av国产精品网站| 日韩一级成人av| 亚洲成在线观看| 91福利资源站| 夜色激情一区二区| 波多野结衣一区二区三区| 久久久五月婷婷| 精品一区二区三区日韩| 日韩午夜激情av| 日本美女一区二区三区视频| 精品视频在线看| 亚洲午夜精品网| 欧美日韩在线三区| 亚洲精品国产a| 色av综合在线| 亚洲图片一区二区| 欧美人狂配大交3d怪物一区 | 国产女主播在线一区二区| 精品一区二区三区在线播放 | 日韩一区二区在线观看| 午夜精品一区在线观看| 欧美日韩情趣电影| 青青草国产精品亚洲专区无| 91精品国产免费| 国内一区二区视频| 国产精品亲子乱子伦xxxx裸| av在线综合网| 亚洲综合在线第一页| 欧美高清激情brazzers| 青青草国产精品亚洲专区无| 久久综合久久鬼色中文字| 高清不卡一区二区| 日韩一区中文字幕| 欧美日韩一区中文字幕| 日本不卡中文字幕| 久久丝袜美腿综合| 色综合天天天天做夜夜夜夜做| 亚洲欧美一区二区三区孕妇| 在线影视一区二区三区| 老司机午夜精品99久久| 国产欧美一区二区在线| 91网址在线看| 日本亚洲电影天堂| 国产拍欧美日韩视频二区| 日本道色综合久久| 久久精品99国产精品| 中文字幕不卡在线观看| 精品视频在线免费观看| 国产一区二区三区不卡在线观看 | 欧美激情艳妇裸体舞| 91色乱码一区二区三区| 美女任你摸久久| 成人欧美一区二区三区黑人麻豆 | 色综合视频在线观看| 免费在线观看一区二区三区| 国产精品嫩草影院av蜜臀| 欧美私模裸体表演在线观看| 国产一区91精品张津瑜| 亚洲国产精品一区二区久久恐怖片| 久久综合五月天婷婷伊人| 日本乱人伦一区| 国产一区二区三区在线看麻豆| 亚洲欧美日韩人成在线播放| 日韩美女视频在线| 一本一道久久a久久精品| 久久国产精品色| 一区二区久久久久久| 久久亚洲综合色| 6080yy午夜一二三区久久| jvid福利写真一区二区三区| 麻豆精品在线观看| 亚洲午夜三级在线| 亚洲男人的天堂在线aⅴ视频| 欧美大片国产精品| 欧美三级在线视频| 91麻豆免费观看| 成人在线一区二区三区| 国产又粗又猛又爽又黄91精品| 亚洲1区2区3区视频| 亚洲蜜臀av乱码久久精品| 国产欧美一区视频| 久久久久久久久一| 欧美大片日本大片免费观看| 欧美精品1区2区| 在线亚洲一区观看| 色综合天天综合网天天狠天天| 国产精品小仙女| 国产乱码精品一区二区三| 久久国产精品99久久人人澡| 青青国产91久久久久久| 亚洲欧美日韩电影| 亚洲精品免费看| 亚洲欧洲制服丝袜| 一区二区三区在线视频观看| 国产精品国产a级| 国产精品久久久久久妇女6080| 国产精品无人区| 国产精品美女一区二区三区| 国产三级欧美三级| 久久久精品综合| 中文字幕乱码日本亚洲一区二区| 国产欧美精品在线观看| 欧美极品美女视频| 亚洲婷婷综合久久一本伊一区| 国产精品传媒入口麻豆| 中文字幕一区二区三区四区不卡| 欧美极品aⅴ影院| 亚洲日本一区二区| 亚洲第一搞黄网站| 水蜜桃久久夜色精品一区的特点 | 精品国产一区二区三区忘忧草| 日韩一区二区三区免费观看| 精品国产欧美一区二区| 久久久激情视频| **网站欧美大片在线观看| 亚洲伦理在线精品| 日日摸夜夜添夜夜添国产精品| 久久精品国产精品亚洲综合| 国模娜娜一区二区三区| 成人性生交大片免费看在线播放 | 亚洲综合色视频| 日本欧美一区二区| 国产99久久久国产精品免费看| 9久草视频在线视频精品| 日本精品一级二级| 日韩一级大片在线观看| 国产欧美日韩激情| 亚洲国产精品久久人人爱| 蜜臀av国产精品久久久久 | 久久婷婷色综合| 亚洲欧美日韩国产一区二区三区| 亚洲国产欧美日韩另类综合| 久久99九九99精品| av一区二区久久| 91精品国产品国语在线不卡| 国产女主播视频一区二区| 亚洲成人av电影| 国产美女在线精品| 在线观看欧美黄色| 久久久久久久性| 婷婷开心久久网| 成人丝袜高跟foot| 欧美一激情一区二区三区| 亚洲欧洲日产国码二区| 蜜臀精品一区二区三区在线观看| 成人毛片视频在线观看| 欧美日本一区二区| 国产精品美女久久久久久久 | 视频一区视频二区中文| 高清不卡在线观看| 欧美一区二视频| 亚洲精品美腿丝袜| 风间由美一区二区三区在线观看 | 91精彩视频在线观看| 精品久久久久久无| 一区二区三区加勒比av| 国产91对白在线观看九色| 欧美久久婷婷综合色| 1区2区3区欧美| 国产成人在线看| 日韩免费电影网站| 日韩中文字幕1| 欧美制服丝袜第一页| 中文字幕第一区第二区| 国产综合成人久久大片91| 69久久99精品久久久久婷婷| 伊人色综合久久天天人手人婷| 国产精品亚洲第一区在线暖暖韩国| 欧美精品视频www在线观看| 亚洲天堂久久久久久久| www.日韩精品| 国产欧美精品在线观看| 高清国产一区二区三区| 久久久久久电影| 国产美女久久久久| 久久影院视频免费| 国产精品资源网| 久久美女高清视频| 国产精品中文字幕一区二区三区| 精品久久久久久久人人人人传媒 | 欧美日本视频在线| 亚洲成人激情社区| 欧美精品粉嫩高潮一区二区| 亚洲一区二区三区中文字幕| 色999日韩国产欧美一区二区| 一区二区成人在线视频|