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

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

?? gatest.cpp

?? 求VC++基于遺傳算法的流水線車間調度問題
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
// GATest.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
//#include <GATest.h>
#include <stdio.h>
#include <iostream.h>
#include <math.h>
 #include <stdlib.h> 
#include <time.h> 


/*工件加工時間數組*/
int t[5][4]={{3,4,5,3},{9,5,8,3},{5,7,9,2},{2,5,9,1},{7,8,2,3}};
/*總體適應度值*/
float sumfit=0;  
int sumtime=0;   //種群總加工時間
/*染色體編碼*/
int vold[10][5];
int totaltime[10]; /*各染色體加工總時間*/
int waittime[10]={0,0,4,0,5,0,6,0,0,0};/*各染色體加工等待時間*/
float voldfitness[10]={0,0,0,0,0,0,0,0,0,0};   /*記錄染色體適應度*/
int comp;   /*記錄歷次迭代最優染色體的加工時間*/

struct chromnode    /*設計結構體使染色體和其適應度函數相關聯*/
{	
	int chrom[5]; 
	float fitness;
}bestchrom,wrostchrom;

chromnode chrompop[10];   /*種群數組*/
chromnode newchrompop[10];    /*新種群數組*/
chromnode midchrompop[7];/*迭代中間優等種群*/


int temp[5][4];  /*按染色體工件序列加工時間矩陣*/
int tstart[5][4];  /*按染色體工件序列開始加工時間矩陣*/
int tover[5][4];   /*按染色體工件序列結束加工時間矩陣*/
int mupos[4][2];   /*記錄染色體變異基因位位置*/

/*函數聲明部分*/
int rndom(); /*在整數low和high之間產生一個隨機整數*/
void randomsel(float* array,int num);     /*生成0-1之間的浮點數*/
void murandom(int posarray[1][2]);  /*產生二維隨機數組記錄染色體變異位置*/

void initialpop(int &v);    /*種群初始化*/
bool retreat(int i,int j);    /*查看染色體中是否有重復*/
int calcutime(int array[5][4]);    /*計算各染色體排列樹的相關加工時間*/

void copychrom(chromnode &chromx,chromnode &chromy);    /*將chromy復制到chromx*/
void dispchrom(chromnode node,FILE *fp);       /*輸出染色體的值*/
void dispchrompop(chromnode structarray[10],FILE *fp);       /*輸出各染色體種群中的所有染色體的值*/
void reversechrom(int array[5],int posx,int posy);   /*將兩個位置之間的染色體順序倒置*/
void chromsort(chromnode pop[10]);    /*對染色體種群進行排序*/
void relatearray(int testchr[5]);  /*按照染色體序列將加工時間數組重新排列*/
void calfitness(int array[10][5]);      /*以數組為參數計算種群適應度的值并排序*/
void calchromfit(chromnode pop[10]);    /*以種群為參數計算種群適應度值——calfitness,并排序*/
int fittotime(chromnode para);   /*求出染色體適應度的加工時間*/
void caloptchrompt(chromnode pop[10]);     /*求出種群中最優染色體*/

void preselect(double pmsum[10],double randarray[10],int sortarray[10]);   /*確定選擇染色體位置*/
void select(chromnode pop[10],chromnode subpop[10]);    /*選擇算子*/
void mutation(chromnode pop[1]);    /*變異算子*/
void generate(chromnode pop[10],chromnode subpop[10]);     /*迭代產生新一代種群*/



int max(int a,int b)
{
	if(a>=b)
		return a;
	else
		return b;
}

int min(int a,int b)
{
	if(a<=b)
		return a;
	else
		return b;
}


int rndom() /*在整數low和high之間產生一個隨機整數*/
{
     
     
     return (rand()%5+1) ;
	 
 
}

void randomsel(double* array,int num)
{
	for(int i = 0; i < num; i++) 
	{ 
	double fRand = (double)(rand()%1000)/1000 ;   //將隨機數映射到0 -- 1區間內
		array[i] = fRand; 

	} 


}

