- 1、本文档共4页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
模拟退火算法解决工作指派问题c源程序
/*********************************************************************** 模拟退火算法解决工作指派问题
输入格式(工作时间):矩阵
行i;工人
列j;工作
***********************************************************************/
#include iostream
#include cmath
#include time.h
#include stdio.h
using namespace std;
const int MAXN = 501; //最大约束数n
const double INIT_T =2000; //初始温度
const double RATE = 0.95; //温度衰减率
const double FINAL_T = 1E-10; //终止温度
const int IN_LOOP = 13000; //内层循环次数
const int OUT_LOOP = 2000; //外层循环次数
struct work { //定义工作结构类型
int p[MAXN]; //工人序号
double time; //时间
};
int N; //工人数量
double D[MAXN][MAXN]; //工作时间
int x[MAXN][ MAXN]; //选择工人与工作
work bestwork; //最优的遍历路径
void swap(int a,int b)
{
int t;
t=a;a=b;b=t;
}
inline double totaldist(work p) //计算总时间
{
int i,j;
double cost = 0,sumi=0, sumj=0;
for (j=1; j=N; j++)
{
sumj+= x[i][j];
}
for (i=1; i=N; i++)
{
sumi+= x[i][j];
}
if(sumj==1 sumi==1)
{
for (j=1; j=N; j++)
{
for (i=1; i=N; i++)
{
cost += D[i][j]*x[i][j];
}
}
return cost;
}
}
void init() //读入数据,并初始化
{
cin N;
int i,j;
for(i=0;i=N;i++)
{
for(j=0;j=N;j++)
cin D[i][j];
}
for (i=j=1; i=j=N; i++,j++) //最优解的初始状态
{
bestwork.p[i] = i;
bestwork.time = totaldist(bestwork);
}
}
/*********************************************************************** 产生指派方法
***********************************************************************/
work getnext(work p) //新解产生函数
{
int x, y,i,j;
work ret;
ret = p;
do {
x = rand() % N + 1;
y = rand() % N + 1;
}while(x == y);
swap(ret.p[x], ret.p[y]); //交换两工人位置顺序
ret.time = totaldist(bestwork);
return ret;
}
/*****************************************************************
您可能关注的文档
- 模型飞机的结构及制作.doc
- 模式中等职业教育市场营销教学模式探究.doc
- 模式为王企业未来发展方向.doc
- 模式之二行业边界的倒塌.doc
- 模塑密胺树脂及其应用.doc
- 模式识别(研究生大纲).doc
- 模式识别与智能系统培养方案.doc
- 模式识别技术概论.doc
- 模式识别在微观岩石图像自动分类中的应用.doc
- 模式高校工科应用型人才培养模式研究.doc
- ASX_Series_操作说明书手册.pdf
- Battery-Backup-Kit-Installation-操作说明书手册.pdf
- DCB-05-V2-操作说明书手册.pdf
- DEIMOS-Installation-操作说明书手册.pdf
- Axess-Pro-Series-2120-Roller-Shutter-Pendant-操作说明书手册.pdf
- Controll-A-Door-P-Diamond-操作说明书手册.pdf
- Controll-A-Door-PD-Power-Drive-操作说明书手册.pdf
- Controll-A-Door-Secure-SDO-6-操作说明书手册.pdf
- AMX_Series_操作说明书手册.pdf
- ELI-250-Installation-操作说明书手册.pdf
最近下载
- 中华人民共和国机械行业标准燃煤热风炉技术条件.PDF
- 武汉市光谷为明实验学校新初一分班语文试卷含答案.pdf VIP
- 浙江大学紫金港校区校园平面图.PDF VIP
- 中级车号员(长)试题及答案.pdf VIP
- 铁路车号员(长):中级车号员(长)测试题.docx VIP
- 铁路车号员(长)中级车号员(长)试卷(铁路车号员(长)).doc VIP
- 铁路车号员(长)车号员一体化考试试卷(铁路车号员(长)).doc VIP
- 铁路车号员(长)铁路车号员(长)综合练习试卷(铁路车号员(长)).doc VIP
- 铁路车号员(长)铁路车号员(长)综合练习试卷.doc VIP
- 初中数学高质量作业设计策略与实践.pptx
文档评论(0)