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

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

?? yichuansuanfa.cpp

?? 圖像的智能算法
?? CPP
字號(hào):
// YIchuansuanfa.cpp: implementation of the YIchuansuanfa class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "YIchuansuanfa.h"
#include  <stdio.h>
#include  <stdlib.h>
#include   <math.h>
#define   POPSIZE      500   //人群總數(shù)
#define   MAXIMIZATION 1
#define   MINIMIZATION 2
#define   Cmax         100
#define   Cmin         0
#define   LENGTH1      10//第一代變量的染色體長度
#define   LENGTH2      10//第二代變量的染色體長度
    
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

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

YIchuansuanfa::YIchuansuanfa()
{
    FunctionMode=MAXIMIZATION;
	PopSize=80;
	Pc=0.6;//交叉概率0.6
	Pm=0.05;//變異概率0.01
	index=1;
}

YIchuansuanfa::~YIchuansuanfa()
{

}
void YIchuansuanfa::  main()
	{
		if (centernum!=0)
		{
			generation=0;
			GenerationInitialPopulation();
			EvaluatePopulation();
			while (generation<MaxGeneration)
			{
				generation++;
				GenerateNextPopulation();
				EvaluatePopulation();
				PerformEvolution();
			}
			for (int i=0;i<patternnum;i++)
			{
				m_pattern[i].category=currentbest.chrom[i];
			}
			
			CString s;
			s.Format("最優(yōu)解出現(xiàn)在第%d代",index);
			AfxMessageBox(s);
		}
		else
		{
			AfxMessageBox("類中心數(shù)目不能為0!");
			return;		
		}
	}
void YIchuansuanfa::GenerationInitialPopulation()
	{
		int  i,j;
		CHROMLENGTH=patternnum;
		for(i=0;i<PopSize;i++)
		{
			for(j=0;j<CHROMLENGTH;j++)//初始化染色體
			{
				population[i].chrom[j]=rand()%centernum+1;
			}
			population[i].chrom[CHROMLENGTH]='\0';
		}

	}
	void YIchuansuanfa::GenerateNextPopulation()
	{
		SelectionOperator();
		CrossoverOperator();
		MutationOperator();
	}
	void YIchuansuanfa::EvaluatePopulation()
	{
		CalculateObjectValue();
		CalculateFitnessValue();
		FindBestAndWorstIndividual();
	}