void murandom(int posarray[4][2])   /*產生二維隨機數組記錄染色體變異位置*/
{
	for(int i=0;i<4;i++)
	{
		int posx=0;
		int posy=0;
		while(posx==posy)
		{
			posx=rand()%5;
			posy=rand()%5;
		}
		posarray[i][0]=min(posx,posy);
		posarray[i][1]=max(posx,posy);
		
	}

}

bool retreat(int i,int j)    /*查看染色體中是否有重復*/
{
	for(int t = 0;t < j;t++)
		{
			int seek = vold[i][t];
			
			if(seek == vold[i][j])
			{
				return true;
			}
			 
         }
	return false;
}


int calcutime(int array[5][4])    /*計算各染色體排列樹的相關加工時間*/
{
	
	for(int m=0;m<5;m++)     /*計算機器加工工件的開始時間和結束時間*/
	{
		for(int n=0;n<4;n++)
			{
				   /*對每條染色體中的第一個工件的加工時間的計算*/
				
					if(m==0&&n==0)tstart[m][n]=0;      //機器最先開始時間為0
					
					if(m==0&&n>0)
					{
						tover[m][n-1] = tstart[m][n-1] + array[m][n-1];
						tstart[m][n] = tover[m][n-1];
						if(n==3)tover[m][n]=tstart[m][n]+array[m][n];

					}
					
					if(m>0&&n==0)
					{
						tstart[m][n]=tover[m-1][n];
						tover[m][n]=tstart[m][n]+array[m][n];   
					
					}
					
					
					if(m>0&&n>0)
					{
						tstart[m][n]=max(tover[m][n-1],tover[m-1][n]);    /*只有當此刻機器加工結束并且此刻需要加工的工件在前一個機器上已經加工完畢時才可以繼續加工*/
						tover[m][n]=tstart[m][n]+array[m][n];
					}

			}
			
		}

		int totaltime=tover[4][3];
		return totaltime;
		
}

int calwaittime(int array[5][4])
{
	int wtime=0;
	for(int i=0;i<5;i++)
	{
		for(int j=0;j<4;j++)
		{
			if(i>=1)
			{
				if(array[i-1][j+1] > array[i][j])
				wtime = wtime + array[i-1][j+1]-array[i][j];
			}
		}
	}

	return wtime;

}

void copychrom(chromnode &chromx,chromnode &chromy)    /*將chromy復制到chromx*/
{
	for(int w=0;w<5;w++)
	{
		chromx.chrom[w]=chromy.chrom[w];
	}
	chromx.fitness=chromy.fitness;
}


void reversechrom(int array[5],int posx,int posy)   /*將兩個位置之間的染色體順序倒置*/
{
	int temp;
	while(posx<=posy)
	{
		temp=array[posx];
		array[posx]=array[posy];
		posx++;
		array[posy]=temp;
		posy--;
	}
}


void chromsort(chromnode pop[10])    /*對染色體種群進行排序*/
{
	chromnode tpsn;    /*染色體交換中轉站*/
	for(int i=0;i<9; i++)
	{
		tpsn.fitness = pop[i].fitness ;
	
		for(int j=i+1;j<10;j++)
		{
			if(pop[i].fitness <= pop[j].fitness  )
			{	
				copychrom(tpsn,pop[j]);
				copychrom(pop[j],pop[i]);
				copychrom(pop[i],tpsn);
			}
		}
		
	}

}


void relatearray(int testchr[5])  /*按照染色體序列將加工時間數組重新排列*/
{
	for(int m=0;m<5;m++)
		{
			
			int tpos=testchr[m]-1;

			for(int n=0;n<4;n++)
			{					
				temp[m][n]=t[tpos][n];
				
			}

		}
     
}


