资源简介
代码是通过设定不同的参数来进行求解混合流水车间的调度问题
代码片段和文件信息
#include
#include
#include
#include
#include
#include
using namespace std;
ofstream outfile;
#define machinenumber 6 //机器的总数(等于每道工序的并行机个数×工序数)
#define parallel 2 //每道工序的并行机个数
#define ordernumber 3 //工序数
#define workpiecesnumber 6 //工件总数
#define populationnumber 200 //每一代种群的个体数
double crossoverrate=0.6; //交叉概率
double mutationrate=0.05; //变异概率
int G=100; //循环代数100
int usetime[workpiecesnumber][ordernumber]; //第几个工件第几道工序的加工用时;
int machinetime[ordernumber][parallel]= {0}; //第几道工序的第几台并行机器的统计时间;
int starttime[workpiecesnumber][ordernumber][parallel];//第几个工件第几道工序在第几台并行机上开始加工的时间;
int finishtime [workpiecesnumber][ordernumber][parallel];//第几个工件第几道工序在第几台并行机上完成加工的时间;
int ttime[populationnumber]; //个体的makespan; ???????????????????????
int a [populationnumber][workpiecesnumber];//第几代的染色体顺序,即工件加工顺序;
int times[100]; //用来存储已知用时的数组;
int makespan; //总的流程加工时间;
int flg7; //暂时存储流程加工时间;
double fits[populationnumber] ;//存储每一代种群每一个个体的适应度,便于进行选择操作;
//????????????????
int initialization() //初始化种群;
{
for(int i=0; i for(int j=0; j {
a[i][j]=j+1;
}
for(int i=0; i for(int j=0; j {
int flg1=rand()%workpiecesnumber;
int flg2=rand()%workpiecesnumber;
int flg3=a[i][flg1];
a[i][flg1]=a[i][flg2];
a[i][flg2]=flg3;
}
for(int i=0; i {
for(int j=0; j {
cout< }
cout< }
return 0;
}
int fitness(int c) //计算适应度函数,c代表某个体;
{
int totaltime; //总的加工流程时间(makespan);
int temp1[workpiecesnumber]= {0};
int temp2[workpiecesnumber]= {0};
int temp3[workpiecesnumber]= {0};
for(int j=0; j {
temp1[j]=a[c][j];
}
for(int i=0; i {
for(int j=0; j {
int m=machinetime[i][0]; //先记录第i道工序的第一台并行机器的当前工作时间;
int n=0;
for (int p=0; p {
if (m>machinetime[i][p])
{
m=machinetime[i][p];
n=p;
}
}
int q=temp1[j]; //按顺序提取temp1中的工件号,对工件进行加工;
starttime[q-1][i][n]=max(machinetime[i][n]temp3[j]); //开
- 上一篇:数据结构课程设计学生成绩管理系统
- 下一篇:GUIBuilder_V530.rar
相关资源
- 谭浩强C语言word版12171
- STM32读CS1237实现秤重测量
- Quectel_EC200xEG912YEC600NEC600S系列_TCP(I
- ADS1263驱动程序+电路图
- STM32-ads1256
- TM4C123中文手册
- ADS1256-STM32参考程序
- RFID读卡器(125KHzRFID)
- atmega128 串口通讯(RS485.c)
- 汽车电子编程规范(Unlock-MISRA C 2012)
- 485通信控制3路相位差120°PWM输出
- [免费高清PDF版]Effective Modern C++(201
- CTP上期技术平台API及C#封装更新到CT
- RC522射频模块读取S50卡中信息并通过
- AES-128-CBC算法C语言源码已经修改,可
- 若干源程序资料12.rar
- Microsoft Visual C++ 20XX运行库合集vc2005
- C++程序设计 思想与方法 第2版 完整扫
- MFC基于对话框的气体浓度检测系统
- MISRA C:2012 EN
- 12864液晶图片取模软件.rar
- 180912.cpp
- 浙工大研究生考试c++历年真题(2008
- 如何在Visual StudioVS里使用libsvm工具箱
- VC++2012版Prim算法最小生成树动态演示
- 电子科大12-17年计算机复试-笔试试题
- MISRA-C 2012.zip
- acr122udriver+mfcuk M1卡破解工具
- mfc120d.dll 資源下載
- Microsoft Visual C++ 2013 Redistributable (x
评论
共有 条评论