- 0
- 0
- 约 14页
- 2017-07-07 发布于湖北
- 举报
这是我在解决电梯动力学参数写的简单遗传算法(程序带目标方案
这是我在解决电梯动力学参数写的简单遗传算法(程序带目标函数值、适应度值计算,但是我的适应度函数因为目标函数的计算很特殊,一起放在了程序外面计算,在此不提供)。
头文件:
// CMVSOGA.h : main header file for the CMVSOGA.cpp/////////////////////////////////////////////////////////////////////////????????????????????????????????????????????????????????? //////////??????????????? 沈阳航空工业学院 动力工程系?????????????? //////////?????????????????????? 作者:李立新?????????????????????? //////////?????????????????? 完成日期:2006.08.02?????????????????? //////////????????????????????????????????????????????????????????? /////////////////////////////////////////////////////////////////////////// 本来想使用链表里面套链表的,程序调试比较麻烦,改为种群用链表表示//染色体固定为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 be
原创力文档

文档评论(0)