void calfitness(int array[10][5])      /*以數組為參數計算種群適應度的值并排序*/
{
		int testchrom[5]={0,0,0,0,0};  /*存儲群體中的染色體序列*/
	

	for(int i=0;i<10;i++)
	{
		for(int j=0;j<5;j++)
		{
			testchrom[j]=array[i][j];
			relatearray(testchrom);   /*重組加工時間數組*/
			chrompop[i].chrom[j]=array[i][j];							/*將當前染色體序列復制到種群結構體*/
		}
			totaltime[i] = calcutime(temp);      /*計算當前染色體適應度(加工總時間)*/
			//waittime[i] = calwaittime(tover);
			voldfitness[i]=1/(float)totaltime[i];
			
	}
	chromsort(chrompop);

	
}


void calchromfit(chromnode pop[10])    /*以種群為參數計算種群適應度值——calfitness,并排序*/
{
	int dupli[10][5];
	for(int i=0;i<10;i++)
	{
		for(int j=0;j<5;j++)
		{
			dupli[i][j]=pop[i].chrom[j];
		}
	}
	calfitness(dupli);
	
	for(int k=0;k<10;k++)
	pop[k].fitness = voldfitness[k];
	/*for(int k=0;k<10;k++)
	{
		pop[k].fitness = float(100-voldfitness[k]*100);
		if(pop[k].fitness>80)pop[k].fitness-=10;
		else if(pop[k].fitness <50)pop[k].fitness+=10;

	}*/
	
}

