📄 rnn.h
字号:
#ifndef RNN_H
#define RNN_H
#include "HNN.h"
/*--------------------------------------------------------------*/
// //
// RNN 类 (HNN的子类) //
// 说明:随机神经网络类 //
// 作用:用随机神经网络中的Boltzmann机求解JSP问题 //
// //
/*--------------------------------------------------------------*/
class RNN: public HNN
{
public:
/*--------------------设置所要解决的调度问题--------------------------*/
//各参数依次为:调度问题的作业数、机器数、机器分配、时间分配和预估的最大时间成本
//注:机器分配和时间分配可以在以后单独设置
RNN(int, int, int** = NULL, int** = NULL, int = -1);
//~RNN();
/*--------------------运行网络解决优化调度问题-----------------------*/
//设置模拟退火的相关参数,它们依次为: 初始温度、凝结温度、温度下降速率和每个温度上的循环次数
void setAPPara(double, double, double, int);
//运行随机神经网络得到调度方案
bool run();
protected:
/*按随机爬山依次调整每个神经元输出
若已得到预估的最佳调度,则返回0;
若调整使得最大成本变小,可以停止在当前温度的搜索,则返回1;
若调整使得最大成本变大,还需继续在当前温度下搜索,则返回2; */
int randomSearch(double);
//模拟退火的相关参数
double Tmax; //初始温度
double Tmin; //凝结温度
double r; //温度下降速率
int k; //每个温度上的循环次数
int mincost; //预估的最佳调度的最大成本
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -