- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
多变量多目标的遗传算法程序
这是我在解决电梯动力学参数写的简单遗传算法(程序带目标函数值、适应度值计算,但是我的适应度函数因为目标函数的计算很特殊,一起放在了程序外面计算,在此不提供)。
头文件:
// CMVSOGA.h : main header file for the CMVSOGA.cpp// 本来想使用链表里面套链表的,程序调试比较麻烦,改为种群用链表表示//染色体固定为16的方法。
#if !defined(AFX_CMVSOGA_H__45BECA_61EB_4A0E_9746_9A94D1CCF767__INCLUDED_)#define AFX_CMVSOGA_H__45BECA_61EB_4A0E_9746_9A94D1CCF767__INCLUDED_
#if _MSC_VER 1000#pragma once#endif // _MSC_VER 1000#include Afxtempl.h#define variablenum 16class CMVSOGA{public:?CMVSOGA();?void selectionoperator();?void crossoveroperator();?void mutationoperator();?void initialpopulation(int, int ,double ,double,double *,double *);???????????//种群初始化?void generatenextpopulation();??????????//生成下一代种群?void evaluatepopulation();???????????//评价个体,求最佳个体?void calculateobjectvalue();??????????//计算目标函数值?void calculatefitnessvalue();??????????//计算适应度函数值?void findbestandworstindividual();?????????//寻找最佳个体和最差个体?void performevolution();????void GetResult(double *);?void GetPopData(double **);?void SetValueData(double *);?void maxandexpectation();private:?struct individual?{??double chromosome[variablenum];?????????//染色体编码长度应该为变量的个数??double value;???????? ??double fitness;?????????????//适应度?};?double variabletop[variablenum];?????????//变量值?double variablebottom[variablenum];?????????//变量值?int popsize;??????????????//种群大小//?int generation;??????????????//世代数?int best_index;???int worst_index;?double crossoverrate;????????????//交叉率?double mutationrate;????????????//变异率?int maxgeneration;?????????????//最大世代数?struct individual bestindividual;?????????//最佳个体?struct individual worstindividual;?????????//最差个体?struct individual current;??? ??????????//当前个体?struct individual current1;??? ??????????//当前个体?struct individual currentbest;??????????//当前最佳个体?CList struct individual,struct individual population;???//种群?CList struct individual,struct individual newpopulation;??//新种群?CList double,double cfitness;??????????//存储适应度值//?double maxfitness;//?double minfitness;//?double
文档评论(0)