亚洲欧美第一页_禁久久精品乱码_粉嫩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 + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人99久久亚洲综合精品| 一区二区三区在线播| 欧美视频一二三区| 欧美日韩午夜在线视频| 日韩亚洲欧美在线观看| 精品国产91乱码一区二区三区 | 国产精品一区专区| 久久疯狂做爰流白浆xx| 波多野结衣中文一区| 精品一区二区三区在线播放| 91浏览器打开| 久久精品在线免费观看| 亚洲一线二线三线久久久| 麻豆国产欧美一区二区三区| 欧美做爰猛烈大尺度电影无法无天| www国产精品av| 免费人成精品欧美精品| 在线一区二区视频| 国产精品国产自产拍高清av| 免费在线成人网| 国产亚洲欧美一级| 欧美酷刑日本凌虐凌虐| 亚洲与欧洲av电影| 久久久久97国产精华液好用吗| 国产麻豆精品在线| 久久久综合精品| 7777精品久久久大香线蕉 | 亚洲欧洲综合另类在线| 精品在线一区二区三区| 自拍偷自拍亚洲精品播放| 成人免费视频caoporn| 久久精品无码一区二区三区| 欧美在线一二三四区| 成人福利视频在线| 国产一区二区在线观看视频| 亚洲国产色一区| 欧美一区国产二区| 日韩精品91亚洲二区在线观看| 欧美日韩黄视频| 日本午夜精品一区二区三区电影| 欧美日韩精品一区二区天天拍小说| 国产精品一区不卡| 精品一区二区成人精品| 日韩成人一级片| 日本sm残虐另类| 日韩综合小视频| 亚洲国产成人av| 五月综合激情婷婷六月色窝| 日韩久久免费av| 国产一区二区三区免费| 美国三级日本三级久久99| 午夜精品福利在线| 日韩1区2区日韩1区2区| 日韩电影在线观看电影| 日本女人一区二区三区| 五月天久久比比资源色| 视频一区国产视频| 久久精品国产亚洲aⅴ| 蓝色福利精品导航| 精品一区二区在线看| 激情另类小说区图片区视频区| 中文字幕一区二| 51精品久久久久久久蜜臀| 欧美日韩午夜在线| 欧美一区二区三区日韩视频| 91精品国产欧美日韩| 欧美mv日韩mv| 欧美性大战久久久久久久蜜臀| 在线国产电影不卡| 欧美日韩mp4| 精品国产污污免费网站入口| 久久久综合精品| 136国产福利精品导航| 亚洲一区日韩精品中文字幕| 日韩电影免费在线观看网站| 精品一区二区三区免费播放| 大白屁股一区二区视频| 91久久免费观看| 日韩欧美一区二区免费| 欧美激情在线一区二区| 337p日本欧洲亚洲大胆色噜噜| 欧美精品一区二区三区久久久| 中文字幕av不卡| 亚洲国产日韩一区二区| 久久精品国产亚洲一区二区三区| 国产精品18久久久久久久网站| 99re8在线精品视频免费播放| 久久er精品视频| 91麻豆文化传媒在线观看| 欧美午夜免费电影| 中文字幕第一区综合| 亚洲丰满少妇videoshd| 国产成人精品www牛牛影视| 日韩av一级片| 99久久婷婷国产精品综合| 91精品国产乱| 国产精品全国免费观看高清 | 国产精品毛片高清在线完整版| 亚洲精品videosex极品| 成人欧美一区二区三区小说| 视频在线在亚洲| 99天天综合性| 国产婷婷色一区二区三区在线| 亚洲影院理伦片| av亚洲精华国产精华精华| 精品久久一区二区| 日韩精品一二三四| 一本色道久久综合亚洲aⅴ蜜桃| 不卡在线观看av| 精品三级av在线| 日韩精品电影一区亚洲| 欧美做爰猛烈大尺度电影无法无天| 久久久久久久综合| 麻豆中文一区二区| 日韩欧美卡一卡二| 午夜av区久久| 欧美麻豆精品久久久久久| 亚洲精品美腿丝袜| 成人av在线一区二区三区| 日韩三区在线观看| 欧美在线视频日韩| 一区二区三区日本| 精品一区二区久久| 日韩欧美一区二区不卡| 奇米影视7777精品一区二区| 91高清视频免费看| 亚洲视频资源在线| 99精品欧美一区二区三区小说 | 欧美日韩国产另类不卡| 亚洲视频一二三| 99久久亚洲一区二区三区青草| 久久亚洲影视婷婷| 天天色图综合网| 欧美男人的天堂一二区| 亚洲国产精品国自产拍av| 美腿丝袜亚洲综合| 欧美片网站yy| 久久狠狠亚洲综合| 中文字幕精品一区二区三区精品| 国产成人在线影院| 亚洲国产精品成人综合| 99综合电影在线视频| 国产偷国产偷精品高清尤物| 精品一区二区在线免费观看| 91精品婷婷国产综合久久竹菊| 亚洲成人在线免费| 天堂久久久久va久久久久| 播五月开心婷婷综合| 国产精品成人在线观看| 成人av在线观| 亚洲成a人片在线不卡一二三区| 欧美色图在线观看| 狠狠色丁香婷婷综合| 国产精品美女一区二区三区| av网站免费线看精品| 成人欧美一区二区三区在线播放| 激情综合网激情| 国产性做久久久久久| 国产·精品毛片| 国产精品理论在线观看| 在线观看视频一区| 视频在线观看91| 久久女同精品一区二区| 99久久国产免费看| 日韩二区在线观看| 欧美国产一区视频在线观看| 欧亚一区二区三区| 懂色av一区二区在线播放| 亚洲大片在线观看| 欧美激情一区二区三区四区| 欧美精品三级在线观看| 成人午夜精品一区二区三区| 亚洲国产综合91精品麻豆| 日韩视频一区二区在线观看| 成人一级视频在线观看| 一区二区三区欧美在线观看| 久久久久成人黄色影片| 91久久一区二区| 岛国精品在线播放| 奇米影视7777精品一区二区| 一区二区三区免费网站| 久久影院午夜片一区| 欧美三电影在线| 本田岬高潮一区二区三区| 久久99精品久久久久久动态图| 亚洲精品网站在线观看| 2020国产精品| 天天爽夜夜爽夜夜爽精品视频| 国产精品亲子伦对白| 欧美精品三级日韩久久| 国产一区免费电影| 五月天欧美精品| 亚洲综合色视频| 亚洲欧洲国产日韩| 精品国产一二三区| 欧美成人激情免费网| 欧美精品第1页| 欧美日韩国产天堂| 欧美视频一二三区| 91国偷自产一区二区开放时间 |