📄 genetestview.h
字号:
// genetestView.h : interface of the CGenetestView class
//
/////////////////////////////////////////////////////////////////////////////
#if !defined(AFX_GENETESTVIEW_H__D162B22C_5AFA_42F2_9821_AA0977EE93A8__INCLUDED_)
#define AFX_GENETESTVIEW_H__D162B22C_5AFA_42F2_9821_AA0977EE93A8__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "individual.h"
#include "baseclass.h"
#define maxpop 100
#define maxTarget 20 //一次参与分配的最大目标数
#define maxWeapon 20 //一次参与分配的最大武器数
#define maxAntNum 20
#include "genetestDoc.h"
class CGenetestView : public CScrollView
{
protected: // create from serialization only
CGenetestView();
DECLARE_DYNCREATE(CGenetestView)
// Attributes
public:
CGenetestDoc* GetDocument();
//需要输入的控制参数
float m_fcrossover;
int m_ngenerations;
float m_fmutation;
int m_npopulationsize;
int m_ntarget;
int m_nweapon;
//
CIndividual *m_oldpop,*m_newpop;/*,*m_p1*/
int m_ngen;//当前世代数
int m_nmutation;//变异次数
int m_nmaxpp,m_nminpp;//群体最大适应度个体索引,最小适应度个体索引
int m_njrand;
int m_ncross,m_jcross;//交叉次数,交叉位置
float m_fsumfitness,m_favg,m_fmax,m_fmin;//群体总适应度,平均适应度,最大适应度,最小适应度
char *m_maxfitChrom;//全局最优个体的染色体表示
float m_fWholeMaxFit;//全局最优个体的适应度
float m_fold[maxpop];
//武器列表
CWeaponList m_WeaponList;
//参数输入标志
BOOL m_bInputFlag;
//实际情况中,以下这两个数组中的值,应该是从数据库中读出的
//武器对目标的打击成功概率数组
//打击成功概率数组,也可以用此数组里面的值来表示初始的信息素分配
float m_SuccessArray[maxTarget][maxWeapon];
float m_PheromoneArray[maxTarget][maxWeapon];
//目标的的价值(威胁值)数组
float m_Worthiness[maxTarget];
//输出位置的纵坐标
int m_nOutputY;
//CAntThread *m_pmaxAnt;
// Operations
public:
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CGenetestView)
public:
virtual void OnDraw(CDC* pDC); // overridden to draw this view
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
virtual void OnInitialUpdate();
protected:
virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);
virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);
virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);
//}}AFX_VIRTUAL
// Implementation
public:
int m_nTestFlag;
void UpdatePheromoneTestUsed();
void WritePheromone();
void InitAntList();
BOOL JudgeChrom(CIndividual *individual);
void WriteLog(LPCTSTR pszFormat);
//CAntThread* SearchMaxValueAnt();
void InitPheromone();
void Copy();
void ObjFunction(CIndividual *individual);
void OutputResult(CIndividual individual);
char mutation(char ch);
int Crossover(char *parent1,char *parent2,int k);
int select();
int flip(float probability);
void Generation(int gen);
void SetWTAArray();
void Objfunc(CIndividual *obj);
void InitMalloc();
void ResetWeaponState(POSITION &pos,int c);
void ResetWeaponList();
void InitWeaponList();
void Statistics(CIndividual *pop);
void Initialize();
void Initpop();
virtual ~CGenetestView();
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext& dc) const;
#endif
protected:
// Generated message map functions
protected:
//{{AFX_MSG(CGenetestView)
afx_msg void OnGENEParaSet();
afx_msg void OnGENEBegin();
afx_msg void OnGENEEnd();
afx_msg void OnShowResult();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
#ifndef _DEBUG // debug version in genetestView.cpp
inline CGenetestDoc* CGenetestView::GetDocument()
{ return (CGenetestDoc*)m_pDocument; }
#endif
/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_GENETESTVIEW_H__D162B22C_5AFA_42F2_9821_AA0977EE93A8__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -