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

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

?? gaonkp.cpp

?? 利用遺傳算法解決背包問題
?? CPP
字號:
#include "GAonKP.h"
#include <time.h>
#include <math.h>
#include <iostream>
#include <stdio.h>
using namespace std;
CGAonKP::CGAonKP()
{
	index=0;
	nindex=1;
	EndValue=0;
	EndWeight=0;
	
}
CGAonKP::~CGAonKP()
{
	delete [] Element;
	Element=0;
	delete[] adaptive_value;
	delete[] Wheel;
	delete[] Endx;
	Endx=0;
	Wheel=0;
	adaptive_value=0;
	

}
long CGAonKP::ReadInt(FILE* in)
{
	char dum, dummy[128];
	for(;;)
	{
		fscanf(in,"%s", dummy);
		if(dummy[0]=='#' && strlen(dummy)>1 && dummy[strlen(dummy)-1]=='#') {}//單行#----#
		else if(dummy[0]=='#') 
		{
			do
			{
				fscanf(in,"%c", &dum);//多行連接#-----
				//-----#                		                 
			} while(dum!='#');
		}
		else                   
		{
			return atoi(dummy); //讀到數(shù)據(jù)將其轉(zhuǎn)化為int型數(shù)存儲
		} 
	}

}
double CGAonKP::ReadDouble(FILE* in)
{
	char dum, dummy[128];
	for(;;)
	{
		fscanf(in,"%s", dummy);
		if(dummy[0]=='#' && strlen(dummy)>1 && dummy[strlen(dummy)-1]=='#') {}
		else if(dummy[0]=='#') 
		{
			do
			{
				fscanf(in,"%c", &dum);
			} while(dum!='#');
		}
		else                   
		{
			return atof(dummy); //atof是什么函數(shù)/轉(zhuǎn)化為什么型的數(shù)是double還是float型數(shù)據(jù)
			break;
		} 
	}

}
double CGAonKP::GetSum(int *che)
{
	double sum=0;
	for (int i=0;i<chN;i++)
	{
		if (che[i])
		{
			sum+=Element[i][0];
		}
	}
	return sum;
}
double CGAonKP::GetAdaptiveValue(int *che)
{
	double sum=0;
	for (int i=0;i<chN;i++)
	{
		if (che[i])
		{
			sum+=Element[i][1];
		}
	}

	return sum;
}
void CGAonKP::GetAdaVector()
{
	for (int i=0;i<scale;i++)
	{
		adaptive_value[i]=GetAdaptiveValue(x_m[index].pMatrix[i]);
		if (adaptive_value[i]>EndValue)
		{
			EndValue=adaptive_value[i];
			for (int j=0;j<chN;j++)
			{
				Endx[j]=x_m[index].pMatrix[i][j];
				EndWeight=GetSum(x_m[index].pMatrix[i]);
			}
		}
	}
}
void CGAonKP::GetWheel()
{
	double sum=0;
	int i;
	for (i=0;i<scale;i++)
	{
		sum+=adaptive_value[i];
	}
	for (i=0;i<scale;i++)
	{
		Wheel[i]=adaptive_value[i]/sum;
	}
	for (i=1;i<scale;i++)
	{
		Wheel[i]+=Wheel[i-1];
	}
}
void CGAonKP::SelectV()
{
	double temp;
	int i,j;
	int* h_v=new int[scale];
	for (i=0;i<scale;i++)
	{
		temp=RandomDist(0,1);
		if (temp<=Wheel[0])
		{
			h_v[i]=0;
		}
		else
		{
			for (j=1;j<scale;j++)
			{
				if (temp<=Wheel[j]&&temp>Wheel[j-1])
				{
					h_v[i]=j;
					break;
				}
			}
		}
	}
	for (i=0;i<scale;i++)
	{
		for (j=0;j<chN;j++)
		{
			x_m[nindex].pMatrix[i][j]=x_m[index].pMatrix[h_v[i]][j];
		}
	}
	delete[] h_v;
}
void CGAonKP::HybriVariat()
{
	int tempi,tempj;
	int temp;
	int i,j;
	for (i=0;i<scale;i++)
	{
		if (RandomDist(0,1)<pc)
		{
			do
			{
				tempi=rand()%chN;
				tempj=rand()%chN;
				temp=x_m[nindex].pMatrix[i][tempi];
				x_m[nindex].pMatrix[i][tempi]=x_m[nindex].pMatrix[i][tempj];
				x_m[nindex].pMatrix[i][tempj]=temp;
			}while (!JudgeSatis(x_m[nindex].pMatrix[i]));

			if (RandomDist(0,1)<pm)
			{
				do
				{
					tempi=rand()%chN;
					temp=rand()%2;
					x_m[nindex].pMatrix[i][tempi]=temp;
				}while (!JudgeSatis(x_m[nindex].pMatrix[i]));
			}

		}
		
	}

}
bool CGAonKP::JudgeSatis(int* che)
{
	if (MaxWeight<GetSum(che))
	{
		return false;
	}
	return true;
}

