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

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

?? ga2.h

?? 遺傳算法演示程序 遺傳算法演示程序
?? H
字號:
#include<iostream>
#include<ctime>
#include<stdlib.h>
#include<math.h>
using namespace std;
#define N  10  //種群數目
#define NUM 50 //城市數目
#define CRS 0.898
#define CHG 0.9
#define RE  0.9
typedef struct P
{
	int x;
	int y;
	P():x(0),y(0){}
}Point;

int s(Point a,Point b)
{
	return sqrt(float((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y)));
}
class Gcalc
{
public:
	int n;
	int num;
	float crs,re,chg;
	typedef struct AX//一個染色體
	{
		int *road;
		AX()
		{
			road=NULL;
		}
		AX(int nu){
			road=new int[nu];
			for(int i=0;i<nu;i++)
				road[i]=i;
		}
		AX operator =(AX& mx)
		{
			road=mx.road;
			return mx;
		}
		//~AX(){delete []road;}
	}Mem;
	Mem *m;//染色體數組;
	Point *pos;
public :
	void Mmalloc(Mem*& mx,int n0,int num0)
	{
		mx=new Mem[n0];
		for(int i=0;i<n0;i++)
			mx[i]=*(new Mem(num0));
	}
	/*~Gcalc()
	{
		delete  []m;
		delete  []pos;
	}
	*/
	Gcalc(int n0=N,int num0=NUM,float crs0=CRS,float re0=RE,float chg0=CHG)
		:n(n0),num(num0),crs(crs0),re(re0),chg(chg0)
	{
		srand(time(NULL));
		Mmalloc(m,n,num);
		pos=new Point[num];
		init_m();
		init_pos(950,670,10,10);
	}
	Gcalc(int cx,int cy,int x0=10,int y0=10,int n0=N,int num0=NUM,float crs0=CRS,float re0=RE,float chg0=CHG)
		:n(n0),num(num0),crs(crs0),re(re0),chg(chg0)
	{
		srand(time(NULL));
		Mmalloc(m,n,num);
		pos=new Point[num];
		init_pos(cx,cy,x0,y0);
		init_m();
	}
	void reset(int cx,int cy,int x0=10,int y0=10,int n0=N,int num0=NUM,float crs0=CRS,float re0=RE,float chg0=CHG)
	{
		n=n0,num=num0,crs=crs0,re=re0,chg=chg0;
		Mem *ptr=m;
		Mmalloc(m,n,num);
	/*	pos=new Point[num];
		if(ptr!=NULL)
			delete []ptr;
		Point *po=pos;
		if(po!=NULL)
		{
			delete []po;
		}
		*/
		init_pos(cx,cy,x0,y0);
		init_m();
	}
	int find_pos(Mem m,int x)
	{
		for(int i=0;i<num;i++)
			if(m.road[i]==x)
				return i;
		return -1;
	}
	void tran(Mem &t,Mem& s)
	{
		int *ptr=t.road;
		t.road=new int[num];
		delete []ptr;
		for(int i=0;i<num;i++)
			t.road[i]=s.road[i];
	}

