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

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

?? lfm_network.h

?? 有重疊的復(fù)雜網(wǎng)絡(luò)結(jié)構(gòu)劃分算法
?? H
字號(hào):
#if !defined(LFM_NETWORK)#define LFM_NETWORKtypedef ddi<int> dd_int;typedef multiset<dd_int>::iterator fit_it;typedef map <int, fit_it> nodes_map;	class lfm_network : public static_network {				public:						lfm_network(static_network &, int*);		~lfm_network();				void alpha_setter(double & a, double & b, double & c) {			initial_alpha=a;			final_alpha=b;			alpha_precision=c;		}						int membership(bool);							private:						// PARAMETERS		double alpha;		double initial_alpha;		double final_alpha;		double alpha_precision;		int counter;				double qic;		double ic_ktot;		double ic_kin;		set <int> ic;				double setic(int &);		double setic_old(int &);		bool cond (const double &, const double &);		bool ncond (const double &, const double &);		double qf(const double &, const double &);					double set_ics(bool);				};bool lfm_network::cond (const double &uno, const double &due) {				return ((ic_kin+2.*uno*due)/pow(ic_ktot+due,alpha)-qic>R2_EPS);}bool lfm_network::ncond (const double &uno, const double &due) {				return ((ic_kin-2.*uno*due)/pow(ic_ktot-due,alpha)-qic>R2_EPS);}double lfm_network::qf(const double &kip, const double &ktp) {				return (ic_kin+2.*kip)/pow(ic_ktot+ktp,alpha);}lfm_network::lfm_network(static_network &uno, int* seqeuence) : static_network(uno, seqeuence) {		initial_alpha=0.6;	final_alpha=1.6;	alpha_precision=0.01;		counter=0;	}lfm_network::~lfm_network() {}double lfm_network::setic(int &start) {	qic=0;	ic_kin=0;	ic_ktot=0;		nodes_map nodes_fit;	multiset <dd_int> fit_ic;	multiset <dd_int> fit_con;		ic.clear();		int good_node=start;	fit_it good_it= fit_con.insert(dd_int(0., vertices[good_node]->strength, good_node));	nodes_fit.insert(make_pair(good_node, good_it));					while (good_node!=-1) {								ic.insert(good_node);		nodes_fit[good_node]=fit_ic.insert(dd_int(good_it->first, good_it->second, good_node));		ic_ktot+=vertices[good_node]->strength;				ic_kin+=2.*(good_it->first)*(good_it->second);		qic=(ic_kin)/pow(ic_ktot,alpha);		fit_con.erase(good_it);				//-------------------------------- updates neighbors		wsarray* neighbors = vertices[good_node]->links;										for (int i=0; i<neighbors->size(); i++) {					int vicino=neighbors->l(i);			nodes_map::iterator it= nodes_fit.find(vicino);						if (it==nodes_fit.end())				nodes_fit.insert(make_pair(vicino, fit_con.insert(dd_int(neighbors->w(i)/vertices[vicino]->strength, vertices[vicino]->strength, vicino))));						else {											if (ic.find(it->first)==ic.end()) {										double fit_old=(it->second->first)*(it->second->second);					fit_con.erase(it->second);					it->second=fit_con.insert(dd_int((neighbors->w(i)+fit_old)/vertices[vicino]->strength, vertices[vicino]->strength, vicino));				}												else {									double fit_old=(it->second->first)*(it->second->second);					fit_ic.erase(it->second);					it->second=fit_ic.insert(dd_int((neighbors->w(i)+fit_old)/vertices[vicino]->strength, vertices[vicino]->strength, vicino));				}			}							}				//--------------------------------  updates neighbors								//----------------------------------- looks for "bad nodes"				deque <int> bad_nodes;		fit_it bad_it=fit_ic.begin();				while (ncond(bad_it->first, bad_it->second)) {			bad_nodes.push_back(bad_it->third);			bad_it++;			if (bad_it==fit_ic.end())				break;		}						//-------------------------------- updates "bad nodes"						for (int i=0; i<bad_nodes.size(); i++) {						nodes_map::iterator it__b= nodes_fit.find(bad_nodes[i]);	// it__b->first is the node, it__b->second is the iterator			if (ncond(it__b->second->first, it__b->second->second)) {																								fit_it bad_node_it = it__b->second;								ic.erase(ic.find(bad_nodes[i]));				it__b->second = fit_con.insert(dd_int(it__b->second->first, it__b->second->second, bad_nodes[i]));				fit_ic.erase(bad_node_it);				ic_ktot-=vertices[bad_nodes[i]]->strength;						ic_kin-=2.*(it__b->second->first)*(it__b->second->second);				qic=(ic_kin)/pow(ic_ktot,alpha);								wsarray* neighbors = vertices[bad_nodes[i]]->links;						for (int i=0; i<neighbors->size(); i++) {									int vicino=neighbors->l(i);										nodes_map::iterator it= nodes_fit.find(vicino);															if (ic.find(it->first)==ic.end()) {											double fit_old=(it->second->first)*(it->second->second);						fit_con.erase(it->second);						it->second=fit_con.insert(dd_int((fit_old-neighbors->w(i))/vertices[vicino]->strength, vertices[vicino]->strength, vicino));					}										else {												double fit_old=(it->second->first)*(it->second->second);						fit_ic.erase(it->second);						it->second=fit_ic.insert(dd_int((fit_old-neighbors->w(i))/vertices[vicino]->strength, vertices[vicino]->strength, vicino));												if (ncond(it->second->first, it->second->second) && (find(bad_nodes.begin(), bad_nodes.end(), vicino)==bad_nodes.end())) {	// if it is not there							bad_nodes.push_back(it->first);																				}											}				}			}								}		//-------------------------------- updates bad nodes												// ------------- good nodes						good_node=-1;		if (fit_con.empty())			break;				good_it=fit_con.end();		good_it--;						//------------------------------ randomizes				int choice=0;		fit_it good_it_2=good_it;						deque <fit_it> choices;				while (good_it_2!=fit_con.begin() && (*(good_it_2))==(*(good_it))) {						choice++;			choices.push_back(good_it_2);			good_it_2--;					}				if (choices.size()>0)			good_it=choices[irand(choices.size()-1)];						//----------------------------------------------------------------------------------------------------						if (cond(good_it->first, good_it->second))			good_node=good_it->third;								}				return (ic_kin/ic_ktot);	}double lfm_network::setic_old(int &start) {				set <int> con;	deque <pair<int, double> > fitcon;			deque <int> nps;	deque <int> bad;	deque <int> fitic;								ic_kin=0;	ic_ktot=0;	qic=0;	int nc=0;			ic.clear();	con.insert(start);	nps.push_back(0);	pair <int,double> fcp (start, 0);	fitcon.push_back(fcp);	fitic.push_back(0);			bool flag=true;		while (flag) {								deque<double> fit(fitcon.size());								for (int i=0; i<nps.size(); i++) if (i==0 || fit[nps[i]]>0) {						int a=fitcon[nps[i]].first;									fitic[nps[i]]=1;			nc++;						ic_ktot+=vertices[a]->strength;			ic_kin+= 2* fitcon[nps[i]].second;						qic=qf(0., 0.);			for (int j=0; j<fitcon.size(); j++)	{													int b= fitcon[j].first;												int indexv=vertices[b]->links->find(a);				if (indexv!=UNLIKELY)					fitcon[j].second+=vertices[b]->links->w(indexv);												if (fitic[j]==1)					fit[j]= qic - qf(-fitcon[j].second, -vertices[fitcon[j].first]->strength);				else					fit[j]= qf(fitcon[j].second, vertices[fitcon[j].first]->strength) -qic;								}																	for (int j=0; j<vertices[a]->links->size(); j++) {								 				int al=vertices[a]->links->l(j);				double aw= vertices[a]->links->w(j);				 				 				if (con.insert(al).second) {							pair <int,double> fc (al, aw);					fitcon.push_back(fc);					fitic.push_back(0);					fit.push_back(qf(aw, vertices[al]->strength) - qic);				}							}		}				if (nc==1)			fit[0]=1;								bad.clear();		nps.clear();		double npf=0;				for (int i=0; i<fitcon.size(); i++) {			if (fitic[i]==0) {				if (fit[i]>npf) {					nps.clear();					nps.push_back(i);					npf=fit[i];				}			   				else if (fit[i]==npf)					nps.push_back(i);			}						else if (fit[i]<=0)				bad.push_back(i);				}						if (nps.size()>0) {					int choice=nps[irand(nps.size()-1)];			nps.clear();			nps.push_back(choice);				}				for (int i=0; i<bad.size(); i++) if (fit[bad[i]]<=0) {						int a=fitcon[bad[i]].first;									fitic[bad[i]]=0;			nc--;			ic_ktot-=vertices[a]->strength;			ic_kin-= 2* fitcon[bad[i]].second;						qic=qf(0., 0.);						for (int j=0; j<fitcon.size(); j++)	{								int b= fitcon[j].first;														int indexv=vertices[b]->links->find(a);				if (indexv!=UNLIKELY)					fitcon[j].second-=vertices[b]->links->w(indexv);								if (fitic[j]==1) {								fit[j]= qic - qf(-fitcon[j].second, -vertices[fitcon[j].first]->strength);										if (fit[j]<=0 && find(bad.begin(), bad.end(), j)==bad.end())						bad.push_back(j);																			}				else					fit[j]= qf(fitcon[j].second, vertices[fitcon[j].first]->strength) -qic;									}									}					if (bad.size()>0) {							nps.clear();			npf=0;							for (int i=0; i<fitcon.size(); i++) if(fitic[i]==0){									if (fit[i]>npf) {					nps.clear();					nps.push_back(i);					npf=fit[i];				}									else if (fit[i]==npf)					nps.push_back(i);								}		}				if (nps.size()>0) {					int choice=nps[irand(nps.size()-1)];			nps.clear();			nps.push_back(choice);				}								//-------------------------------------------------------------------------------------------------------------------------------------------------										flag=(npf>R2_EPS);					}		for (int i=0; i<fitic.size(); i++)		if (fitic[i]==1)			ic.insert(fitcon[i].first);		return (ic_kin/ic_ktot);		}double lfm_network::set_ics(bool old) {			deque <double> weak_hist;		deque<deque<int> > quotation;	deque<int> tbad;	deque<int> tgood;	set <int> done;	int done_size=0;			//------------------------------------------------------------------------------------ computes ic		for (int i=0; i<dim; i++) if(done.insert(i).second) {				ic.clear();				int done_size=done.size();		double weak_ic;				if(old)			weak_ic =setic_old(i);		else			weak_ic =setic(i);									deque <int> ic_id;		set<int>::iterator it = ic.begin();		while(it!=ic.end())			ic_id.push_back(*(it++));				if (fabs(weak_ic-kin(ic_id)/ktot(ic_id)) > R2_EPS) {			cout<<"error "<<endl;			int err;			cin>>err;		}				if (ic_id.size()==dim)			tgood.push_back(i);				for (int w=0; w<ic_id.size(); w++)			done.insert(ic_id[w]);		if (done.size()>done_size) {		// records the community only if it covers something new			quotation.push_back(ic_id);			weak_hist.push_back(weak_ic);		}												}			//------------------------------------------------------------------------------------ computes ic			//------------------------------------------------------------------------------------ computes the overlaps; neglects the community with overlap > 1	deque <int> big;	for (int i=0; i<quotation.size(); i++)		big.push_back(i);			deque<deque<int> > mem_quot;			// membership matrix	deque <int> first;	for (int i=0; i<dim; i++)		mem_quot.push_back(first);		bool bigf=true;		deque <double> fuz;	while (bigf) {				fuz.clear();		bigf=false;				for (int i=0; i<dim; i++)			mem_quot[i].clear();					for (int i=0; i<big.size(); i++)			for (int j=0; j<quotation[big[i]].size(); j++)				mem_quot[quotation[big[i]][j]].push_back(big[i]);						fuz.assign(quotation.size(),0);				for (int i=0; i<big.size(); i++) {					for (int j=0; j<quotation[big[i]].size(); j++)				if (mem_quot[quotation[big[i]][j]].size()>1)					fuz[big[i]]++;		}										for (int i=0; i<big.size(); i++) {			if (!(fuz[big[i]]/quotation[big[i]].size()<1)) {							big.erase(remove(big.begin(),big.end(),big[i]));				bigf=true;				break;						}		}												}			//------------------------------------------------------------------------------------ computes the overlaps; neglects the community with overlap > 1			for (int i=0; i<dim; i++)		if (mem_quot[i].size()==0)			tbad.push_back(i);	double ob=0;	for (int i=0; i<dim; i++) {		if(mem_quot[i].size()>1)			ob++;	}		double weak_ave=0;	for (int i=0; i<big.size(); i++)		weak_ave+=weak_hist[big[i]];			weak_ave=weak_ave/big.size();			//	output and archive ----------------------------------------------------------------				map <double, int>::iterator it_mr = find_value_in_occurrences(weak_ave);		if (weak_ave<1.-R2_EPS) if (it_mr==occurrences.end()) {				archive_pos.insert(make_pair(weak_ave, arcout.tellp()));		occurrences.insert(make_pair(weak_ave, 1));						//arcout<<"big modules= "<<big.size()<<"\n--------------------------------------------------------------------\n"<<endl;				for (int i=0; i<big.size(); i++) {					const deque<int> &v= quotation[big[i]];									for (int y=0; y<v.size(); y++)				arcout<<vertices[v[y]]->id_num<<"\t";						arcout<<-1<<endl;									/*			if (module_set) {				for (int y=0; y<v.size(); y++)					arcout<<vertices[v[y]]->value<<"\t";				arcout<<-1<<endl;			}						//*/						arcout<<"weak = "<<weak_hist[big[i]]<<"\tnumber = "<<i+1<<"\toverlap = "<<fuz[big[i]]/quotation[big[i]].size()<<endl;			arcout<<endl;									}				arcout<<-2<<endl;										if (tgood.size()>0) {								arcout<<"percolation due to "<<endl;			const deque<int> &v= tgood;						for (int y=0; y<v.size(); y++)				arcout<<vertices[v[y]]->id_num<<"\t";										arcout<<endl;										}				if (tbad.size()>0) {			arcout<<"homeless nodes"<<endl;			const deque<int> &v= tbad;			deque <int> module_part;			for (int y=0; y<v.size(); y++)				arcout<<vertices[v[y]]->id_num<<"\t";						arcout<<endl;									if (module_set) {				for (int y=0; y<v.size(); y++)					arcout<<vertices[v[y]]->value<<"\t";			}												arcout<<endl;							}									arcout<<"---------------------------------------------"<<endl;		arcout<<"alpha:\t"<<alpha<<endl;		arcout<<"number of modules:\t"<<big.size()<<endl;		arcout<<"overlap:\t"<<ob<<endl;		arcout<<"homeless nodes:\t"<<tbad.size()<<endl;		arcout<<"average weak fitness:\t"<<weak_ave<<endl;		arcout<<"---------------------------------------------//"<<endl<<endl<<endl;			}		else {				it_mr->second++;				}				return weak_ave;	}int lfm_network::membership(bool old) {			//cout<<"alpha set equal to..."<<endl;	for (alpha=initial_alpha; alpha<final_alpha+R2_EPS; alpha+=alpha_precision) {		set_ics(old);		counter++;		//cout<<alpha<<" ";			}		//cout<<endl;	return counter;}#endif

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人夜色高潮福利影视| 国产欧美日韩在线| 国产剧情在线观看一区二区| 亚洲视频狠狠干| **网站欧美大片在线观看| 3atv一区二区三区| 91猫先生在线| 国产ts人妖一区二区| 日一区二区三区| 亚洲手机成人高清视频| 久久夜色精品国产噜噜av| 欧美乱妇20p| 色悠久久久久综合欧美99| 国产成人无遮挡在线视频| 日韩 欧美一区二区三区| 一区二区三区91| 中文字幕中文字幕在线一区| 精品日韩99亚洲| 日韩一区二区在线观看视频播放| 一本色道久久综合亚洲精品按摩| 国产精品一区一区| 伦理电影国产精品| 水野朝阳av一区二区三区| 亚洲影视在线观看| 亚洲三级视频在线观看| 国产精品久久久久久久久久免费看 | 久久99深爱久久99精品| 亚洲一区影音先锋| 亚洲精品水蜜桃| 综合在线观看色| 国产精品国模大尺度视频| 国产欧美精品区一区二区三区 | 亚洲成a人在线观看| 亚洲精品成人少妇| 亚洲乱码国产乱码精品精可以看 | 久久美女高清视频| 日韩欧美的一区二区| 欧美一区二区视频在线观看2022| 欧美日韩中字一区| 欧美日韩国产另类不卡| 欧美日韩一区在线| 在线播放/欧美激情| 欧美一三区三区四区免费在线看 | 国产精品久久久久久久久晋中| 亚洲国产精品天堂| 精品黑人一区二区三区久久| 制服丝袜成人动漫| 日韩欧美电影在线| 久久综合一区二区| 久久精品亚洲精品国产欧美 | 亚洲猫色日本管| 一区二区三区四区精品在线视频 | 亚洲美女偷拍久久| 亚洲一区二区精品3399| 视频一区视频二区中文| 老色鬼精品视频在线观看播放| 九色|91porny| 国产不卡在线一区| 91久久精品日日躁夜夜躁欧美| 日本精品视频一区二区| 欧美乱妇23p| 久久久亚洲午夜电影| 中文字幕二三区不卡| 亚洲欧美日韩在线| 日韩中文字幕1| 国产麻豆成人传媒免费观看| 波多野结衣中文一区| 狠狠色狠狠色综合| 成人一区二区在线观看| 日本久久精品电影| 欧美一级夜夜爽| 国产日本一区二区| 一区二区在线免费观看| 日韩国产精品大片| 成人手机电影网| 欧美视频一区二区| 久久久久久亚洲综合影院红桃| 中文字幕亚洲综合久久菠萝蜜| 亚洲国产日韩一区二区| 精品一区二区免费在线观看| www.日韩大片| 欧美一区二区久久久| 国产精品欧美精品| 视频一区二区中文字幕| 成人午夜在线免费| 欧美日韩亚洲综合一区二区三区| 久久人人超碰精品| 亚洲午夜精品17c| 国产精品69毛片高清亚洲| 欧美性受极品xxxx喷水| 久久精品一区二区三区四区| 亚洲国产精品久久不卡毛片| 国产麻豆一精品一av一免费| 欧美色涩在线第一页| 久久久久久久综合日本| 午夜影院在线观看欧美| 成人伦理片在线| 日韩美一区二区三区| 亚洲激情在线激情| 久久99精品久久只有精品| 色成人在线视频| 国产精品欧美一区二区三区| 美女视频黄a大片欧美| 在线精品视频免费观看| 国产欧美一区二区三区在线看蜜臀 | 久久精品人人爽人人爽| 午夜欧美一区二区三区在线播放| 成人理论电影网| 日韩精品一区二区三区在线播放| 一区二区高清视频在线观看| 风间由美一区二区三区在线观看| 日韩一卡二卡三卡四卡| 亚洲亚洲人成综合网络| av午夜精品一区二区三区| 欧美精品一区男女天堂| 欧美a一区二区| 欧美老年两性高潮| 亚洲最新视频在线观看| 不卡一区中文字幕| 国产天堂亚洲国产碰碰| 久88久久88久久久| 日韩一区二区三区电影| 天天综合天天做天天综合| 在线免费观看视频一区| 亚洲欧美另类久久久精品| www.av精品| 中文字幕五月欧美| eeuss鲁片一区二区三区在线看| 久久久精品tv| 韩国三级在线一区| 精品粉嫩超白一线天av| 久色婷婷小香蕉久久| 日韩手机在线导航| 美国十次综合导航| 精品毛片乱码1区2区3区| 蜜臀av一区二区在线免费观看| 欧美日韩电影一区| 视频一区国产视频| 日韩一区二区免费在线观看| 热久久久久久久| 欧美tickle裸体挠脚心vk| 九九久久精品视频| 久久久精品日韩欧美| 国产91精品入口| 国产精品久久久久影院色老大| 成人av在线播放网站| 亚洲三级在线免费| 欧美色大人视频| 日本成人在线电影网| 日韩精品一区在线观看| 国产精品1024| 国产精品久久久久一区二区三区| 99re成人在线| 亚洲国产一区视频| 欧美一区二区三区视频免费播放| 老司机一区二区| 欧美高清在线精品一区| 色哟哟精品一区| 婷婷成人综合网| 久久久久免费观看| 91影视在线播放| 日韩在线一区二区三区| 久久综合给合久久狠狠狠97色69| 福利一区福利二区| 亚洲精品亚洲人成人网| 欧美高清你懂得| 国产精品影视网| 亚洲综合一区二区三区| 欧美一级高清片| 成人一区二区三区在线观看| 一二三区精品福利视频| 欧美成人在线直播| 99久久久久久| 日本午夜精品视频在线观看| 国产欧美日韩在线| 欧美在线不卡视频| 国产一区二区三区免费| 一区二区三区四区高清精品免费观看 | 欧美激情一区二区| 日本丶国产丶欧美色综合| 日本不卡123| 中文字幕一区二区在线观看| 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | 亚洲日本在线天堂| 日韩三级电影网址| 91一区二区三区在线观看| 毛片av一区二区| 亚洲男同性视频| 久久亚洲一区二区三区明星换脸 | 精品国产一区久久| 色综合色狠狠天天综合色| 精品中文字幕一区二区| 一区二区三区日本| 国产视频一区在线观看| 欧美另类一区二区三区| 色综合视频在线观看| 国产美女av一区二区三区| 午夜天堂影视香蕉久久| 综合久久久久综合| 久久嫩草精品久久久精品一|