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

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

?? fptn20.c

?? 關聯規則的頻繁項集算法bomo的源代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
 aNode = headerTable[baseIndex]; while (aNode != NULL) {	aNode2 = aNode->parent;	count = 0;	while (aNode2 != T) {		for (i=0; i < conHeaderSize; i++)			if (aNode2->item == conLargeItem[i]) {				freqItemP[count] = aNode2->item;				indexList[count] = i;				count++;				break;			}		aNode2 = aNode2->parent;	}	q_sortA(indexList, freqItemP, 0, count-1, count);	path = 0;	insert_tree(&(freqItemP[0]), &(indexList[0]), aNode->count, 0, count, 				*conRoot, *conHeader, &path);	aNode = aNode->hlink; } free(freqItemP); free(indexList); return;}void FPgrowth(FPTreeNode T, FPTreeNode *headerTableLink, int headerSize, 			int *baseItems, int baseSize){ int count; int i, j; int *pattern; int patternSupport; int conHeaderSize; FPTreeNode *conHeader; FPTreeNode conRoot; FPTreeNode aNode, aNode2; int *conLargeItem; int *conLargeItemSupport; int localStartHeader=startHeader; if (baseSize >= realK) return; if (T == NULL) return; if (T->numPath == 1) {	//printf("single path\n");	conLargeItem = (int *) malloc (sizeof(int) * headerSize);	conLargeItemSupport = (int *) malloc (sizeof(int) * headerSize);	if ((conLargeItem == NULL) || (conLargeItemSupport == NULL)) {		printf("out of memory\n");		exit(1);	}	count = 0;	if (T->children != NULL) aNode = T->children->node;	while (aNode != NULL) {		conLargeItem[count] = aNode->item;		conLargeItemSupport[count] = aNode->count;		count++;		if (aNode->children != NULL)			aNode = aNode->children->node;		else	aNode = NULL;	}	combine(conLargeItem, conLargeItemSupport, 0, count, baseItems, baseSize);	free(conLargeItem);	free(conLargeItemSupport); } else {	//printf("multiple path\n");	pattern = (int *) malloc (sizeof(int) * (baseSize + 1));	if (pattern == NULL) {		printf("out of memory\n");		exit(1);	}	conLargeItem = (int *) malloc (sizeof(int) * headerSize);	conLargeItemSupport = (int *) malloc (sizeof(int) * headerSize);	if ((conLargeItem == NULL) || (conLargeItemSupport == NULL)) {		printf("out of memory\n");		exit(1);	}	for (j=0; j < baseSize; j++) {		pattern[j+1] = baseItems[j];	}        if (localStartHeader > headerSize)                localStartHeader = headerSize;        for (i=localStartHeader-1; i >= 0; i--) {                pattern[0] = headerTableLink[i]->item;                aNode = headerTableLink[i];                patternSupport = 0;                while (aNode != NULL) {                        patternSupport += aNode->count;                        aNode = aNode->hlink;                }                if ((baseSize > 0) && (patternSupport < oldThreshold)                        && (patternSupport >= thresholdK[baseSize]))                        addToLargeList(pattern, patternSupport, baseSize);                /* generate conditional pattern base */                for (j=0; j < headerSize; j++)                        conLargeItemSupport[j] = 0;                aNode = headerTableLink[i];                conHeaderSize = 0;                while (aNode != NULL) {                        aNode2 = aNode->parent;                        while (aNode2 != T) {                                for (j=0; j < headerSize; j++)                                        if (aNode2->item == headerTableLink[j]->item) {                                                conLargeItemSupport[j] += aNode->count;                                                if ((conLargeItemSupport[j] >= threshold) &&                                                   (conLargeItemSupport[j] - aNode->count <                                                        threshold)) {                                                        conLargeItem[j] = aNode2->item;                                                        conHeaderSize++;                                                }                                                break;                                        }                                aNode2 = aNode2->parent;                        }                        aNode = aNode->hlink;                }                /* generate conditional pattern tree */                if (conHeaderSize > 0) {                        q_sortD(conLargeItemSupport, conLargeItem, 0, headerSize-1, headerSize);                        buildConTree(&conRoot, &conHeader, conHeaderSize, conLargeItem, conLargeItemSupport,                                        T, headerTableLink, i, headerSize);                        FPgrowth(conRoot, conHeader, conHeaderSize, pattern, baseSize+1);                        free(conHeader);                        destroyTree(conRoot, 1);                }        }        for (i=localStartHeader; i < headerSize; i++) {		pattern[0] = headerTableLink[i]->item;		aNode = headerTableLink[i];		patternSupport = 0;		while (aNode != NULL) {			patternSupport += aNode->count;			aNode = aNode->hlink;		}		if (patternSupport < threshold)			break;		if ((baseSize > 0) && (patternSupport < oldThreshold)			&& (patternSupport >= thresholdK[baseSize]))			addToLargeList(pattern, patternSupport, baseSize);		/* generate conditional pattern base */		for (j=0; j < headerSize; j++)			conLargeItemSupport[j] = 0;		aNode = headerTableLink[i];		conHeaderSize = 0;		while (aNode != NULL) {			aNode2 = aNode->parent; 			while (aNode2 != T) {				for (j=0; j < headerSize; j++)					if (aNode2->item == headerTableLink[j]->item) {						conLargeItemSupport[j] += aNode->count;  						if ((conLargeItemSupport[j] >= threshold) &&						   (conLargeItemSupport[j] - aNode->count < 							threshold)) {							conLargeItem[j] = aNode2->item;							conHeaderSize++;							}						break;					}				aNode2 = aNode2->parent;			}			aNode = aNode->hlink;		}		/* generate conditional pattern tree */		if (conHeaderSize > 0) {			q_sortD(conLargeItemSupport, conLargeItem, 0, headerSize-1, headerSize);			buildConTree(&conRoot, &conHeader, conHeaderSize, conLargeItem, conLargeItemSupport, 					T, headerTableLink, i, headerSize);			FPgrowth(conRoot, conHeader, conHeaderSize, pattern, baseSize+1); 			free(conHeader); 			destroyTree(conRoot, 1);		}	}	free(pattern);	free(conLargeItem);	free(conLargeItemSupport); } return;}int findCombination(int n, int m){ int factorial1=1, factorial2=1; int i; for (i=n; i > (n-m); i--)	factorial1 *= i; for (i=m; i > 1; i--)	factorial2 *= i; return (factorial1 / factorial2);}void findLimit(){ int i, j; for (i=1; i < realK; i++) {	for (j=i+1; j < realK; j++) {		limit[i] += findCombination(j, i);	}	if (limit[i] > N)		limit[i] = N; } return;}void pass1(){ int transSize; int item; int maxSize=0; FILE *fp; int i, j; support1 = (int *) malloc (sizeof(int) * numItem); largeItem1 = (int *) malloc (sizeof(int) * numItem); if ((support1 == NULL) || (largeItem1 == NULL)) {	printf("out of memory\n");	exit(1); } limit = (int *) malloc (sizeof(int) * numItem); if (limit == NULL) {	printf("out of memory\n");	exit(1); } for (i=0; i < numItem; i++)	limit[i] = 0; for (i=0; i < numItem; i++) { 	support1[i] = 0;	largeItem1[i] = i; } /* scan DB to count frequency of each item */ if ((fp = fopen(dataFile, "r")) == NULL) {        printf("Can't open data file, %s.\n", dataFile);        exit(1); } for (i=0; i < numTrans; i++) {	fscanf(fp, "%d", &transSize);	if (transSize > maxSize)		maxSize = transSize;	(limit[transSize-1])++;	for (j=0; j < transSize; j++) {		fscanf(fp, "%d", &item);		(support1[item])++;	} }  fclose(fp);  /* initialize large itemset list and support list */ realK = expectedK; if ((maxSize < expectedK) || (expectedK <= 0))	realK = maxSize; printf("maxSize = %d\nrealK = %d\n", maxSize, realK); largeItemset = (LargeItemPtr *) malloc (sizeof(LargeItemPtr) * realK);  numLarge = (int *) malloc (sizeof(int) * realK); if ((largeItemset == NULL) || (numLarge == NULL)) { 	printf("out of memory\n");	exit(1); } for (i=0; i < realK; i++)  {	largeItemset[i] = NULL;	numLarge[i] = 0; } /* sort the support in ascending order */ q_sortD(&(support1[0]), largeItem1, 0, numItem-1, numItem); /* for (i=0; i < numItem; i++)  	printf("%d[%d] ", largeItem1[i], support1[i]); printf("\n"); */ headerTableSize = N; while ((headerTableSize < numItem) && (support1[N-1] == support1[headerTableSize]))	headerTableSize++; numLarge[0] = headerTableSize; headerTableSize = numItem; while (support1[headerTableSize-1] < 1)	headerTableSize--; /* if (headerTableSize >  realK) 	threshold = support1[N-1]; else {	headerTableSize = realK; 	while ((headerTableSize < numItem) && (support1[realK] == support1[headerTableSize]))		headerTableSize++;	if (realK < numItem) 		threshold = support1[realK];	else	threshold = support1[realK-1]; } */ printf("\nheaderTableSize=%d\n", headerTableSize); printf("numLarge[0]=%d\n", numLarge[0]); findLimit(); return;}void buildTree(){ int *freqItemP; int *indexList; int count; FILE *fp; int transSize; int item; int i, j, m; int path; /* build header table */ headerTableLink = (FPTreeNode *) malloc (sizeof(FPTreeNode) * headerTableSize); if (headerTableLink == NULL) {	printf("out of memory\n");	exit(1); } for (i=0; i < numItem; i++)	headerTableLink[i] = NULL; /* create root of the FP-tree */ root = (FPTreeNode) malloc (sizeof(FPNode)); if (root == NULL) {	printf("out of memory\n");	exit(1); } root->numPath = 1; root->parent = NULL; root->children = NULL; root->hlink = NULL; freqItemP = (int *) malloc (sizeof(int) * numItem); if (freqItemP == NULL) {	printf("out of memory\n");	exit(1); }	 indexList = (int *) malloc (sizeof(int) * numItem); if (indexList == NULL) {	printf("out of memory\n");	exit(1); }	 /* scan DB and insert frequent items into the FP-tree */ if ((fp = fopen(dataFile, "r")) == NULL) {        printf("Can't open data file, %s.\n", dataFile);        exit(1); } for (i=0; i < numTrans; i++) {	fscanf(fp, "%d", &transSize);	count = 0; 	path = 0;	for (j=0; j < transSize; j++) {		fscanf(fp, "%d", &item);		for (m=0; m < headerTableSize; m++) {			if (item == largeItem1[m]) {				freqItemP[count] = item;				indexList[count] = m;				count++;				break;			} 		}	}	q_sortA(indexList, freqItemP, 0, count-1, count);	insert_tree(&(freqItemP[0]), &(indexList[0]), 1, 0, count, 				root, headerTableLink, &path); }  fclose(fp); free(freqItemP); free(indexList); return;}void displayResult(){ LargeItemPtr aLargeItemset; FILE *fp; int count; int support; int i, j; if ((fp = fopen(outFile, "w")) == NULL) {        printf("Can't open data file, %s.\n", outFile);        exit(1); } fprintf(fp, "%d\n\n", realK); fprintf(fp, "%d\n", numLarge[0]); if (numLarge[0] > 0) {        printf("\nLarge %d-itemsets[support]:\n", 1);        for (i=0; i < numLarge[0]; i++) {                printf("%d ", largeItem1[i]);                fprintf(fp, "%d ", largeItem1[i]);                printf("[%d]\n", support1[i]);                fprintf(fp, "  %d\n", support1[i]);        }        printf("\n");        fprintf(fp, "\n"); } for (i=1; i < realK; i++) {	if (numLarge[i] == 0) break;	fprintf(fp, "%d\n", numLarge[i]);	printf("\nLarge %d-itemsets[support]:\n", i+1);	aLargeItemset = largeItemset[i];	count = 0;	while (aLargeItemset != NULL) {		count++;		if (count == N)			support = aLargeItemset->support;		else if (count > N)			if (aLargeItemset->support < support)				break;		for (j=0; j <= i; j++) {			printf("%d ", aLargeItemset->itemset[j]);			fprintf(fp, "%d ", aLargeItemset->itemset[j]);		}		printf("[%d]\n", aLargeItemset->support);		fprintf(fp, "  %d\n", aLargeItemset->support);		aLargeItemset = aLargeItemset->next;	}	printf("\n");	fprintf(fp, "\n"); } fclose(fp); return;}void input(char *configFile){ FILE *fp; float thresholdDecimal; if ((fp = fopen(configFile, "r")) == NULL) {        printf("Can't open config. file, %s.\n", configFile);        exit(1); } fscanf(fp, "%d %d %f %d %d %f", &N, &expectedK, &thresholdDecimal, &numItem, &numTrans, &decreaseRate); fscanf(fp, "%s %s %s", dataFile, treeFile, outFile); fclose(fp); printf("N = %d\n", N); printf("expectedK = %d\n", expectedK); printf("thresholdDecimal = %f (dummy)\n", thresholdDecimal); printf("numItem = %d\n", numItem); printf("numTrans = %d\n", numTrans); printf("decreaseRate = %f\n", decreaseRate); printf("dataFile = %s\n", dataFile); printf("treeFile = %s\n", treeFile); printf("outFile = %s\n\n", outFile); threshold = thresholdDecimal * numTrans; printf("threshold = %d (dummy)\n", threshold); oldThreshold = numTrans; if (N > numItem) {	printf("N > numItem\n");	exit(1); }	  return;}void main(int argc, char *argv[]){ float  userTime, sysTime; struct rusage myTime1, myTime2; /* usage ------------------------------------------*/ printf("fptN20.c\n"); printf("FP-tree (finding N-most interesting large itemsets)\n"); if (argc != 3) {        printf("Usage: fptN20 <config. file> <where to start scanning the header table>\n");        exit(1); } /* read input parameters --------------------------*/ printf("input\n"); input(argv[1]); startHeader = atoi(argv[2]); getrusage(RUSAGE_SELF,&myTime1); /* pass 1 -----------------------------------------*/ printf("\npass1\n"); pass1(); if (startHeader == 0)	startHeader = headerTableSize / 2; printf("startHeader=%d\n", startHeader); /* create FP-tree --------------------------*/ printf("\nbuildTree\n"); buildTree(); /* initialize thresholdK -------------------*/ printf("\ninitThreshold\n"); initThresholdK(); round++; printf("round = %d, threshold = %d\n", round, threshold); /* mining frequent patterns ----------------*/ printf("\npassK\n"); FPgrowth(root, headerTableLink, headerTableSize, NULL, 0); getrusage(RUSAGE_SELF,&myTime2); /* output result of large itemsets ----------------*/ printf("\nresult\n"); displayResult(); /* free memory ------------------------------------*/ printf("\ndestroy\n"); destroy(); /* output running time ----------------------------*/ printf("build tree time:\n"); userTime =     		((float) (myTime2.ru_utime.tv_sec  - myTime1.ru_utime.tv_sec)) +       		((float) (myTime2.ru_utime.tv_usec - myTime1.ru_utime.tv_usec)) * 1e-6; sysTime =       		((float) (myTime2.ru_stime.tv_sec  - myTime1.ru_stime.tv_sec)) +       		((float) (myTime2.ru_stime.tv_usec - myTime1.ru_stime.tv_usec)) * 1e-6; printf("User time : %f seconds\n",userTime); printf("System time : %f seconds\n\n",sysTime); return;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区四区在线播放| 91精品久久久久久久久99蜜臂| 久久精品国产秦先生| 亚洲午夜久久久久| 亚洲综合成人在线视频| 亚洲综合色噜噜狠狠| 亚洲精品美腿丝袜| 亚洲电影欧美电影有声小说| 亚洲成人免费观看| 人人超碰91尤物精品国产| 青娱乐精品在线视频| 激情综合网激情| 国产白丝精品91爽爽久久| 99视频一区二区| 欧洲日韩一区二区三区| 欧美美女网站色| 久久综合九色综合欧美98| 国产女人18毛片水真多成人如厕| 国产精品久久久久婷婷| 一区二区三区中文在线| 免费国产亚洲视频| 福利视频网站一区二区三区| 91在线免费视频观看| 日韩精品一区二区三区蜜臀| 久久精品日韩一区二区三区| 亚洲丝袜自拍清纯另类| 亚洲成人资源网| 国产原创一区二区三区| 色狠狠一区二区| 欧美成人三级在线| 亚洲欧洲综合另类在线| 蜜桃av一区二区在线观看| 国产成人精品三级麻豆| 在线观看亚洲a| 久久久久久一二三区| 亚洲一区视频在线| 国产精品影视天天线| 欧美性生活大片视频| 久久色中文字幕| 日韩中文字幕不卡| av亚洲精华国产精华精华| 日韩欧美中文一区二区| 亚洲人妖av一区二区| 久久成人免费网站| 欧日韩精品视频| 国产精品伦一区| 激情久久久久久久久久久久久久久久| 91丨九色丨蝌蚪富婆spa| 精品久久久久久久久久久久久久久| 国产精品免费久久久久| 九九国产精品视频| 9191久久久久久久久久久| 欧美国产乱子伦| 久久精品国产色蜜蜜麻豆| 欧美写真视频网站| 最新中文字幕一区二区三区| 国产精品一区二区在线播放| 欧美一级电影网站| 亚洲成国产人片在线观看| 一本色道久久综合精品竹菊| 国产精品久久久久久久久动漫| 国内外精品视频| 欧美zozozo| 蜜桃一区二区三区在线观看| 欧美精品久久久久久久多人混战| 亚洲久草在线视频| 91一区二区在线观看| 国产精品免费视频网站| 国产精品1区二区.| 精品99一区二区三区| 另类中文字幕网| 欧美成人aa大片| 久久精品国产精品亚洲红杏| 欧美一区二区三区人| 天堂成人国产精品一区| 91精品国产综合久久久久久久| 亚洲成av人片观看| 51久久夜色精品国产麻豆| 天天综合网天天综合色| 欧美一区日韩一区| 美女www一区二区| 欧美精品一区二区三区在线播放| 久久国产婷婷国产香蕉| 精品国产91亚洲一区二区三区婷婷| 久久精品国产久精国产爱| 2020国产精品| 播五月开心婷婷综合| 亚洲日本va午夜在线电影| 欧美亚洲一区三区| 亚洲综合一区二区精品导航| 91麻豆精品国产91久久久| 久色婷婷小香蕉久久| 国产精品视频线看| 色呦呦日韩精品| 日韩经典一区二区| 久久综合精品国产一区二区三区| 国产**成人网毛片九色| 国产精品第13页| 欧美久久久久久蜜桃| 国产一区激情在线| 麻豆成人av在线| 久久免费精品国产久精品久久久久| 成人网页在线观看| 亚洲国产视频一区| 久久久久久久久99精品| 日本高清免费不卡视频| 麻豆精品一区二区av白丝在线| 久久久www成人免费毛片麻豆| 91污片在线观看| 日韩福利电影在线观看| 国产欧美一区二区精品婷婷| 欧美在线一二三| 国产美女主播视频一区| 一区二区久久久久久| 日韩精品中文字幕一区 | 国产综合一区二区| 国产精品热久久久久夜色精品三区| 91久久精品一区二区二区| 麻豆免费看一区二区三区| 亚洲人午夜精品天堂一二香蕉| 欧美一区二区三区思思人| 成人av资源网站| 老色鬼精品视频在线观看播放| 亚洲精品乱码久久久久久黑人| 精品久久人人做人人爰| 欧美在线看片a免费观看| 国产成人99久久亚洲综合精品| 天堂av在线一区| 亚洲女女做受ⅹxx高潮| 国产亚洲va综合人人澡精品| 欧美高清www午色夜在线视频| 成人伦理片在线| 国产高清亚洲一区| 日本亚洲一区二区| 亚洲大片在线观看| 亚洲激情中文1区| 中文字幕在线观看不卡视频| 久久精品亚洲精品国产欧美kt∨| 欧美美女喷水视频| 欧美少妇xxx| 在线亚洲一区二区| 色悠久久久久综合欧美99| 成人激情校园春色| 成人午夜视频网站| 成人免费视频视频在线观看免费| 国内久久精品视频| 久久av资源网| 美国av一区二区| 蜜桃精品在线观看| 久久国产剧场电影| 精品一区二区三区免费毛片爱| 蜜臀av性久久久久蜜臀av麻豆| 国产精品99久久不卡二区| 老司机精品视频在线| 久久超碰97中文字幕| 免费不卡在线视频| 经典三级在线一区| 国模娜娜一区二区三区| 国产精华液一区二区三区| 精品一区二区在线视频| 国产一区二区三区四区五区入口 | 亚洲第一精品在线| 亚洲午夜一区二区| 性做久久久久久久免费看| 五月天精品一区二区三区| 青青草国产成人99久久| 久久精品国产99| 国产91精品在线观看| 色综合久久中文字幕| 欧美日本一区二区三区四区 | 久久69国产一区二区蜜臀| 国产在线精品免费av| 成人亚洲一区二区一| 91免费视频大全| 欧美精品v国产精品v日韩精品| 欧美哺乳videos| 亚洲欧洲色图综合| 五月天婷婷综合| 国产电影一区在线| 91高清视频免费看| 日韩精品一区二区三区视频在线观看| 久久久久综合网| 亚洲一区自拍偷拍| 韩国成人精品a∨在线观看| 91麻豆精品在线观看| 91麻豆精品国产综合久久久久久 | 色综合天天综合网国产成人综合天 | 99久精品国产| 一本到一区二区三区| 91精品国产色综合久久不卡电影| 久久久国产精华| 亚洲丶国产丶欧美一区二区三区| 久久精品国产在热久久| 不卡的av电影| 精品少妇一区二区三区在线播放| 国产精品卡一卡二| 日韩中文字幕亚洲一区二区va在线| 国产盗摄一区二区| 国产精品天天看| 日本女优在线视频一区二区|