	void init_m(void)
	{
		for(int i=0;i<n;i++)
		{
			//srand(i*5);
			//for(int j=0;j<NUM;j++)
			//	m[i].road[j]=j;
			for(int k=0;k<num;k++)//對各點進行輪動運算
			{	
				int a=rand()%(num*100)/100;
				//while (a==k) a=rand()%NUM;
				//if(rand()%2==0)
				int r=m[i].road[k];
				m[i].road[k]=m[i].road[a];
				m[i].road[a]=r;
			}
		}
	}
	void init_pos(int cx,int cy,int x0=0,int y0=0)
	{
		for(int i=0;i<num;i++)
		{
			pos[i].x=rand()%cx+x0;
			pos[i].y=rand()%cy+y0;
		}
	}
	void cross() //交叉
	{
		
		for(int i=0;i<N/2;i++)
		{
			Mem *p=new Mem,*q=new Mem;
			int u=rand()%n,v=rand()%n;
			while(u==v) u=rand()%n;
			tran(*p,m[u]);
			tran(*q,m[v]);
			if(float(rand()%1000)/1000<=crs)
			{
				int a=rand()%num;
				int x=m[u].road[a];
				int y=m[v].road[a];	
				m[u].road[find_pos(m[u],y)]=x;
				m[u].road[a]=y;
				m[v].road[find_pos(m[v],x)]=y;
				m[v].road[a]=x;
			}
			if(f(*p)<f(m[u]))
				tran(m[u],*p);
			if(f(*q)<f(m[v]))
				tran(m[v],*q);
			delete p;
			delete q;
		}
	}
	void change()//變異
	{
		for(int i=0;i<n;i++)
		{
			if(float(rand()%100)/100<=chg)
			{
				Mem* p=new Mem;
				tran(*p,m[i]);
				int a=rand()%num;
				int b=rand()%num;
				while(a==b)
					b=rand()%num;
				int r=m[i].road[a];
				m[i].road[a]=m[i].road[b];
				m[i].road[b]=r;
				if(f(*p)<f(m[i]))
					tran(m[i],*p);
				delete p;
			}
		}
	}
	void ret()
	{
		for(int i=0;i<n;i++)
		{
			if(float(rand()%1000)/1000<=re)
			{
				Mem* p=new Mem;
				tran(*p,m[i]);
				int r;
				int a=rand()%num;
				int b=rand()%num;
				while(a==b)
					b=rand()%num;
				r=a>b?a:b;//取其最大
				if(r!=b)
				{
					a=b;
					b=r;
				}
				for(int j=a;j<=(b-a)/2+a;j++)//倒序
				{
					r=m[i].road[j];
					m[i].road[j]=m[i].road[b+a-j];
					m[i].road[b+a-j]=r;
				}
				if(f(*p)<f(m[i]))
					tran(m[i],*p);
				delete p;
			}
		}
	}
	int f(Mem m)//計算路徑長度
	{
		int r=0;
		for(int i=0;i<num;i+=1)
			r+=s(pos[m.road[i]],pos[m.road[(i+1)%num]]);
		return r;
	}
	float af(Mem m)
	{
		float r=f(m);
		return 10/(r/100);
	}
	void next()//進行繁殖
	{
		Mem *m0;
		Mmalloc(m0,n,num);
		int i;
		float *fme=new float[n],fm=0;
		for(i=0;i<n;i++)
			fm+=fme[i]=af(m[i]);
		for(i=1;i<n;i++)
			fme[i]=fme[i]/fm+fme[i-1]/fm;
		for(i=0;i<n;i++)
		{
			float t=double(rand()%10000)/10000;
			for(int j=0;t<=fme[j]&&(j==0||fme[j]>fme[j-1])&&j<num;j++)//輪盤得碼
				tran(m0[i],m[j]);
		}
		for(i=0;i<n;i++)
			tran(m[i],m0[i]);
	}
	void calc(int n=1)
	{
		for(int i=0;i<n;i++)
		{
			cross();
			change();
			ret();
			//next();
		}
	}
	void display()
	{
		int min=f(m[0]),max=min;
		for(int i=0;i<n;i++)
		{
			int r=f(m[i]);
			//printf("%d  : %d \n",i,r);
			if(min>r)
				min=r;
			if(max<r)
				max=r;
		}
		cout<<"MIN:"<<min<<" MAX:"<<max<<endl;
	}
	void display(int x)
	{
		for(int i=0;i<num;i++)
			cout<<i<<"  : "<<m[x].road[i]<<endl;
		cout<<endl;
	}
	void out()
	{
		for(int i=0;i<num;i++)
		{
			cout<<i<<":"<<pos[i].x<<" "<<pos[i].y<<endl;
		}
	}
	
};

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品成人精品456| 精品免费视频一区二区| 亚洲国产精品高清| 免费成人美女在线观看| 日本精品视频一区二区三区| 国产视频911| 亚洲一二三四久久| 91精品国产高清一区二区三区蜜臀| 国产精品第一页第二页第三页| 国产在线精品一区二区夜色| jlzzjlzz亚洲日本少妇| 亚洲一区二区三区免费视频| 91性感美女视频| 久久精品亚洲乱码伦伦中文| 免费欧美日韩国产三级电影| 国产日产欧美一区| 九九九久久久精品| 欧美一区二区三区日韩| 日韩精品电影在线观看| 欧美午夜影院一区| 亚洲一区二区三区影院| 高清国产一区二区| 久久久噜噜噜久久人人看| 卡一卡二国产精品| 欧美一区二区大片| 成人国产精品免费| 国产精品无圣光一区二区| 成人小视频免费观看| 欧美电影在线免费观看| 国产91精品精华液一区二区三区 | 一区二区三区在线高清| 欧美体内she精高潮| 亚洲精品成人在线| 日本道色综合久久| 久久久久久一级片| 欧美亚洲日本国产| 亚洲777理论| 欧美精品自拍偷拍| 风流少妇一区二区| 国产精品婷婷午夜在线观看| 99国产欧美久久久精品| 日韩欧美成人激情| 色综合婷婷久久| 夜夜夜精品看看| 欧美婷婷六月丁香综合色| 成人一级黄色片| 图片区小说区国产精品视频| 4hu四虎永久在线影院成人| 五月天亚洲精品| 黄网站免费久久| 亚洲在线观看免费| 678五月天丁香亚洲综合网| 五月天国产精品| 国产精品久久一卡二卡| 色婷婷激情综合| 亚洲va中文字幕| 欧美一区二区免费视频| 91麻豆国产福利在线观看| 亚洲狼人国产精品| 国产网红主播福利一区二区| 成人国产精品免费网站| 亚洲一级二级在线| 国产精品污网站| 在线观看av一区二区| 性欧美疯狂xxxxbbbb| 国产精品视频观看| 欧美亚一区二区| 婷婷中文字幕一区三区| 日韩欧美国产综合在线一区二区三区| 国内精品不卡在线| 国产目拍亚洲精品99久久精品| 中文字幕欧美一| 欧美专区在线观看一区| 毛片一区二区三区| 精品国产99国产精品| 成人激情视频网站| **性色生活片久久毛片| 中文字幕永久在线不卡| 精品美女在线观看| 国产乱码精品1区2区3区| 亚洲欧洲精品一区二区三区 | 欧美色图激情小说| 日韩成人一区二区| 久久综合久久久久88| 国产专区综合网| 亚洲男人的天堂网| 欧美大尺度电影在线| 日韩国产欧美在线视频| 亚洲综合在线第一页| 26uuu精品一区二区| 91网站在线观看视频| 成人午夜在线免费| 三级在线观看一区二区| 国产午夜精品一区二区三区视频| 日韩久久精品一区| 欧美做爰猛烈大尺度电影无法无天| 蜜臀av在线播放一区二区三区| 亚洲另类一区二区| 久久看人人爽人人| 欧美日韩免费电影| 午夜久久电影网| 石原莉奈在线亚洲二区| 国产精品久久久久久久裸模| 91麻豆精品国产91久久久资源速度 | 亚洲品质自拍视频网站| 欧美一区二区三区播放老司机| 国产精品中文字幕欧美| 国产综合久久久久久久久久久久| 一区二区三区在线观看国产| 国产日韩在线不卡| 欧美在线999| 国产成人啪午夜精品网站男同| 亚洲国产成人av| 国产亚洲精品中文字幕| 日本一区二区不卡视频| 欧美一区二区国产| 欧美在线视频全部完| 欧美日韩国产首页| 91亚洲精品久久久蜜桃网站 | 日韩欧美国产成人一区二区| 日韩精品影音先锋| 欧美无砖专区一中文字| caoporn国产精品| 91亚洲精品久久久蜜桃网站| 韩国成人在线视频| 日韩精品电影在线| 国产视频一区不卡| 欧美国产日本韩| 精品国产第一区二区三区观看体验 | 久久久久国产精品免费免费搜索| 欧美人动与zoxxxx乱| 成人v精品蜜桃久久一区| 韩国视频一区二区| 青青草成人在线观看| 久久久三级国产网站| 日本一区二区三区久久久久久久久不| 欧美成人r级一区二区三区| 欧美日韩中文一区| 欧美精品tushy高清| 色偷偷成人一区二区三区91| 国产成人福利片| 亚洲欧美日韩一区二区| 天堂av在线一区| 亚洲综合色噜噜狠狠| 亚洲欧美视频一区| 免费在线成人网| 一区二区三区在线观看国产| 亚洲精品视频免费看| 奇米影视一区二区三区小说| 亚洲成人三级小说| 亚洲午夜免费电影| 亚洲三级在线观看| 亚洲免费观看高清完整| 亚洲免费av高清| 欧美日韩色一区| 人人精品人人爱| 青青草91视频| 日韩欧美的一区二区| 国产精品入口麻豆九色| 国产亚洲综合色| 欧美成人a视频| 亚洲欧洲av在线| 中文字幕佐山爱一区二区免费| 777午夜精品视频在线播放| 国产婷婷一区二区| 国产女同互慰高潮91漫画| 中文字幕高清一区| 日韩激情视频在线观看| 久久精品国产亚洲aⅴ| 极品美女销魂一区二区三区免费| 91在线看国产| 99免费精品视频| 91论坛在线播放| 99麻豆久久久国产精品免费| 色88888久久久久久影院野外| 欧美日韩在线综合| 91视视频在线观看入口直接观看www | 国产精品中文字幕日韩精品| 在线观看成人小视频| 欧美日韩视频在线一区二区| 欧美日韩亚洲综合| 中文字幕久久午夜不卡| 亚洲日本成人在线观看| 一个色在线综合| 国产一区二区三区| 波多野结衣中文一区| 91老师片黄在线观看| 欧美群妇大交群的观看方式| 欧美日产在线观看| 欧美精品一区二| 国产精品高潮呻吟久久| 久久―日本道色综合久久| 国产精品欧美久久久久一区二区| 在线不卡的av| 久久亚洲精精品中文字幕早川悠里 | 91精品国产综合久久香蕉的特点| 欧美电视剧在线观看完整版| 51精品久久久久久久蜜臀| 亚洲欧美经典视频| 视频一区在线播放|