void CGAonKP::Initial(FILE* fp)
{
	

	int i,j;
	chN=ReadInt(fp);
	Wheel=new double[scale];
	Element=new double[chN][2];
	Endx=new int[chN];
	for (i=0;i<chN;i++)
	{
		Element[i][0]=ReadDouble(fp);
		Element[i][1]=ReadDouble(fp);
	}
	for (i=0;i<chN;i++)
		if (MaxWeight>=Element[i][0]) break;
	if (i==chN)
	{
		cout<<"對不起任何備選物品中質(zhì)量都大于您輸入的背包允許質(zhì)量!"<<endl;
		exit(0);
	}
	adaptive_value=new double[scale];
	x_m[index].ObtainMemory(scale,chN);
	x_m[nindex].ObtainMemory(scale,chN);
	for (i=0;i<scale;i++)
	{
		do
		{
			for (j=0;j<chN;j++)
			{
				x_m[index].pMatrix[i][j]=rand()%2;
			}
		}while (!JudgeSatis(x_m[index].pMatrix[i]));
	}
	
	
}
double CGAonKP::RandomDist(int a, int b)
{
	if(a==b){cout<<"illegal Argument!"<<endl; exit(0);}
	return ((double)rand()/RAND_MAX * (b-a) + a);
}
/********************************************************************************/
/* 函數(shù)名: GetSolute(double max_weight,double PC,double PM,int chn,int max_gen)*/
/*   參數(shù):max_weight 背包允許最大財寶質(zhì)量                                      */
/*           PC         雜交概率                                                */
/*           PM         變異概率                                                */
/*           SCALE      種群規(guī)模                                                */
/*           max_gen    最大進(jìn)化代數(shù)                                            */
/********************************************************************************/
void CGAonKP::GetSolute(double max_weight,double PC,double PM,int SCALE,int max_gen,FILE* fp)
{
	MaxWeight=max_weight;
	pc=PC;
	pm=PM;
	scale=SCALE;
	maxgen=max_gen;
	srand((int)time(0));
	Initial(fp);
	GetAdaVector();
	for (int k=0;k<max_gen;k++)
	{	
	
		GetWheel();
		SelectV();
		HybriVariat();
		if (index)
		{
			index=0;
			nindex=1;	
		}
		else
		{
			index=1;
			nindex=0;
		}
		GetAdaVector();
	}

	int i;
	cout<<endl<<endl<<"輸出運(yùn)算結(jié)果:"<<endl;
	cout<<"最后結(jié)果價值總量:"<<EndValue<<endl;
	cout<<"最后結(jié)果質(zhì)量:"<<EndWeight<<endl;
	cout<<"最后結(jié)果所選個體:"<<endl;
	for (i=0;i<chN;i++)
	{
		cout<<Endx[i]<<"  ";
	}
	cout<<endl;
	
	FILE* fpout=fopen("output.txt","w");
	fprintf(fpout,"程序運(yùn)行結(jié)果輸出\n");
	fprintf(fpout,"最后結(jié)果價值總量:\n");
	fprintf(fpout,"%g\n",EndValue);
	fprintf(fpout,"最后結(jié)果質(zhì)量:\n");
	fprintf(fpout,"%g\n",EndWeight);
	fprintf(fpout,"最后結(jié)果所選個體:\n");
	for (i=0;i<chN;i++)
	{
		fprintf(fpout,"%d ",Endx[i]);
	}
	fprintf(fpout,"\n");
	fclose(fpout);

}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本一区二区免费在线观看视频 | 激情偷乱视频一区二区三区| 欧美日本免费一区二区三区| 亚洲成av人片一区二区| 欧美日韩一级片在线观看| 婷婷国产在线综合| 日韩女优av电影在线观看| 精品一区免费av| 日本一二三不卡| 色偷偷成人一区二区三区91| 亚洲国产精品久久人人爱蜜臀| 欧美一级高清片| 成人国产电影网| 一区二区三区在线视频免费 | 激情欧美日韩一区二区| 国产欧美精品一区二区色综合朱莉| 成人av电影免费在线播放| 亚洲精品国产无套在线观| 日韩一级黄色片| 成人av免费在线播放| 日韩精品色哟哟| 中文字幕不卡一区| 6080国产精品一区二区| 国产精品一区二区在线播放 | 91精品在线免费| 国产成人av影院| 亚洲成a人v欧美综合天堂| 亚洲国产aⅴ成人精品无吗| 91精品国产日韩91久久久久久| 国产黄人亚洲片| 亚洲成av人片在线观看无码| 久久久99精品久久| 欧美高清dvd| 97久久人人超碰| 国内成+人亚洲+欧美+综合在线| 依依成人精品视频| 国产视频一区二区在线| 欧美精品高清视频| 91在线播放网址| 国产精品一区二区不卡| 丝袜美腿亚洲综合| 一区二区三区色| 国产精品天美传媒| 欧美大片国产精品| 欧美日本免费一区二区三区| 99riav一区二区三区| 国产在线麻豆精品观看| 青青草视频一区| 亚洲国产美女搞黄色| 亚洲欧美中日韩| 久久久影视传媒| 日韩色在线观看| 56国语精品自产拍在线观看| 在线视频亚洲一区| 色综合天天综合给合国产| 国产伦精品一区二区三区免费 | 五月激情丁香一区二区三区| 综合久久久久久| 国产精品久久久久四虎| 国产清纯白嫩初高生在线观看91 | 成人动漫精品一区二区| 国产一区二区看久久| 九九精品一区二区| 久久不见久久见免费视频1| 性久久久久久久久| 亚洲va国产天堂va久久en| 一个色综合网站| 亚洲小少妇裸体bbw| 一区二区三区四区视频精品免费 | 不卡一区二区在线| 成人丝袜视频网| 成人网页在线观看| a级精品国产片在线观看| 成人高清伦理免费影院在线观看| 国产乱码一区二区三区| 风流少妇一区二区| 成人激情视频网站| 91浏览器在线视频| 在线观看不卡视频| 欧美日韩精品高清| 91精品国产乱| 91精品国产一区二区| 日韩视频在线你懂得| 久久综合九色欧美综合狠狠| 蜜臀av在线播放一区二区三区| 久久黄色级2电影| 日韩黄色一级片| 久久99久国产精品黄毛片色诱| 蜜桃久久精品一区二区| 国产一区二区福利视频| 成人一区在线看| 色婷婷综合在线| 欧美美女黄视频| 精品免费日韩av| 日本一区二区三级电影在线观看 | 国产福利一区二区三区在线视频| 欧美片网站yy| 欧美一级片在线观看| 久久久综合激的五月天| 国产精品久久久一区麻豆最新章节| 久久99这里只有精品| 亚洲成人动漫av| 精品一区二区av| av中文字幕不卡| 欧美日韩高清一区二区不卡 | 欧美日韩一级二级| 日韩片之四级片| 中文字幕av在线一区二区三区| 亚洲一二三四在线观看| 久久国产精品色婷婷| 99视频精品在线| 欧美一级片在线看| 国产精品拍天天在线| 亚洲综合色噜噜狠狠| 国内不卡的二区三区中文字幕| www.激情成人| 日韩女优电影在线观看| 国产精品久久99| 久久超碰97人人做人人爱| 91亚洲男人天堂| 久久影院电视剧免费观看| 悠悠色在线精品| 国产成人亚洲综合a∨婷婷图片| 在线观看日韩av先锋影音电影院| 首页国产欧美日韩丝袜| 高清免费成人av| 91精品国产91久久久久久最新毛片| 中文字幕欧美三区| 麻豆91免费看| 精品视频色一区| 国产精品国产三级国产| 黄页网站大全一区二区| 欧美日韩亚洲国产综合| 日韩伦理免费电影| 国产成人精品www牛牛影视| 7777精品久久久大香线蕉| 1区2区3区国产精品| 国产一区二区三区在线看麻豆| 欧美日韩成人综合| 自拍偷拍亚洲综合| 成人黄色软件下载| 26uuu精品一区二区在线观看| 石原莉奈一区二区三区在线观看| 成人av在线播放网站| 久久久综合精品| 九九精品视频在线看| 欧美一区2区视频在线观看| 亚洲福利一二三区| 色婷婷国产精品久久包臀| 中文字幕一区av| 成人免费高清视频| 欧美精彩视频一区二区三区| 国产毛片精品视频| xnxx国产精品| 精品亚洲国产成人av制服丝袜 | 久久蜜臀精品av| 狠狠色丁香九九婷婷综合五月| 91精品国产综合久久婷婷香蕉| 午夜天堂影视香蕉久久| 欧美亚州韩日在线看免费版国语版| 1000部国产精品成人观看| 99视频在线观看一区三区| **网站欧美大片在线观看| 91在线精品秘密一区二区| 亚洲丝袜制服诱惑| 91美女视频网站| 亚洲精品一二三区| 欧美亚洲高清一区| 丝袜脚交一区二区| 欧美电影免费观看完整版| 久久国产精品色婷婷| 26uuu国产电影一区二区| 国产一区二区在线免费观看| 久久久久久**毛片大全| 成人免费av资源| 亚洲人成影院在线观看| 在线观看日韩一区| 日本伊人午夜精品| 久久久亚洲国产美女国产盗摄| 国产成人a级片| 亚洲精品伦理在线| 欧美日韩精品一区二区三区蜜桃 | 图片区小说区国产精品视频| 91.xcao| 国内外成人在线| 中文字幕av一区二区三区| 国产欧美精品一区二区色综合| 91性感美女视频| 日韩主播视频在线| 国产免费观看久久| 在线影视一区二区三区| 蜜臀久久久久久久| 国产日韩欧美一区二区三区综合 | 欧美日韩在线观看一区二区| 肉丝袜脚交视频一区二区| 久久女同精品一区二区| 99久久久久久99| 青青草97国产精品免费观看无弹窗版 | 久久精品国产在热久久| 国产精品视频你懂的|