int  fittotime(chromnode para)   /*求出染色體適應度的加工時間*/
{
	int stake[5];
	int time;
	for(int i=0;i<5;i++)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
不卡在线观看av| 丰满放荡岳乱妇91ww| 亚洲欧美一区二区三区极速播放| 久久影院午夜论| 久久久久亚洲综合| 久久嫩草精品久久久精品一| 欧美va亚洲va香蕉在线| 日韩一区二区不卡| 精品国产人成亚洲区| 精品女同一区二区| 国产欧美精品区一区二区三区| 欧美精品一区二区三| 久久综合久久综合亚洲| 国产欧美综合在线观看第十页 | 亚洲欧美一区二区视频| 日本一区二区视频在线观看| 亚洲欧美综合色| 亚洲一区视频在线观看视频| 日本va欧美va欧美va精品| 蜜桃视频在线一区| 成人免费观看男女羞羞视频| 91久久精品一区二区二区| 91精品国产色综合久久不卡电影 | 亚洲综合一区二区| 偷拍亚洲欧洲综合| 激情综合色综合久久| 成人精品高清在线| 欧美日韩亚洲综合| 久久一二三国产| 中文字幕亚洲综合久久菠萝蜜| 一区二区三区欧美在线观看| 麻豆国产精品777777在线| 国产福利精品导航| 色香色香欲天天天影视综合网| 欧美精品丝袜中出| 国产精品蜜臀在线观看| 亚洲线精品一区二区三区 | 国产成人在线电影| 欧美在线三级电影| 国产欧美视频一区二区| 亚洲自拍都市欧美小说| 狠狠色狠狠色综合| 91福利资源站| 欧美国产一区在线| 免费在线成人网| 色素色在线综合| 久久人人97超碰com| 天堂va蜜桃一区二区三区 | 亚洲第一av色| 成人免费黄色大片| 精品国产免费久久| 五月综合激情网| caoporen国产精品视频| 精品国产乱码久久久久久老虎| 亚洲视频一二三| 国产成人av一区二区三区在线 | 成人av先锋影音| 2020国产精品| 久久国产免费看| 欧美日韩精品欧美日韩精品一| 国产精品免费人成网站| 国产真实乱对白精彩久久| 337p亚洲精品色噜噜噜| 一片黄亚洲嫩模| 91丨porny丨国产入口| 久久久91精品国产一区二区精品| 日韩av在线播放中文字幕| 在线亚洲+欧美+日本专区| 国产精品久久久99| 成人精品视频一区二区三区尤物| 日韩精品中文字幕一区| 久久66热偷产精品| 欧美一级理论片| 日韩不卡免费视频| 日韩欧美的一区| 美女性感视频久久| 欧美一区二区高清| 久久99精品国产麻豆婷婷洗澡| 欧美一区在线视频| 精品一区二区三区在线视频| 欧美tickling挠脚心丨vk| 精品一区二区三区在线观看国产| 精品美女一区二区三区| 精品一区二区在线看| 久久精品亚洲精品国产欧美kt∨ | 久久国产夜色精品鲁鲁99| 日韩一区二区在线看| 日韩福利电影在线观看| 精品免费国产一区二区三区四区| 久久爱www久久做| 国产视频在线观看一区二区三区| 国产精品自产自拍| 国产精品国产自产拍高清av王其| 99视频一区二区| 亚洲品质自拍视频网站| 精品婷婷伊人一区三区三| 蜜臀av性久久久久蜜臀aⅴ流畅| 精品久久一区二区三区| 粉嫩在线一区二区三区视频| 中文字幕一区二区三区乱码在线| 91浏览器打开| 蜜桃av噜噜一区| 中文字幕不卡的av| 精品污污网站免费看| 国产一区二区三区在线观看免费视频| 亚洲国产成人午夜在线一区| 日本精品裸体写真集在线观看| 日精品一区二区| 国产日韩av一区| 日本高清成人免费播放| 免费日韩伦理电影| 亚洲欧美中日韩| 欧美成人精品高清在线播放| 91最新地址在线播放| 日韩高清在线观看| 亚洲欧洲在线观看av| 日韩一区国产二区欧美三区| 成人国产精品免费观看| 日本不卡中文字幕| 136国产福利精品导航| 日韩精品一区二区三区三区免费 | 99久久国产免费看| 久久成人综合网| 亚洲午夜羞羞片| 亚洲国产精品高清| 日韩亚洲欧美在线观看| 色综合天天综合网天天狠天天| 伦理电影国产精品| 亚洲一区免费在线观看| 国产精品麻豆久久久| 精品噜噜噜噜久久久久久久久试看| 99久久er热在这里只有精品15| 国产在线视频精品一区| 亚洲动漫第一页| 亚洲欧美激情小说另类| 久久久久久久久一| 日韩欧美一级二级三级| 欧美区在线观看| 色成人在线视频| av网站免费线看精品| 国产999精品久久久久久| 免费日韩伦理电影| 日产国产高清一区二区三区| 亚洲国产成人av网| 亚洲一区中文在线| 亚洲午夜在线电影| 亚洲国产精品一区二区尤物区| 最新国产精品久久精品| 国产精品午夜免费| 国产精品污网站| 国产精品欧美极品| 亚洲国产精品成人久久综合一区| 精品人伦一区二区色婷婷| 欧美电影精品一区二区| 欧美大白屁股肥臀xxxxxx| 欧美乱妇15p| 欧美一级二级在线观看| 日韩一级片网址| 欧美不卡一区二区| 久久久久久久久97黄色工厂| 久久精品一区二区| 国产精品欧美极品| 亚洲天天做日日做天天谢日日欢| 最近中文字幕一区二区三区| 日韩毛片高清在线播放| 樱桃国产成人精品视频| 亚洲成人自拍网| 日韩av网站免费在线| 久久99国产精品久久99| 国产激情精品久久久第一区二区 | 国产亚洲欧洲997久久综合| 国产亚洲va综合人人澡精品 | 美女一区二区在线观看| 国产在线不卡一卡二卡三卡四卡| 国产在线精品一区二区三区不卡 | 青青国产91久久久久久| 国产一区免费电影| 成av人片一区二区| 欧美日韩亚洲另类| 久久新电视剧免费观看| 亚洲色欲色欲www| 麻豆精品一二三| www.成人在线| 日韩一区二区三区在线视频| 国产精品三级av在线播放| 午夜欧美2019年伦理| 国产久卡久卡久卡久卡视频精品| 91在线视频观看| 日韩久久精品一区| 最新热久久免费视频| 久久99精品一区二区三区| 色综合久久久久综合体桃花网| 9191久久久久久久久久久| 国产女主播在线一区二区| 五月综合激情婷婷六月色窝| 成人不卡免费av| 欧美电影免费观看高清完整版在线| 国产精品久久综合| 蜜桃av一区二区| 欧美色手机在线观看|