资源简介
本文件包含了模拟退火算法的C源码,解决了工作指派问题,内部包含了该实验的要求,以及缩写的报告,简要的写出了本实验的设计思路

代码片段和文件信息
/*****************************************************************************
** Copyright: NEW NEU laboratory
** File name: SA_工作指派问题
** Description:模拟退火算法解决工作指派问题
** Author: 1702--GCJ
** Version: 1.0
** Date: 2017/10/4
** History: 无
*****************************************************************************/
#include“stdio.h“
#include“stdlib.h“
#include“string.h“
#include “time.h“
#include “math.h“
/*----------------------------------------------------
@brief 参数配置区
*/
#define WORK_NUM 50 //工作数量
#define WORKER_NUM 50 //工人数量
#define INIT_TEM (60 + WORK_NUM * 10) //初始温度
#define END_TEM 60 //终止温度
#define De_TEM 2 //降温函数
#define INTER_WHILE 500 //内循环次数 类似于邻居个数
typedef int ElementType;
ElementType **Time; //存储工人工作时间 指针
ElementType CurrentTem; //当前温度
//定义解的存储类型 向量形式
typedef struct _Solve{
ElementType *initSolution; //初始解 //每个元素对应的序号表示工人 总序号表示工人总数 内部元素表示工人对应的工作
ElementType *currentSolution; //当前解
ElementType * optimalSolution; //最优解
ElementType *tempSolution; //临时解
ElementType OptimalSolutionValue; //记录最优解 (总时间)
ElementType CurrentSolutionValue; //记录上次的值
ElementType NextSolutionValue ; //记录交换后的总时间
}StrSolve;//存储解结构
StrSolve * SolutionSpace ; //解空间(包含当前解和初始解)指针
typedef struct _Tabu{
int smallNum;
int bigNum; //存储数量大的元素
}Tabu; //禁忌表结构
typedef struct _MotionTable{
Tabu tabu; //存储改变的元素
ElementType changedistance; //改变的距离
}MotionTable;//记录2opt邻域移动信息
/*************************************************
**Function: MemBlockWork
**Description: 申请存储工人工作时间的空间
**Calls: 无
**Called By: ReadDataTxt()
**Input: 无
**Output: 无
**Return: 指向存储工人工作时间的指针
**Others: 无
*************************************************/
ElementType ** MemBlockWork();
/*************************************************
**Function: ReadDataTxt
**Description: 从txt文档中读取工人工作时间数据
**Calls: MemBlockWork()
**Called By: main()
**Input: 无
**Output: 无
**Return: void
**Others: 里面直接用的全局变量 指针Time
*************************************************/
void ReadDataTxt();
/*************************************************
**Function: CreateSolutionSpace
**Description: 创建并初始化解空间
**Calls: 无
**Called By: Init2Opt()
**Input: worker_num 工人数量
**Output: 无
**Return: StrSolve *指针变量
**Others: 不用这块内存的时候要逐一释放掉 !
*************************************************/
StrSolve *CreateSolutionSpace(int worker_num);
/*************************************************
**Function: GetInitSolution
**Description: 获得初始解
**Calls: 无
**Called By: Init2Opt()
**Input: StrSolve * 指针变量
**Output: 无
**Return: StrSolve *指针变量
**Others: 这里在初始化解的时候可以用其他元启发式算法得出一个较好的解 ! 工人工作不能重复及数组空间的数字不能重复
*************************************************/
void GetInitSolution(StrSolve * strSolve);
/*************************************************
**Function: Get2optSolution
**Description: 得到1个2邻域解 用tempSolution来存储
**Calls:
**Called By: SA()
*
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 21062 2017-10-05 09:21 data.txt
文件 252 2017-10-04 19:52 data1.txt
文件 2101141 2017-10-05 09:24 data3.txt
文件 408 2018-01-06 10:04 readme.txt
文件 16398 2018-01-06 09:58 SA.c
文件 172735 2018-01-06 09:59 SA.exe
文件 159812 2018-01-06 10:07 禁忌搜索算法试验报告.docx
- 上一篇:操作系统 多级目录管理
- 下一篇:模拟退火算法C实现解决了工作指派问题
相关资源
- ectouch最新版JSAPI微信支付V3插
- The direction of synaptic plasticity mediated
- C 大整数RSA加密
- DXperienceUniversal 10.1.6(2010年8月13日版
- hidusage.h hidpi.h 等USB开发用头文件
- RSA算法源码
- [免费]ISAR单特显点法相位补偿
- saber 扫频分析仿真文件
- VESA Computer Display Monitor Timing (DMT)
- tsai经典两步法 很不错的
- ESAM相关文章集合
- 基于JM20329的SATA转USB 1394
- RSA AES DES ECC加密算法源码
- SAP ABAP培训练习题
- SAMPLE (类pascal) 词法分析程序 C 版
- 调用WOSA/XFS的简单示例
- The Impact of ETC System on Safety Performance
- SAS3008芯片资料
- SA1110处理器掌上电脑液晶显示器设计
- MQTT+串口(usart)透传
- 易语言RSA加解密源码
- ECC和ECDSA算法
- OpenSaml使用引导,及测试IDP,SP源码
- Effects of the cultured Cordyceps exopolysacch
- Anti-biofilm Activity of Resveratrol and Ursol
- Effect of dietary nitrate dosage on gas produc
- GlowtoolsA-wdf网易游戏wdf查看及解包
- pdf.jsamp;pdf;.worker.js
- 标准pike 6480华硕SAS阵列卡驱动 官方版
- Samsung三星R439-DS系列网卡驱动程序 v
评论
共有 条评论