⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 my_fit.cpp

📁 利用一个较为成熟的遗传算法基础类库(作者:刘康)
💻 CPP
字号:
#include <iostream.h>
#include <stdio.h>
#include "my_fit.h"
#include "math.h"

#define PI 3.1415926


//构造函数
Myfit::Myfit(int n, int gl) : Genetic(n,gl)
{
}
/*
//
//f(x1,x2)=21.5+x1-sin(4*PI*x1)+x2*sin(20*PI*x2)
//( -3.0<=x1<=12.1, 4.1<=x2<=5.8 )
double Myfit::EvalVal(INDIVIDUAL &ind)	//计算个体评价函数值
{
	double x1,x2,result;
	unsigned long a1,a2;

	a1=ind.Chrom.GetInt(1,18);
	a2=ind.Chrom.GetInt(19,33);
	//cout<<a1<<"\t"<<a2<<endl;
	x1=-3.0+(12.1-(-3.0))*a1/((1<<18)-1);
	x2=4.1+((5.8-4.1)*a2)/((1<<15)-1);
	//cout<<x1<<"\t"<<x2<<"\t"<<endl;
	ind.Val=21.5+x1-sin(4*PI*x1)+x2*sin(20*PI*x2);
	//cout<<ind.Val<<endl;

	return ind.Val;
}
*/

//f(x1,x2)=1+x1*(-x1^2-x2^2)
//-3<x1<3, -3<x2<3
double Myfit::EvalVal(INDIVIDUAL &ind)	//计算个体评价函数值
{
	double x1,x2;
	unsigned long a1,a2;

	a1=ind.Chrom.GetInt(1,16);
	a2=ind.Chrom.GetInt(17,32);
	//cout<<a1<<"\t"<<a2<<endl;
	x1=-3.0+(3.0-(-3.0))*a1/((1<<16)-1);
	x2=-3.0+((3.0-(-3.0))*a2)/((1<<16)-1);
	//cout<<x1<<"\t"<<x2<<"\t"<<endl;
	ind.Val=1+x1*exp(-x1*x1-x2*x2);
	//cout<<ind.Val<<endl;

	return ind.Val;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -