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

📄 genericalgorithm.h

📁 自己编写的人工智能/遗传算法
💻 H
字号:
//GennericAlgorithm.h
// 

#pragma once

// const 
const double DOUBLE_MAX = 999999999999;
const double DOUBLE_MIN = -DOUBLE_MAX;

const size_t MAXGENERATION = 100000;
const size_t MAXUNCHANGE = 1000;	// 当最优值持续MAXUNCHANGE代不发生变化,停止
const double MINDIFF = 0.0001;	// 所能分辨的适应值函数的最小差值
const size_t POPULATION = 50;	// 样本的大小
const size_t SAMPLELENGTH = 22;	// 每一个样本的长度

// for x belong to [-1, 2]
const double LOWBOUNARY = -1;
const double ZOOMSCALE = 3;

typedef char MyBit;
typedef MyBit BinBits[SAMPLELENGTH];

// action to do in next step
enum Action{STAY, MUTATE , CROSSOVER, DONE};

class MySample
{
private:
	// initialize samples
	void Init();

	BinBits _bits;	// binary string 
	double _fitvalue;	
	double _prop;	// probability to stay
	Action _action; // what to do in next step

public:

	MySample()
	{
		Init();
	};

	MySample(const MySample& rhs);

	MySample& operator = (const MySample& rhs);

	double Fitness();

	// get probability to STAY
	// double Probability() const;
 
	inline Action NextAction() const
	{
		return _action;
	}

	// calulate probability of current sample
	void CalcuPro(double sumfit);

	void CrossOver(MySample& rhs);

	void Mutate();

};

// Binary string parse
double BinaryParse(const BinBits& bits);




⌨️ 快捷键说明

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