/*	long YIchuansuanfa::DecodeChromosome(char *string,int point,int length)
	{
		int i;
		long decimal=0L;
		char *pointer;
		for(i=0,pointer=string+point;i<length;i++,pointer++)
		{
			decimal+=(*pointer-'0')<<(length-1-i);
		}
		return (decimal);
	}*/
	void YIchuansuanfa::CalculateObjectValue()
	{
		if (m_center!=NULL)
			delete []m_center;
		m_center=new Center[patternnum];
		for (int t=0;t<centernum;t++)
		{
			m_center[t].index=t+1;
			m_center[t].patternnum=0;
			for (int m=0;m<N*N;m++)
				m_center[t].feature[m]=0.0;
		}

		double sumdistance;

		for(int i=0;i<PopSize;i++)//計(jì)算population[i]的value
		{
			for (int t=0;t<centernum;t++)
			{
				m_center[t].patternnum=0;
				for (int m=0;m<N*N;m++)
				m_center[t].feature[m]=0.0;
			}
			for (int j=0;j<centernum;j++)//算中心
			{
				for(int k=0;k<patternnum;k++)
				{
					if (population[i].chrom[k]==j+1)
					{
						m_center[j].patternnum++;
						for(int n=0;n<N*N;n++ )
							m_center[j].feature[n]+=m_pattern[k].feature[n];
					}
				}
				if (m_center[j].patternnum!=0)
				{
					for(int n=0;n<N*N;n++ )
						m_center[j].feature[n]/=(double)m_center[j].patternnum;
				}
			}

			sumdistance=0.0;	//cal value
			for ( j=0;j<centernum;j++)
			{
				for(int k=0;k<patternnum;k++)
				{
					if (population[i].chrom[k]==j+1)
					{
						sumdistance+=GetDistance(m_pattern[k],m_center[j],1);
					}
				}
			
			}
		
	    	population[i].value=sumdistance	;
		}

	}
	void YIchuansuanfa::CalculateFitnessValue()
	{	
		//按照value排序由小到大
		int i,j;
		for(i=0;i<PopSize;i++)
		{
			population[i].index=-1;
		}

		for (i=1;i<=PopSize;i++)
		{
			int index=0;
			for (j=0;j<PopSize;j++)
			{
				if (population[j].index==-1)
				{
					index=j;
					break;
				}
			}
			for(j=0;j<PopSize;j++)
			{
				if(population[j].index==-1 && population[j].value<population[index].value)
					index=j;
			}
			population[index].index=i;
		}
		//計(jì)算適應(yīng)度
		for(i=0;i<PopSize;i++)
		{
			double a=0.6;
			population[i].fitness=a*pow((1-a),population[i].index-1);
		}
	

	}
	void YIchuansuanfa::FindBestAndWorstIndividual()
	{
		int i;
		bestindividual=population[0];
		worstindividual=population[0];
		for(i=1;i<PopSize;i++)
		{
			if(population[i].value<bestindividual.value)
			{
				bestindividual=population[i];
				best_index=i;
			}else if(population[i].value>worstindividual.value)
			{
				worstindividual=population[i];
				worst_index=i;
			}
		}
		if(generation==0)
		{
			currentbest=bestindividual;
		}
		else
		{
			if(bestindividual.value<currentbest.value)
			{
				currentbest=bestindividual;
				index=generation;
			}
		}
	}
	void YIchuansuanfa::PerformEvolution()
	{
		if(bestindividual.value<currentbest.value)
		{
			currentbest=population[best_index];
		}else
		{
			population[worst_index]=currentbest;
		}
	}
	void YIchuansuanfa::SelectionOperator()
	{
		int i,index;
		double p,sum=0.0;
		double cfitness[POPSIZE];
		struct individual newpopulation[POPSIZE];
		for(i=0;i<PopSize;i++)
		{
			sum+=population[i].fitness;
		}
		for(i=0;i<PopSize;i++)
		{
			cfitness[i]=population[i].fitness/sum;
		}
		for(i=1;i<PopSize;i++)
		{
			cfitness[i]=cfitness[i-1]+cfitness[i];
		}
		for(i=0;i<PopSize;i++)
		{
			p=rand()%1000/1000.0;
			index=0;
			while(p>cfitness[index])
			{
				index++;
			}
			newpopulation[i]=population[index];
		}
		//選擇下一代群體
		for(i=0;i<PopSize;i++)
		{
			population[i]=newpopulation[i];
		}
	}
	void YIchuansuanfa::CrossoverOperator()
	{
		int i,j;
		int index[POPSIZE];
		int point=0,temp;
		double p;
		int  ch;
		for(i=0;i<PopSize;i++)
		{
			index[i]=i;
		}
		for(i=0;i<PopSize;i++)
		{
			point=rand()%PopSize-i;
			temp=index[i];
			index[i]=index[point+i];
			index[point+i]=temp;
		}
		//交叉操作
		for(i=0;i<PopSize-1;i+=2)
		{
			p=rand()%1000/1000.0;
			if(p<Pc)
			{
				point=(rand()%CHROMLENGTH-1)+1;
				for(j=point;j<CHROMLENGTH;j++)
				{
					ch=population[index[i]].chrom[j];
					population[index[i]].chrom[j]=population[index[i+1]].chrom[j];
					population[index[i+1]].chrom[j]=ch;
				}
			}
		}
	}
	void YIchuansuanfa::MutationOperator()
	{
		int i,j;
		double p;
		//變異
		for(i=0;i<PopSize;i++)
		{
			for(j=0;j<CHROMLENGTH;j++)
			{
				p=rand()%1000/1000.0;
				if(p<Pm)
				{
					population[i].chrom[j]=rand()%centernum+1;
				}
			}
		}
	}
	void YIchuansuanfa::OutputTextReport()
	{

		CString str,s;
		s.Format("%f",currentbest.value);
		str.Insert(str.GetLength(),"present best value: ");
		str.Insert(str.GetLength(),s);


		s.Format("第 %d 代",generation);
        str.Insert(str.GetLength(),"\n");
		str.Insert(str.GetLength(),s);
		str.Insert(str.GetLength(),"\n");

		for (int i=0;i<CHROMLENGTH;i++)
		{
			s.Format("%d",currentbest.chrom[i]);
			str.Insert(str.GetLength(),s);
		}
		AfxMessageBox(str);

	}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区日本一区韩国一区| 亚洲自拍偷拍网站| 美女一区二区久久| 日韩免费一区二区三区在线播放| 日本欧美一区二区| 精品成人a区在线观看| 国产盗摄视频一区二区三区| 国产欧美综合在线观看第十页| 粉嫩一区二区三区在线看| 国产精品国产三级国产aⅴ中文| av不卡在线播放| 亚洲成人av一区| 精品国产乱码久久久久久牛牛 | 不卡av电影在线播放| 亚洲人被黑人高潮完整版| 欧美三区免费完整视频在线观看| 亚洲大片精品永久免费| 欧美大片在线观看一区二区| 成人少妇影院yyyy| 亚洲国产成人porn| 亚洲女子a中天字幕| 欧美色图激情小说| 国产一区二区三区久久久 | 91精品国产福利在线观看| 久久er精品视频| 亚洲视频 欧洲视频| 91精品国产乱| 91在线观看美女| 免费高清在线一区| 亚洲欧洲无码一区二区三区| 欧美一区二区三区不卡| 成人app下载| 久久国产精品72免费观看| 中文字幕一区免费在线观看| 日韩一区二区三区电影| a4yy欧美一区二区三区| 精品一区二区三区免费| 一区二区三区免费观看| 久久伊人蜜桃av一区二区| 一本一道综合狠狠老| 狠狠色2019综合网| 亚洲午夜激情网站| 国产精品久久福利| 精品国产91乱码一区二区三区 | 久久色在线观看| 欧美视频中文一区二区三区在线观看| 激情五月婷婷综合| 亚洲高清免费视频| 国产精品免费久久| 日韩精品最新网址| 欧美精品一二三区| 一本色道久久综合狠狠躁的推荐 | 日韩影院免费视频| 亚洲欧洲成人av每日更新| 欧美大片日本大片免费观看| 欧美日韩一区高清| 色域天天综合网| 精品国内片67194| 国产一区二区h| 亚洲三级在线免费| 国产欧美一区二区三区在线老狼| 91精品蜜臀在线一区尤物| 日本韩国欧美国产| 91热门视频在线观看| 丰满少妇久久久久久久| 国产呦精品一区二区三区网站| 丝袜亚洲另类欧美综合| 亚洲va天堂va国产va久| 亚洲一区二区欧美日韩| 亚洲理论在线观看| 亚洲日本免费电影| 1000部国产精品成人观看| 国产精品日日摸夜夜摸av| 久久久久久久久久电影| 2022国产精品视频| 精品国产sm最大网站| 精品国产三级电影在线观看| 欧美一区二区三区啪啪| 欧美一级高清大全免费观看| 欧美一级高清大全免费观看| 精品少妇一区二区三区在线播放| 欧美一区二区大片| 精品国产91乱码一区二区三区| 日韩欧美国产一区在线观看| 日韩精品一区二区三区视频播放| 日韩精品一区二区三区swag| 亚洲精品一区二区三区四区高清| 精品国产制服丝袜高跟| 久久影音资源网| 欧美激情中文字幕| 中文字幕一区二区三区乱码在线| 成人欧美一区二区三区视频网页| 久久国产三级精品| 国产一区二区中文字幕| 成人国产精品免费观看视频| 91在线视频在线| 欧美日韩三级一区二区| 欧美成人免费网站| 国产蜜臀av在线一区二区三区| 国产精品你懂的| 亚洲一区二区中文在线| 蜜臀99久久精品久久久久久软件 | 国产精品二区一区二区aⅴ污介绍| 国产精品久久久久久久裸模| 亚洲制服丝袜在线| 另类调教123区| 成人精品鲁一区一区二区| 91天堂素人约啪| 337p亚洲精品色噜噜| 久久久久久久久久美女| 亚洲色图一区二区| 美女一区二区三区在线观看| 成人午夜电影小说| 777a∨成人精品桃花网| 国产日韩精品一区二区三区在线| 亚洲精品乱码久久久久久黑人 | 欧美成人aa大片| 亚洲国产精品成人综合色在线婷婷| 亚洲另类春色国产| 激情综合色综合久久| 色哟哟欧美精品| 精品国产乱码久久久久久1区2区| 亚洲视频一区二区免费在线观看| 亚洲成av人片在线观看| 国产高清一区日本| 欧美四级电影网| 亚洲国产精品一区二区www在线| 美国av一区二区| 91国模大尺度私拍在线视频| 久久综合色鬼综合色| 午夜精品免费在线观看| 成人免费视频免费观看| 欧美一区二区三区免费| 一区二区三区欧美日| 国产在线观看一区二区| 777午夜精品免费视频| 中文字幕一区三区| 国产盗摄精品一区二区三区在线| 欧美猛男超大videosgay| 国产精品久久久久婷婷| 精品一区二区久久久| 欧美日韩一区中文字幕| 亚洲色图欧洲色图婷婷| 国产成人自拍网| 精品福利一区二区三区| 日韩精品电影一区亚洲| 欧美天堂一区二区三区| 综合色中文字幕| 成av人片一区二区| 久久久精品国产99久久精品芒果| 日韩精品乱码免费| 9191成人精品久久| 亚洲成人动漫在线观看| 91成人在线免费观看| 一区二区三区美女| 日本道精品一区二区三区| 亚洲欧洲av在线| 成人av在线网站| 国产精品激情偷乱一区二区∴| 国产精品一区二区三区99| 欧美本精品男人aⅴ天堂| 蜜臀av亚洲一区中文字幕| 制服丝袜一区二区三区| 日韩国产精品久久| 欧美片网站yy| 蜜桃视频免费观看一区| 欧美一区午夜精品| 麻豆国产精品一区二区三区| 日韩午夜av电影| 麻豆一区二区在线| 精品国产一二三区| 国产成人精品免费网站| 国产精品免费av| 99久久婷婷国产综合精品| 亚洲视频一区二区免费在线观看| 99久久精品久久久久久清纯| 亚洲男人的天堂av| 欧美优质美女网站| 青青青伊人色综合久久| 亚洲精品一区二区三区福利| 国内外成人在线| 国产精品人成在线观看免费| 99久久婷婷国产综合精品电影 | 久久久午夜精品| 成人亚洲一区二区一| 中文字幕综合网| 欧美日韩国产高清一区二区| 蜜臀va亚洲va欧美va天堂| 精品福利视频一区二区三区| 成人免费视频app| 亚洲影院久久精品| 日韩欧美国产一二三区| 国产成人精品免费视频网站| 亚洲精品免费视频| 日韩欧美一二三区| 成人v精品蜜桃久久一区| 亚洲黄网站在线观看| 欧美一级一区二区| 欧美一区二区在线播放| 国产毛片精品视频|