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

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

?? gaqueen.cpp

?? Using Genetic Algorithm to solve the 8 Queens problem.
?? CPP
字號:
// GAQueen.cpp: implementation of the CGAQueen class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "GAQueen.h"

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

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

CGAQueen::CGAQueen(int nPopulation,int nIteration,float Mutation,int iChBoard)
{
	Clear();
	srand( (unsigned)time( NULL ) );
	Population=nPopulation;
	Iteration=nIteration;
	MutationRate=Mutation;
	ChessBoradLenght=iChBoard;
	
}

CGAQueen::~CGAQueen()
{

}

int CGAQueen::CostFunc(int index)
{
	// Determine The CostFunction of matrix[][index] and return the Cost Value
	// The Best Cost is zero 
	int costValue=0;
	int m,n;
	int i,j;
			
	for(i=0;i<ChessBoradLenght;i++)
	{	
		j=ChromosomeMatrix[i][index];

		m=i+1;
		n=j-1;
		while(m<ChessBoradLenght	&& n>=0)
		{
			if(area[m][n]==1)
			{
				costValue++; // there is a queen that takes the other one 
			}
			m++;
			n--;
		}

		m=i+1;
		n=j+1;
		while(m<ChessBoradLenght && n<ChessBoradLenght )
		{		
			if(area[m][n]==1)
			{
				
				costValue++;// there is a queen that takes the other one 
			}
			m++;
			n++;
		}

		

		m=i-1;
		n=j-1;
		while(m>=0 && n>=0)
		{		
			if(area[m][n]==1)
			{
				
				costValue++;// there is a queen that takes the other one 
			}
			m--;
			n--;
		}
		

		m=i-1;
		n=j+1;
		while(m>=0 && n<ChessBoradLenght)
		{		
			if(area[m][n]==1)
			{
				
				costValue++;// there is a queen that takes the other one 
			}
			m--;
			n++;
		}
	}

	return costValue;
	
}

void CGAQueen::Clear()
{
	// to Reset All cells 
	for (int i=0;i<ChessBoradLenght;i++)
		for (int j=0;j<ChessBoradLenght;j++)
			area[i][j]=0;
}

void CGAQueen::InitialPopulation() 
{
	
	int random;
	bool bCheck;
	for (int index=0;index<=Population-1;index++)
		for (int a=0;a<ChessBoradLenght;a++)
			{
				random=rand();
				
				bCheck=1;
				for (int b=0;b<a;b++)
					if (random%ChessBoradLenght==ChromosomeMatrix[b][index])
						bCheck=0;
				if (bCheck)
					ChromosomeMatrix[a][index]=random%ChessBoradLenght;
				else
					a--;
			}

}
void CGAQueen::PopulationSort()
{
	bool k=1;
	int Temp;
	while(k)
	{
		k=0;
		for (int i=0;i<=Population-2;i++)
		{
			if (CostMatrix[i]>CostMatrix[i+1])	
			{
				Temp=CostMatrix[i];
				CostMatrix[i]=CostMatrix[i+1];
				CostMatrix[i+1]=Temp;
				
			for (int j=0;j<ChessBoradLenght;j++)
			{
				Temp=ChromosomeMatrix[j][i];
				ChromosomeMatrix[j][i]=ChromosomeMatrix[j][i+1];
				ChromosomeMatrix[j][i+1]=Temp;
			}			
			k=1;
			}
		}
	}
}
void CGAQueen::Mating()
{
	int TempMatrix[30][2];
	int TempMatrix0[30],TempMatrix1[30];
	int Temp,j,k;

	for (int index=0;index<=(Population/4)-1;index++)
		for (int t=0;t<=1;t++)
		{
			
			for(int i=0;i<ChessBoradLenght;i++)
			{
				TempMatrix0[i]=ChromosomeMatrix[i][2*index];
				TempMatrix1[i]=ChromosomeMatrix[i][2*index+1];
			}
			for (i=0;i<ChessBoradLenght;i++)
				if(CrossOverMatrix[i][2*index+t]==0)
				{
					for (j=0;j<ChessBoradLenght;j++)
						if(TempMatrix0[j]!=100)	
						{
							TempMatrix[i][t]=TempMatrix0[j];
							Temp=TempMatrix0[j];
							TempMatrix0[j]=100;
							j=ChessBoradLenght-1;
						
							for (k=0;k<ChessBoradLenght;k++)
							{
								if (TempMatrix1[k]==Temp)
								{
									TempMatrix1[k]=100;
									k=ChessBoradLenght-1;
								}
							}
						}
				}
				else
				{
					for (j=0;j<ChessBoradLenght;j++)
						if(TempMatrix1[j]!=100)	
						{
							TempMatrix[i][t]=TempMatrix1[j];
							Temp=TempMatrix1[j];
							TempMatrix1[j]=100;
							j=ChessBoradLenght-1;
						
							for (k=0;k<ChessBoradLenght;k++)
							{
								if (TempMatrix0[k]==Temp)
								{
									TempMatrix0[k]=100;
									k=ChessBoradLenght-1;
								}
							}
						}
				}

		for(i=0;i<ChessBoradLenght;i++)
			ChromosomeMatrix[i][2*index+Population/2+t]=TempMatrix[i][t];
		
		}

	
}
void CGAQueen::GenerateCrossOverMatrix()
{
	// generate a matrix with random 0's and 1's
	int randomCrossOver;
	for (int index=0;index<=Population-1;index++)
		for (int a=0;a<ChessBoradLenght;a++)
		{
			randomCrossOver=rand();
			CrossOverMatrix[a][index]=randomCrossOver%2;
		}

}
void CGAQueen::ApplyMutation()
{
	// a random for selecting chromosome
	// a random for selecting genes from selected chromosome

	int randomChromosome;
	int randomGen0,randomGen1;
	int Temp;
	// the following formula is a mutation formula to obtain the number of Mutation
	int NumberOfMutation=int(MutationRate*(Population-1)*ChessBoradLenght);
	
	for(int k=0;k<=NumberOfMutation;k++)
	{
		randomChromosome=0;
		while((randomChromosome=rand()%Population)==0);// random chromosome exept number 0
			
		randomGen0=rand()%ChessBoradLenght;// random genes from chromosome
		while((randomGen1=rand()%ChessBoradLenght)==randomGen0);
		
		// Apply Mutation
		Temp=ChromosomeMatrix[randomGen0][randomChromosome];
		ChromosomeMatrix[randomGen0][randomChromosome]=ChromosomeMatrix[randomGen1][randomChromosome];
		ChromosomeMatrix[randomGen0][randomChromosome]=Temp;
	}
	
}
void CGAQueen::FillArea(int index)
{
	// to Fill Area with Desired Solution Matrix
	Clear();
	for (int i=0;i<ChessBoradLenght;i++)
		area[i][ChromosomeMatrix[i][index]]=1;

	// after this if there is a queen in a cell , its value will be 1
	// The other cells value will be 0


}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人网页在线观看| 91黄色小视频| 色狠狠桃花综合| 日韩精品一区二区三区老鸭窝| 亚洲手机成人高清视频| 狠狠v欧美v日韩v亚洲ⅴ| 欧美在线你懂的| 国产精品不卡在线观看| 久久草av在线| 欧美精品色一区二区三区| 国产精品久久久久久久久快鸭| 韩国av一区二区| 日韩午夜精品视频| 怡红院av一区二区三区| 成人av免费观看| 国产情人综合久久777777| 麻豆国产欧美日韩综合精品二区| 色悠久久久久综合欧美99| 国产精品情趣视频| 高清久久久久久| 久久久久久久久久久黄色| 久久av资源站| 精品国产成人系列| 蜜桃久久精品一区二区| 在线成人av网站| 丝袜美腿一区二区三区| 91麻豆精品国产91久久久更新时间 | 久久亚洲欧美国产精品乐播 | 亚洲丝袜另类动漫二区| www.色精品| 1区2区3区欧美| 色婷婷av一区二区三区软件 | 欧美做爰猛烈大尺度电影无法无天| 亚洲欧洲av色图| 91免费国产在线观看| 亚洲乱码国产乱码精品精98午夜| 波多野结衣在线aⅴ中文字幕不卡| 国产日韩三级在线| 不卡大黄网站免费看| 亚洲欧洲精品成人久久奇米网| av一本久道久久综合久久鬼色| 日韩伦理免费电影| 在线观看一区二区精品视频| 日韩精品欧美成人高清一区二区| 欧美一区二区三级| 韩国欧美国产1区| 国产欧美日韩另类一区| 99精品国产99久久久久久白柏 | 国产精品美女久久久久久久 | 国产91精品一区二区麻豆网站| 亚洲在线视频免费观看| 欧美日韩精品一区二区三区四区| 三级精品在线观看| 久久在线免费观看| 成人高清在线视频| 香港成人在线视频| 欧美精品一区二区久久婷婷| 成人午夜av影视| 午夜久久久久久| 精品动漫一区二区三区在线观看| 成人免费毛片aaaaa**| 亚洲午夜久久久久久久久电影院 | 青青草国产精品97视觉盛宴| 久久伊99综合婷婷久久伊| 99久久国产综合精品麻豆| 亚洲a一区二区| 国产日韩欧美精品电影三级在线| 91免费国产视频网站| 日日夜夜精品视频天天综合网| 久久久久久久久久电影| 欧美中文字幕不卡| 国产精品一线二线三线| 亚洲一区二区偷拍精品| 国产色一区二区| 欧美日韩国产经典色站一区二区三区 | 精品一区二区三区的国产在线播放 | 一个色综合av| 久久久久久免费| 欧美日本国产视频| av在线播放不卡| 经典三级视频一区| 亚洲成人黄色影院| 国产精品视频在线看| 欧美一卡在线观看| 一本大道久久a久久精二百| 久久国产剧场电影| 亚洲aaa精品| 亚洲欧美日韩在线播放| 久久综合色之久久综合| 精品欧美一区二区三区精品久久 | 国内精品第一页| 亚洲成a人片综合在线| 国产精品福利影院| 国产日韩成人精品| 欧美精品一区二区三区在线| 欧美日本国产视频| 91福利国产成人精品照片| 成人中文字幕在线| 韩国精品久久久| 久久精品噜噜噜成人88aⅴ| 亚洲一二三四区| 一区二区三区免费观看| 国产精品久久久久aaaa樱花| 国产日本亚洲高清| 久久久久久久av麻豆果冻| 日韩一区二区在线看片| 7777精品伊人久久久大香线蕉的 | 亚洲地区一二三色| 亚洲自拍都市欧美小说| 亚洲免费成人av| 日韩美女视频一区| 亚洲精品第一国产综合野| 亚洲欧洲精品一区二区精品久久久 | 久久九九影视网| 精品福利在线导航| 久久久99免费| 国产日韩欧美不卡| 国产精品日日摸夜夜摸av| 日本一区二区三区四区在线视频 | 欧美大肚乱孕交hd孕妇| 欧美大片免费久久精品三p| 精品成人在线观看| 久久精品欧美日韩精品| 日韩二区在线观看| 亚洲成人tv网| 免费不卡在线视频| 国产在线精品免费av| 国产福利精品导航| aaa欧美大片| 欧美影院一区二区| 欧美一区二区免费视频| 久久影院电视剧免费观看| 国产精品久久久久久久久免费桃花 | 久久久久国产精品麻豆ai换脸| 国产亚洲精品福利| 亚洲欧美日韩久久| 亚洲1区2区3区4区| 激情五月激情综合网| www.亚洲免费av| 欧美日韩国产影片| 精品国产免费久久| 国产精品久久久久影院老司| 亚洲精品视频一区二区| 麻豆精品一二三| a级精品国产片在线观看| 欧美亚洲国产bt| 26uuu亚洲综合色欧美| 综合婷婷亚洲小说| 麻豆国产欧美一区二区三区| 成人丝袜18视频在线观看| 欧美色偷偷大香| 国产日产精品1区| 亚洲大片在线观看| 成人三级在线视频| 欧美一区二区三区影视| 国产精品人成在线观看免费 | 一区二区三区在线影院| 蜜桃在线一区二区三区| 99久久久国产精品免费蜜臀| 337p亚洲精品色噜噜噜| 中文字幕在线不卡国产视频| 蜜臀av性久久久久av蜜臀妖精| 91免费观看在线| 精品国产一区二区亚洲人成毛片| 樱花草国产18久久久久| 国产成人亚洲综合a∨猫咪 | 色婷婷综合激情| 久久久.com| 久久精品国产亚洲高清剧情介绍| 91在线高清观看| 久久久久免费观看| 美腿丝袜在线亚洲一区| 欧美在线播放高清精品| 国产精品久久国产精麻豆99网站| 麻豆精品在线播放| 欧美日韩久久一区二区| 亚洲美女一区二区三区| 国产ts人妖一区二区| 26uuu精品一区二区 | 亚洲国产精品久久人人爱| 成人动漫视频在线| 欧美精品一区二区三区一线天视频| 午夜欧美一区二区三区在线播放| 91视频在线看| 国产精品国产馆在线真实露脸| 国产精品一区二区不卡| 日韩欧美电影一二三| 日本成人在线看| 8x福利精品第一导航| 亚洲国产中文字幕| 色综合激情五月| 亚洲乱码一区二区三区在线观看| 波多野结衣中文字幕一区二区三区 | 制服视频三区第一页精品| 亚洲电影一级片| 欧美伦理影视网| 日韩高清欧美激情| 91精品国产91热久久久做人人| 国产ts人妖一区二区| 久久午夜色播影院免费高清|