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

📄 wstspena.h

📁 开发环境:Visual C++ .net2003 功能介绍:神经网络算法实验;分Console版本和MFC版本;主要用来求解TSP问题。
💻 H
字号:
#pragma once

#include "WSCity.h"
#include "WSTempPoint.h"

class WSTSPENA
{
public:
	float m_a;//引力参数
	float m_b;//张力参数
	float m_Temperature;//温度参数
	float m_Alpha;//温度变化控制
	float m_TempPointFactor;//确立m_TempPointNum = m_CityNum*Factor
	float m_FixTempPointDegree;
	//int m_FoundCityNum;//临时点和城市相匹配的数目

	unsigned int m_CityNum;
	unsigned int m_TempPointNum;

	WSCity *m_pCity;
	WSTempPoint *m_pTempPoint;
	float m_Weight;//可通过计算得到

	PCHAR m_FileName;

public:
	WSTSPENA(void);
public:
	~WSTSPENA(void);

public:
	//读取城市坐标文件,生成相关信息
	bool ReadCityInfoFromFile(char *p_FileName);
	//初始化临时点信息//在获取城市信息之后使用
	bool InitialTempPoint();
	bool Initial(char *p_FileName, float p_a = 0.9, float p_b = 0.9, float p_Temperature = 0,
		float p_Alpha = 0.9, float p_TempPointFactor = 2.5);//注:可以要求p_b的值为固定值
															//p_Temperature为自适应的值
															//p_a、p_Alpha和p_TempPointFactor可调节

private:
	//高斯函数
	float Gause(float p_Dist, float p_K);

	//高斯函数
	float GauseSquare(float p_DistSquare, float p_KSquare);



	//计算城市神经元和临时点神经元间的权值
	bool Weight(unsigned int p_CityNO, unsigned int p_TempPointNO);	

	//某临时点神经元接受调整			
	bool AdjustTempPoint(unsigned int p_TempPointNO);
	bool AdjustTempPoint(unsigned int p_TempPointNO, WSCity &p_deltaYj);	


public:
	//判断是否所有城市都被匹配,且都临时点进行拟合处理
	bool FitCity();

	bool AdjustTempPoint();//所有临时点神经元受张力和引力作用调整(异步)
	bool AdjustTempPointSyn();//所有临时点神经元受张力和引力作用调整(同步)

	//对所有参数进行调整(一般是每轮一次)
	bool AdjustParament();
	//弹性神经网络的总控函数
	bool RunENA();
	float ComputeCityRouteDist();
	void ShowResultRoute();
};

⌨️ 快捷键说明

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