#ifndef SIMULATEDANNEALING_H #define SIMULATEDANNEALING_H #include #include #include #include #include #include using namespace std; class simulatedAnnealing { private: int N;// 皇后的数目 double time_t; public: simulatedAnnealing(int N);// 默认构造函数 void initChessboard(vector& chessboard);// 初始化棋盘 int getNumofConflicts(vector *chessboard);// 计算当前棋盘存在的相互攻击的皇后对数 int properPosition(const vector *chessboard, int row);//利用模拟退火算法得到该行的合适位置 // 利用模拟退火算法修改该行,得到一个合适的位置 //(不一定是当前最优,以一定几率接受一个更差的解) vector* nextState(vector *chessboard, int row); vector* solve(vector *chessboard);// 求解主函数,在不同的行中不断搜寻下一步合适的位置 vector> solveNQueens(); double getTime(){return time_t;} }; #endif // SIMULATEDANNEALING_H