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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? 1lprefixspan.cpp

?? 數(shù)據(jù)挖掘中的序列模式挖掘算法clospan的C++實現(xiàn)
?? CPP
字號:
// PrefixSpan algorithm// August 2000#include <stdlib.h>#include "Global.h"#include "ProjDB.h"// Added by Ramin#if defined( _FIND_MAX_SEQS )SeqTree * MainSeqTree;#endif // defined( _FIND_MAX_SEQS )#if defined( _FIND_CLOSED_SEQS )SequenceList * aSeqList;#endif/////////////////// Added by Xifeng#if defined (_ANOTHER_CLOSED_APPROACH)TreeNode *root;TreeNode *currentLevel;ReverseHashTable *reverseTable; // from NumOfItems to TreeNode*, multimapint closed_maxFreq[256];#endif////////////////void InitApp(const char* filename, const double dSupport, const int nItemCount){	CreateTimers(3);  gN_ITEMS = (nItemCount+1); // because it is zero based.  gpErrFile = file_open(ERRFILE, "w");  int nFileSize = InitProjDB(filename);#if defined( _WRITE_FREQUENT_FILE )  gpFreqFile = file_open(FREQUENT, "w"); #endif  //gpResultFile = file_open(RESULTS, "w");  //gpStatusFile = file_open(STATUS, "w");  gpResultFile = gpStatusFile = stdout;	//Added by Xifeng#if defined (_ANOTHER_CLOSED_APPROACH)	root = new TreeNode(-1, 0);	root -> ItemsetNumber=0;	root->Parent = NULL;	currentLevel = root;	reverseTable = new ReverseHashTable;	for(int i=0; i< 256; i++)		closed_maxFreq[i]=0;#endif	// Added by Ramin#if defined( _FIND_MAX_SEQS )	fprintf( gpStatusFile, "Modified 1LPrefixSpan for finding Max sequential patterns" );	#if defined( _DO_NAIVE_APPROACH )		fprintf( gpStatusFile, " (Naive approach).\n" );	#else		fprintf( gpStatusFile, " (MaxSequence).\n" );	#endif#endif // defined( _FIND_MAX_SEQS )#if defined( _FIND_CLOSED_SEQS )	fprintf(gpStatusFile, "Modified 1LPrefixSpan for finding Closed sequential patterns." );	#if defined( _DO_NAIVE_APPROACH )		fprintf( gpStatusFile, " (Naive approach).\n" );	#else		fprintf( gpStatusFile, " (ClosedSequence).\n" );	#endif/*	#if _FIND_CLOSED_SEQS == _NAIVE_APP		fprintf(gpStatusFile, "( Naive approach ).\n" );	#else		fprintf(gpStatusFile, "( Find Common Prefix approach )" );		#if defined( _USE_OUTPUT_BUFFER )			fprintf( gpStatusFile, " ( Using output buffer )" );		#endif		#if defined( _NEW_SEQUENCE_LIST )			#if _NEW_SEQUENCE_LIST==10				fprintf( gpStatusFile, " ( Sorted seq list )" );			#else if _NEW_SEQUENCE_LIST==20				fprintf( gpStatusFile, " ( Sequence tree )" );			#endif		#else			fprintf( gpStatusFile, " ( Naive seq list )" );		#endif		fprintf( gpStatusFile, ".\n" );	#endif*/#endif //  defined( _FIND_CLOSED_SEQS )	/////////////////#ifdef DISK_BASED	fprintf(gpStatusFile, "1LPrefixSpan: A sequential pattern mining algorithm (pseudo projection).\n");#else	fprintf(gpStatusFile, "1LPrefixSpan: A sequential pattern mining algorithm.\n");#endif	fprintf(gpStatusFile, "Implemented by Behzad Mortazavi-Asl, in IDBL, SFU\n");	fprintf(gpStatusFile, "All rights reserved!\n");	fprintf(gpStatusFile, "Data set (%.3f MB): %s\n",           nFileSize/(1024.0*1024.0), filename);	fprintf(gpStatusFile, "# of items: %d\n", nItemCount);	fprintf(gpStatusFile, "Support threshold: %.3f%%\n", dSupport*100);  fprintf(gpStatusFile, "-----------------------\n");}void CloseApp(){	DeleteTimers();#if defined( _WRITE_FREQUENT_FILE )  fclose (gpFreqFile);#endif  //fclose (gpResultFile);  //fclose (gpStatusFile);  freemem ((void**) &gnArrLargeCount);#if defined( _FIND_CLOSED_SEQS )	freemem ((void**) &gnResSizeCount);#endif	freemem ((void**) &buf_idx);#ifndef DISK_BASED	freemem ((void**) &bufseq);#endif  CloseProjDB();  fclose (gpErrFile);}void PrefixSpan(struct PROJ_DB *pDB){	int i=0, j=0, nFreqCount=0;	//add by Xifeng, currentLevel will be modified to next level	#if defined (_ANOTHER_CLOSED_APPROACH)		if (addSequence(pDB, &currentLevel, reverseTable)==EQUAL_PROJECT_DB_SIZE) {			clean_projcted_db(pDB, &nFreqCount);			return;			}	#endif	// scan sequence database once, find length-1 sequences  struct PROJ_DB *proj_db=make_projdb_from_projected_db(pDB, &nFreqCount);	if (nFreqCount>0)	{    for (i=0; i<nFreqCount; i++)		{      if( proj_db[i].m_nSup < gSUP )			{				//Added by Ramin#if defined( _USE_OUTPUT_BUFFER )				//fprintf( gpFreqFile, "+===>>>>>>  Right Pattern  " );				//(*proj_db[i].OutputBuf).Print( gpFreqFile );				EmptyBuffer( aSeqList, proj_db[i].OutputBuf );#endif#if defined( _FIND_MAX_SEQS ) && !defined( _DO_NAIVE_APPROACH )				//Sequence * aSeq = new Sequence( proj_db[i].m_pnPat, proj_db[i].m_nPatLen, proj_db[i].m_nSup );				Sequence * aSeq = new Sequence( &(proj_db[i]), proj_db[i].m_nMaxSup );				(*MainSeqTree).AddSeq( aSeq );#endif				//added by xifeng				n_total_mem-=(proj_db[i].m_nPatLen*sizeof(int));        freemem ((void**) &(proj_db[i].m_pnPat));        for (j=0; j<proj_db[i].m_nSup; j++) 				{#ifndef DISK_BASED					n_total_mem-=proj_db[i].m_nSeqSize;          freemem ((void**) &(proj_db[i].m_pProjSeq[j].m_ppSeq[0]));#endif					if (proj_db[i].m_pProjSeq[j].m_nProjCount > 1) 					{						n_total_mem-=(proj_db[i].m_pProjSeq[j].m_nProjCount*sizeof(int*));						freemem ((void**) &(proj_db[i].m_pProjSeq[j].m_ppSeq));					}				}				n_total_mem-=(proj_db[i].m_nMaxSup*sizeof(struct PROJ_SEQ));        freemem ((void**) &(proj_db[i].m_pProjSeq));      } else n_proj_db++;    }    for (i=0; i<nFreqCount; i++)		{      if (proj_db[i].m_nSup >= gSUP) 			{        PrefixSpan (&(proj_db[i]));			}#if defined (_ANOTHER_CLOSED_APPROACH)			else {				if (addSequence(&proj_db[i], &currentLevel, reverseTable) != EQUAL_PROJECT_DB_SIZE) 					currentLevel = currentLevel->Parent;			}#endif    }		n_total_mem-=(nFreqCount*sizeof(struct PROJ_DB));    freemem ((void**) &proj_db);	}	//add by Xifeng, currentLevel will be modified to its parent level	#if defined (_ANOTHER_CLOSED_APPROACH)		currentLevel = currentLevel->Parent;	#endif}int main(int argc, char** argv){   if (argc != 4)	{    gpErrFile = file_open(ERRFILE, "w");    if (gpErrFile!=NULL)		{      fprintf (gpErrFile, "Usage: 1LPrefixSpan <filename> <support> <itemcount>\n");      fclose (gpErrFile);    }    printf ("Usage: 1LPrefixSpan <filename> <support> <itemcount>\n");    exit (-1);  }  InitApp(argv[1], atof(argv[2]), atoi(argv[3]));	ResetTimer(0);	// Added by Ramin#if defined( _FIND_MAX_SEQS )	MainSeqTree = new SeqTree( atoi(argv[3]) );#endif // defined( _FIND_MAX_SEQS )#if defined( _FIND_CLOSED_SEQS )	#if _NEW_SEQUENCE_LIST == 20		aSeqList = new SequenceList( gN_ITEMS );	#else		aSeqList = new SequenceList();	#endif#endif	/////////////////	// added by Ramin for test	//Test();	//RTATest( NULL );	int i=0, j=0, nFreqCount=0;	// scan sequence database once, find length-1 sequences  struct PROJ_DB *proj_db=make_projdb_from_org_dataset(atof(argv[2]), &nFreqCount);	if (nFreqCount>0)	{    for (i=0; i<nFreqCount; i++)		{      if (proj_db[i].m_nSup < gSUP)			{//added by xifeng#if defined (_ANOTHER_CLOSED_APPROACH)				if (addSequence(&proj_db[i], &currentLevel, reverseTable) != EQUAL_PROJECT_DB_SIZE) 					currentLevel = currentLevel->Parent;				#endif        for (j=0; j<proj_db[i].m_nSup; j++) 				{#ifndef DISK_BASED					n_total_mem-=proj_db[i].m_nSeqSize;          freemem ((void**) &(proj_db[i].m_pProjSeq[j].m_ppSeq[0]));#endif					if (proj_db[i].m_pProjSeq[j].m_nProjCount > 1) {						n_total_mem-=(proj_db[i].m_pProjSeq[j].m_nProjCount*sizeof(int*));						freemem ((void**) &(proj_db[i].m_pProjSeq[j].m_ppSeq));					}				}				n_total_mem-=(proj_db[i].m_nMaxSup*sizeof(struct PROJ_SEQ));        freemem ((void**) &(proj_db[i].m_pProjSeq));      } else n_proj_db++;    }    for (i=0; i<nFreqCount; i++)		{      if (proj_db[i].m_nSup >= gSUP)			{         PrefixSpan (&(proj_db[i]));        //fprintf(gpStatusFile, "|");      } #if defined( _USE_OUTPUT_BUFFER )			else { // Else part added by Ramin				//fprintf( gpFreqFile, "+===>>>>>>  Right Pattern  " );				//(*proj_db[i].OutputBuf).Print( gpFreqFile );				EmptyBuffer( aSeqList, proj_db[i].OutputBuf );			}#endif#if defined( _FIND_MAX_SEQS ) && !defined( _DO_NAIVE_APPROACH )			else { // Else part added by Ramin				//Sequence * aSeq = new Sequence( proj_db[i].m_pnPat, proj_db[i].m_nPatLen, proj_db[i].m_nSup );				Sequence * aSeq = new Sequence( &(proj_db[i]), proj_db[i].m_nMaxSup );				(*MainSeqTree).AddSeq( aSeq );			}#endif    }		n_total_mem-=(nFreqCount*sizeof(struct PROJ_DB));    freemem ((void**) &proj_db);	}	double TimeDiff = GetTimeDiff(0);  fprintf(gpResultFile, "%.3f seconds (Total running time)\n", TimeDiff );  for (i=1; gnArrLargeCount[i]>0; i++)	{		fprintf(gpResultFile, "Large %d : %d\n", i, gnArrLargeCount[i]);		gnArrLargeCount[0]+=gnArrLargeCount[i];	}  fprintf(gpResultFile, "Total of %d large items.\n", gnArrLargeCount[0]);	fprintf(gpResultFile, "# of projected datasets: %d\n", n_proj_db);	fprintf(gpResultFile, "Maximum memory usage: %.3fMB\n", 		double(n_max_mem)/(1024.0*1024.0));	// Added by Ramin#if defined( _FIND_MAX_SEQS )	FILE *myFile = NULL;  myFile = file_open( "Maxset.txt", "w" ); 	(*MainSeqTree).PrintRules( myFile );  fprintf( myFile, "%.3f seconds (Total running time)\n", TimeDiff );  fprintf( myFile, "Total of %d large items.\n", gnArrLargeCount[0] );	fprintf( myFile, "# of projected datasets: %d\n", n_proj_db );	fprintf( myFile, "Maximum memory usage: %.6fMB\n", double(n_max_mem)/(1024.0*1024.0) );	delete MainSeqTree;  fprintf( myFile, "%.3f seconds (Total running time after sort, and output.)\n", GetTimeDiff(0) );  fclose( myFile );#endif // defined( _FIND_MAX_SEQS )#if defined( _FIND_CLOSED_SEQS )	FILE *myFile = NULL;  myFile = file_open( "Closedset.txt", "w" ); 	(*aSeqList).Print( myFile );  fprintf( myFile, "%.3f seconds (\nTotal running time)\n\n", TimeDiff );  for ( i=1; i < gMAX_PAT_LEN; i++ )	{		if( gnResSizeCount[i] > 0 )			fprintf( myFile, "Closed %d : %d\n", i, gnResSizeCount[i] );	}  fprintf( myFile, "\nTotal of %d large items.\n", gnArrLargeCount[0] );	fprintf( myFile, "# of projected datasets: %d\n", n_proj_db );	fprintf( myFile, "Maximum memory usage: %.6fMB\n", double(n_max_mem)/(1024.0*1024.0) );	delete aSeqList;  fprintf( myFile, "%.3f seconds (Total running time after sort, and output.)\n", GetTimeDiff(0) );  fclose( myFile );#endif  //added by Xifeng#if defined (_ANOTHER_CLOSED_APPROACH)	NodeVector::iterator it, endit;	for (it=root->Children->begin(), endit=root->Children->end(); it != endit; it++) {		//if ((*it)->Item==6010)			//printf("GAGAGA\n");		closed_maxPruning((*it), root);	}	FILE *closed_maxFile = NULL;	closed_maxFile = file_open( "ClosedMaxset.txt", "w" );#if defined (_ANOTHER_MAX_APPROACH)	fprintf(closed_maxFile, "MAX\n");#else	fprintf(closed_maxFile, "CLOSED\n");#endif	for (it=root->Children->begin(), endit=root->Children->end(); it != endit; it++) {		if ((*it)->Parent == root)			(*it)->Print("(", closed_maxFile);	}	fprintf( closed_maxFile, "%.3f seconds (\nTotal running time)\n\n", TimeDiff );	fprintf(closed_maxFile, "Total # of TreeNode: %d\n", zzz); 	for (i=0; i<256; i++)		if (closed_maxFreq[i] != 0)			fprintf(closed_maxFile, "Closed/Max %d : %d\n", i, closed_maxFreq[i]);		fprintf(closed_maxFile, "\nTotal of %d large items.\n", gnArrLargeCount[0] );	fprintf(closed_maxFile, "# of projected datasets: %d\n", n_proj_db );	fprintf(closed_maxFile, "Maximum memory usage: %.6fMB\n", double(n_max_mem)/(1024.0*1024.0) );	  fprintf(closed_maxFile, "%.3f seconds (Total running time after sort, and output.)\n", GetTimeDiff(0) );  fclose(closed_maxFile );#endif	/////////////////  fprintf( gpResultFile, "%.3f seconds (Total running time after sort, and output.)\n", GetTimeDiff(0) );  CloseApp();  return 0;}//////////////////////////////////////////////////////////////////////// END

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美电视剧在线观看完整版| 99久久婷婷国产综合精品电影| 欧美伊人久久久久久午夜久久久久| 欧美情侣在线播放| 亚洲精品成人少妇| 欧美性感一区二区三区| 日日夜夜免费精品| 欧美不卡123| 高清久久久久久| 自拍偷拍亚洲综合| 69久久夜色精品国产69蝌蚪网 | 中文一区在线播放| 9久草视频在线视频精品| 亚洲午夜羞羞片| 6080国产精品一区二区| 国产成人精品一区二| 亚洲欧美日韩中文字幕一区二区三区 | 欧美经典一区二区三区| 99麻豆久久久国产精品免费| 亚洲卡通动漫在线| 91麻豆精品国产91久久久久 | 欧美绝品在线观看成人午夜影视| 蜜桃视频在线观看一区| 中文字幕第一区综合| 欧美日韩高清影院| 国产成人av电影在线| 亚洲一区二区三区四区不卡 | 国产精品色眯眯| 一本色道a无线码一区v| 蜜桃精品视频在线| 一区二区中文视频| 欧美一级专区免费大片| 不卡的av在线播放| 日韩中文字幕亚洲一区二区va在线| 久久久久99精品国产片| 91黄色在线观看| 国产乱一区二区| 亚洲一二三四在线| 久久久国产精品午夜一区ai换脸| 在线欧美日韩国产| 成人精品国产一区二区4080| 亚洲成人中文在线| 日韩久久一区二区| 精品成人一区二区三区| 91黄色免费版| 成人av网址在线观看| 蜜桃传媒麻豆第一区在线观看| 亚洲人成精品久久久久| 久久中文字幕电影| 91精品一区二区三区久久久久久 | 欧美性猛交xxxx乱大交退制版| 国产乱国产乱300精品| 亚洲高清不卡在线| 国产精品不卡在线| 国产亚洲精品超碰| 日韩欧美一区二区视频| 欧美疯狂性受xxxxx喷水图片| 色综合久久综合网欧美综合网| 国产凹凸在线观看一区二区| 韩日精品视频一区| 另类欧美日韩国产在线| 日韩黄色一级片| 亚洲香蕉伊在人在线观| 亚洲精品高清在线| 亚洲精品免费在线| 1区2区3区国产精品| 欧美激情一区在线观看| 久久久久九九视频| 久久久久久久久久久99999| 26uuu国产电影一区二区| 日韩欧美亚洲国产另类| 日韩小视频在线观看专区| 在线播放亚洲一区| 91精品国产色综合久久久蜜香臀| 欧美老人xxxx18| 7777精品伊人久久久大香线蕉| 337p亚洲精品色噜噜| 欧美久久高跟鞋激| 欧美色成人综合| 91一区二区三区在线播放| k8久久久一区二区三区| 97久久精品人人爽人人爽蜜臀 | jlzzjlzz亚洲女人18| 波多野结衣中文字幕一区| www.亚洲色图| 91免费版在线看| 欧美性猛片xxxx免费看久爱| 精品视频999| 欧美大片一区二区| 久久久激情视频| 中文字幕一区二区不卡 | 国产日韩欧美麻豆| 欧美激情一区三区| 日韩美女久久久| 亚洲一区二区三区四区中文字幕| 亚洲777理论| 免费在线观看一区二区三区| 激情久久五月天| gogo大胆日本视频一区| 欧美日韩一区中文字幕| 欧美一区永久视频免费观看| 久久日一线二线三线suv| 国产精品久久久久毛片软件| 一区二区三区在线观看视频| 天天操天天综合网| 精品中文字幕一区二区| 色综合网站在线| 91精品国产免费久久综合| 久久综合色一综合色88| 国产精品久久久久天堂| 偷拍一区二区三区| 国产成人在线网站| 欧美撒尿777hd撒尿| 久久影院视频免费| 亚洲品质自拍视频| 精彩视频一区二区三区 | 欧美军同video69gay| 2019国产精品| 亚洲伊人色欲综合网| 国产精品原创巨作av| 91福利在线免费观看| 26uuu久久天堂性欧美| 洋洋成人永久网站入口| 国产精品911| 欧美二区乱c少妇| 中文字幕日韩av资源站| 免费美女久久99| 欧美制服丝袜第一页| 久久精品免费在线观看| 亚洲成av人综合在线观看| 福利一区在线观看| 欧美一区国产二区| 亚洲黄色免费电影| 国产成人av福利| 91精品国产综合久久久蜜臀图片| 国产精品久99| 国产一区二区三区在线观看免费视频| 91福利资源站| 中文字幕日韩av资源站| 国产一区二区久久| 欧美一二三区在线| 亚洲一区二区三区四区五区中文 | 伊人色综合久久天天人手人婷| 经典一区二区三区| 欧美日韩一区二区电影| 亚洲欧美一区二区久久 | 亚洲综合精品自拍| 成人h动漫精品一区二区| 日韩欧美一级精品久久| 亚洲大片一区二区三区| 成人激情免费电影网址| 精品国产乱码久久久久久浪潮| 亚洲国产日韩一级| 丰满亚洲少妇av| 欧美一级高清大全免费观看| 日韩精品1区2区3区| 欧美视频第二页| 一区二区三区四区蜜桃| 91影院在线观看| 最新国产精品久久精品| 91在线一区二区三区| 国产精品久久久久久久午夜片| 国产99久久久国产精品| 久久九九影视网| 国产高清久久久| 久久精品亚洲一区二区三区浴池| 九九**精品视频免费播放| 日韩精品一区二区在线| 欧美卡1卡2卡| 国产亚洲欧美一区在线观看| 精品一区二区三区视频在线观看| 日韩一卡二卡三卡国产欧美| 视频一区二区三区在线| 91精品欧美久久久久久动漫| 日韩精品久久理论片| 欧美mv日韩mv| 国产精品自在在线| 国产精品免费aⅴ片在线观看| 成人看片黄a免费看在线| 亚洲乱码日产精品bd| 在线亚洲精品福利网址导航| 日韩国产一区二| 久久影视一区二区| 97国产一区二区| 美女视频一区二区三区| 欧美成人一区二区三区片免费 | 日本一区二区在线不卡| 从欧美一区二区三区| 亚洲天堂a在线| 欧美日韩精品电影| 久久精品国产久精国产| 久久久久久久久久久久久久久99 | 日本精品视频一区二区| 天堂一区二区在线免费观看| 日韩一级片网址| 波多野结衣精品在线| 亚洲一区二区在线观看视频| 日韩视频免费观看高清完整版在线观看 | 精品一区二区免费| 国产精品色呦呦|