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

📄 genetestview.h

📁 火力分配的应用
💻 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 + -