📄 tspdlg.h
字号:
// TSPDlg.h : 头文件
//
#pragma once
#include "../Graph/Pegrpapi.h"
#include "../share/Ini.h"
#include "../share/MyCmnHdr.h"
#include <list>
#include <iostream>
#include <complex>
using namespace std;
#include "TChar.h"
#include "afxwin.h"
// CTSPDlg 对话框
class CTSPDlg : public CDialog
{
// 构造
public:
CTSPDlg(CWnd* pParent = NULL); // 标准构造函数
// 对话框数据
enum { IDD = IDD_TSP_DIALOG };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
// 实现
protected:
HICON m_hIcon;
// 生成的消息映射函数
virtual BOOL OnInitDialog();
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
DECLARE_MESSAGE_MAP()
public:
HWND m_hGrahp1;
HWND m_hGrahp2;
// 绘图板
CStatic m_Palette1;
// 过程画板
CStatic m_Palette2;
// 初始温度
CEdit m_T0;
// 衰减因子
CEdit m_a;
// MapKOB链长度(固定)
CEdit m_L;
// 初始接受率
CEdit m_X0;
// 终止接受率
CEdit m_Xk;
// 迭代次数
CEdit m_IterCnt;
// 原始结果
CStatic m_SResulte;
// 最终结果
CStatic m_EResulte;
std::list<CPoint> std_pt;
std::list<CPoint>::iterator std_itor_pt;
public:
// 加载问题数据
afx_msg void OnBnClickedLoadquesdataBtn();
// 开始计算
afx_msg void OnBnClickedCalcBtn();
public:
// 加载问题数据按钮
CButton m_LoadBtn;
// 计算/停止按钮
CButton m_CalcBtn;
public:
// 计算能量差
// pPoint:问题数据
// nU:随机数(1 < nU < nV < nW < 问题规模 - 1)
// nV:随机数(1 < nU < nV < nW < 问题规模 - 1)
// nV:随机数(1 < nU < nV < nW < 问题规模 - 1)
// nW == 0 变换 2,否则变换 3
double CalcEnergyDisp(const CPoint * pPoint, const UINT &nU, const UINT &nV, const UINT &nW = 0);
// 计算当前结果
double CalcEnergyResulte(const CPoint * pPoint, const UINT &size);
// 变化能量
void ChangeEnergy(CPoint * pPoint, const UINT &size, const UINT &nU, const UINT &nV, const UINT &nW = 0);
// 计算初始温度
double CalcT0(CPoint * pPoint, const UINT &size, const double dX0);
// 计算当前接受率
double CalcXk(const double &dEqualIncrement, const UINT &nM1, const UINT &nM2, const double dT0);
// 计算两点间距离
double CalcPtoP(const CPoint &Point1, const CPoint &Point2);
public:
afx_msg void OnDestroy();
// 绘图消息
LRESULT OnDrawPlot(WPARAM wParam, LPARAM lParam);
private:
BOOL bfThreadRun;
// 优化结果
CStatic m_KResulte;
public:
// 终止温度
CEdit m_Te;
// 终止迭代的无变动解的 mapkob 链数
CEdit m_stop_mkb_cnt;
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -