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

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

?? yichuansuanfa.cpp

?? 楊淑英的 模式識別 源碼
?? CPP
字號:
// 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   //人群總數
#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("最優解出現在第%d代",index);
			AfxMessageBox(s);
		}
		else
		{
			AfxMessageBox("類中心數目不能為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++)//計算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;
		}
		//計算適應度
		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);

	}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
激情综合亚洲精品| 日韩欧美精品三级| 91精品一区二区三区在线观看| 国产精品三级久久久久三级| 亚洲一区免费在线观看| 国产美女一区二区| 欧美男男青年gay1069videost | 日韩欧美亚洲国产另类| 欧美国产乱子伦| 免费不卡在线视频| 欧美性受xxxx黑人xyx性爽| 久久精品亚洲国产奇米99| 亚洲自拍都市欧美小说| 国产成人三级在线观看| 在线综合+亚洲+欧美中文字幕| 欧美一区二区黄色| 亚洲国产日产av| 色哟哟精品一区| 久久久久久97三级| 青青草国产精品亚洲专区无| 在线视频国内一区二区| 亚洲欧洲精品成人久久奇米网| 国产精品不卡在线观看| 国产精品一色哟哟哟| 精品精品欲导航| 奇米影视7777精品一区二区| 欧美精品一卡二卡| 亚洲九九爱视频| 一本到一区二区三区| 亚洲三级免费观看| 在线观看三级视频欧美| 亚洲一区视频在线| 欧美日韩成人激情| 日韩经典一区二区| 日韩一级片在线播放| 美女网站色91| 久久新电视剧免费观看| 国产原创一区二区三区| 国产日产欧产精品推荐色| 高清日韩电视剧大全免费| 中文字幕乱码日本亚洲一区二区| 亚洲国产一区视频| 91 com成人网| 精品一区二区三区免费毛片爱| 成人精品免费视频| 最新国产成人在线观看| 99精品一区二区三区| 亚洲精品欧美综合四区| 欧美日韩亚洲国产综合| 日韩国产精品大片| 久久久久亚洲综合| aaa欧美色吧激情视频| 一区二区三区精品久久久| 欧美日韩电影在线| 国产一区在线视频| 亚洲免费观看高清在线观看| 欧美日韩久久不卡| 国产一区二区三区在线看麻豆| 欧美熟乱第一页| 老司机精品视频一区二区三区| 色婷婷精品大视频在线蜜桃视频| 亚洲精品一区二区三区在线观看| 亚洲国产日韩a在线播放性色| 国产精品一线二线三线| 亚洲情趣在线观看| 日韩精品专区在线| 国产成人免费9x9x人网站视频| 日韩一级片网站| 国产成人在线免费| 亚洲免费大片在线观看| 欧美大片日本大片免费观看| 99久久精品国产毛片| 天天色天天操综合| 国产精品每日更新| 欧美成人欧美edvon| 91久久一区二区| 国产在线视频不卡二| 樱花影视一区二区| 久久精品水蜜桃av综合天堂| 91麻豆精品国产91久久久资源速度 | 9i在线看片成人免费| 三级精品在线观看| 国产欧美日韩激情| 日韩美一区二区三区| 欧洲国内综合视频| 懂色一区二区三区免费观看 | 国产成人综合在线播放| 亚洲超碰97人人做人人爱| 欧美国产成人在线| 亚洲精品一区二区在线观看| 欧美日韩精品是欧美日韩精品| 亚洲国产毛片aaaaa无费看| 精品奇米国产一区二区三区| 欧美综合色免费| 不卡av免费在线观看| 激情欧美一区二区| 久久精品99久久久| 日韩激情一区二区| 亚洲成av人片一区二区三区| 成人欧美一区二区三区白人| 久久婷婷国产综合国色天香| 日韩手机在线导航| 日韩一卡二卡三卡四卡| 欧美日韩国产免费| 欧美日韩和欧美的一区二区| 色又黄又爽网站www久久| av成人老司机| k8久久久一区二区三区 | 欧美日韩国产精选| 91影视在线播放| 97se亚洲国产综合自在线观| 成人激情综合网站| 成人av午夜影院| 成人激情图片网| 99久久精品久久久久久清纯| 99精品久久只有精品| 91日韩在线专区| 91捆绑美女网站| 欧美性一级生活| 欧美区在线观看| 91精品免费在线| 精品成人免费观看| 久久久.com| 亚洲人成在线播放网站岛国| 亚洲精品伦理在线| 亚洲国产精品欧美一二99| 亚洲第一福利一区| 蜜臀99久久精品久久久久久软件| 国产欧美一区二区精品性色超碰| 欧美在线免费播放| 6080国产精品一区二区| 欧美日韩亚州综合| 欧美videos中文字幕| 久久久精品国产免大香伊| 国产欧美va欧美不卡在线| 国产精品久久夜| 亚洲免费伊人电影| 美女视频黄a大片欧美| 国产九色精品成人porny| 99国产欧美另类久久久精品| 欧美吞精做爰啪啪高潮| 欧美一区二区黄色| 中文av一区二区| 亚洲动漫第一页| 国产制服丝袜一区| 91在线视频播放地址| 555夜色666亚洲国产免| 久久久久久久久99精品| 伊人夜夜躁av伊人久久| 看电视剧不卡顿的网站| 色综合久久中文字幕| 欧美成人综合网站| 亚洲黄网站在线观看| 狠狠色丁香婷婷综合| 色呦呦国产精品| 日韩欧美久久久| 亚洲私人影院在线观看| 麻豆91精品视频| 91天堂素人约啪| 久久久精品免费网站| 婷婷国产v国产偷v亚洲高清| 高清不卡在线观看av| 欧美日韩国产高清一区| 中文久久乱码一区二区| 美女网站色91| 色一情一伦一子一伦一区| 精品日韩一区二区| 天堂在线一区二区| 一本大道综合伊人精品热热| 久久蜜臀中文字幕| 日韩成人午夜电影| 欧美午夜精品一区二区蜜桃| 欧美国产精品v| 久久国产三级精品| 欧美日韩视频专区在线播放| 中文字幕一区二区三区在线播放 | av午夜一区麻豆| 日韩一区二区电影在线| 亚洲黄色免费电影| 成人福利视频网站| 久久久久国产精品人| 久久国产精品99久久久久久老狼| 激情图片小说一区| 欧美一区二区三级| 亚洲风情在线资源站| 色婷婷综合久久久中文字幕| 中文字幕av一区二区三区| 国产在线播放一区二区三区| 3d动漫精品啪啪1区2区免费| 亚洲三级在线播放| 91色综合久久久久婷婷| 中文字幕综合网| 91丨国产丨九色丨pron| 亚洲欧洲日产国码二区| av爱爱亚洲一区| 亚洲视频免费在线观看| 色综合咪咪久久| 亚洲精品国产品国语在线app| 奇米精品一区二区三区四区 | 91在线观看视频|