资源简介
用c++写的遗传算法解决柔性作业车间调度问题,主要参考论文 张国辉, 高亮, 李培根, et al. 改进遗传算法求解柔性作业车间调度问题[J]. 机械工程学报, 2009, 45(7):145-151.
代码片段和文件信息
// 1210第一版.cpp : 此文件包含 “main“ 函数。程序执行将在此处开始并结束。
//
#include “head.h“
#include
#include
#include
#include
using namespace std;
Answer Pop[POPSIZE];//种群
vector>ProTime;
int **Time;//各工序加工时间
vectorPronum;
int main()
{
time_t T_begin = clock();
srand(time(NULL));
Creat();
InitPop(Pop);
CalTime(Pop);
//Print(Pop);
for (int o = 0; o < G; o++)
{
Select(Pop);
Cross(Pop);
Variation2(Pop);
CalTime(Pop);
//cout << o << endl;
Print(Pop);
}
Print(Pop);
time_t T_end = clock();
float RunningTime = float(T_end - T_begin) / CLOCKS_PER_SEC;
cout << “\n时间= “ << RunningTime << endl;
return 0;
}
void Creat()//读文件
{
ifstream in;
in.open(“G:\\Data\\FJSP\\mk01.txt“);
assert(in.is_open());
in >> WorkpieceNum >> MachineNum;
//换行读取思路,读字符,遇到\n停止
int pm;
ProcessNum = 0;
for (int i = 0; i < WorkpieceNum; i++)
{
Pro pro;
pro.star = ProcessNum;
in >> p;
ProcessNum += p;
pro.num = p;
Pronum.push_back(pro);
for (int j = 0; j < p; j++)
{
in >> m;
vectorprotime;
for (int k = 0; k < m; k++)
{
mtime a;
in >> a.m >> a.time;
protime.push_back(a);
}
ProTime.push_back(protime);
}
}
Time = new int*[ProcessNum];
for (int i = 0; i < ProcessNum; i++)
{
Time[i] = new int[MachineNum];
for (int j = 0; j < MachineNum; j++) Time[i][j] =MAX;
for (int j = 0; j < ProTime[i].size(); j++)
{
Time[i][ProTime[i][j].m-1] = ProTime[i][j].time;
}
}
/*for (int i = 0; i < ProcessNum; i++)
{
for (int j = 0; j < MachineNum; j++) cout << Time[i][j] << “ “;
cout << endl;
}*/
}
void Print()
{
cout << WorkpieceNum << “ “ << MachineNum << endl;
for (int i = 0; i < WorkpieceNum; i++)
{
cout <
for (int j = 0; j < Pronum[i].num; j++)
{
int pronum = Pronum[i].star + j;
cout << ProTime[pronum].size() << “ “;
for (int k = 0; k < ProTime[pronum].size(); k++)
{
cout << ProTime[pronum][k].m << “ “ << ProTime[pronum][k].time << “ “;
}
}
cout << endl;
}
}
void InitPop(Answer *pop)//种群初始化
{
for (int i = 0; i < POPSIZE; i++)
{
float s = (rand() % RAND_MAX) / (float)RAND_MAX;
if(s else if(s>1-LS) LS0(pop[i]);
else GS0(pop[i]);
//RD0(pop[i]);
//GS0(pop[i]);
//LS0(pop[i]);
}
}
void Select(Answer *pop) //选择:锦标赛
{
Answer newpop[POPSIZE];
Answer bestpop = pop[0];
for (int i = 0; i < POPSIZE; i++)
{
int index;//三选一最佳个体下标
int mintime;
int a b c;
a = rand() % POPSIZE;
b = rand() % POPSIZE;
c = rand() % POPSIZE;
index = a;
mintime = pop[index].time;
if (pop[b].time < mintime)
{
index = b;
mintime = pop[index].time;
}
if (pop[c].time < mintime)
{
index = c;
mintime = pop[index].time;
}
newpop[i] = pop[index];
if (pop[i].time < bestpop.time)
{
bestpop = pop
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2019-08-21 16:01 C++遗传算法解决柔性作业车间调度\
目录 0 2019-08-21 16:01 C++遗传算法解决柔性作业车间调度\代码\
目录 0 2019-08-21 16:01 C++遗传算法解决柔性作业车间调度\代码\.vs\
目录 0 2019-08-21 16:01 C++遗传算法解决柔性作业车间调度\代码\.vs\数据格式转换版本\
目录 0 2019-08-21 16:01 C++遗传算法解决柔性作业车间调度\代码\.vs\数据格式转换版本\v15\
文件 38400 2019-08-18 17:19 C++遗传算法解决柔性作业车间调度\代码\.vs\数据格式转换版本\v15\.suo
文件 5541888 2019-08-18 17:19 C++遗传算法解决柔性作业车间调度\代码\.vs\数据格式转换版本\v15\Browse.VC.db
目录 0 2019-08-21 16:01 C++遗传算法解决柔性作业车间调度\代码\.vs\数据格式转换版本\v15\ipch\
目录 0 2019-08-21 16:01 C++遗传算法解决柔性作业车间调度\代码\.vs\数据格式转换版本\v15\ipch\AutoPCH\
目录 0 2019-08-18 16:14 C++遗传算法解决柔性作业车间调度\代码\.vs\数据格式转换版本\v15\ipch\AutoPCH\7809e8a1f4bae114\
文件 34603008 2019-08-18 16:15 C++遗传算法解决柔性作业车间调度\代码\.vs\数据格式转换版本\v15\ipch\AutoPCH\7809e8a1f4bae114\数据格式转换版本.ipch
文件 327680 2019-06-01 09:07 C++遗传算法解决柔性作业车间调度\代码\.vs\数据格式转换版本\v15\ipch\ec5dd6b31f3c3218.ipch
目录 0 2019-08-21 16:01 C++遗传算法解决柔性作业车间调度\代码\Debug\
文件 208384 2019-06-02 16:01 C++遗传算法解决柔性作业车间调度\代码\Debug\数据格式转换版本.exe
文件 865708 2019-06-02 16:01 C++遗传算法解决柔性作业车间调度\代码\Debug\数据格式转换版本.ilk
文件 847872 2019-06-02 16:01 C++遗传算法解决柔性作业车间调度\代码\Debug\数据格式转换版本.pdb
目录 0 2019-08-21 16:01 C++遗传算法解决柔性作业车间调度\代码\数据格式转换版本\
文件 1485 2019-06-01 09:07 C++遗传算法解决柔性作业车间调度\代码\数据格式转换版本.sln
目录 0 2019-08-21 16:01 C++遗传算法解决柔性作业车间调度\代码\数据格式转换版本\Debug\
文件 158720 2019-06-02 16:01 C++遗传算法解决柔性作业车间调度\代码\数据格式转换版本\Debug\vc141.idb
文件 446464 2019-06-02 16:01 C++遗传算法解决柔性作业车间调度\代码\数据格式转换版本\Debug\vc141.pdb
文件 1617 2019-06-02 16:01 C++遗传算法解决柔性作业车间调度\代码\数据格式转换版本\Debug\数据格式转换版本.Build.CppClean.log
文件 1685 2019-06-02 16:01 C++遗传算法解决柔性作业车间调度\代码\数据格式转换版本\Debug\数据格式转换版本.log
文件 756093 2019-06-02 16:01 C++遗传算法解决柔性作业车间调度\代码\数据格式转换版本\Debug\数据格式转换版本.obj
目录 0 2019-08-21 16:01 C++遗传算法解决柔性作业车间调度\代码\数据格式转换版本\Debug\数据格式转换版本.tlog\
文件 738 2019-06-02 16:01 C++遗传算法解决柔性作业车间调度\代码\数据格式转换版本\Debug\数据格式转换版本.tlog\CL.command.1.tlog
文件 19800 2019-06-02 16:01 C++遗传算法解决柔性作业车间调度\代码\数据格式转换版本\Debug\数据格式转换版本.tlog\CL.read.1.tlog
文件 452 2019-06-02 16:01 C++遗传算法解决柔性作业车间调度\代码\数据格式转换版本\Debug\数据格式转换版本.tlog\CL.write.1.tlog
文件 1144 2019-06-02 16:01 C++遗传算法解决柔性作业车间调度\代码\数据格式转换版本\Debug\数据格式转换版本.tlog\li
文件 3622 2019-06-02 16:01 C++遗传算法解决柔性作业车间调度\代码\数据格式转换版本\Debug\数据格式转换版本.tlog\li
文件 422 2019-06-02 16:01 C++遗传算法解决柔性作业车间调度\代码\数据格式转换版本\Debug\数据格式转换版本.tlog\li
............此处省略28个文件信息
相关资源
- C++编写五子棋带AI,mfc,附教程
- 基于VC++的包过滤防火墙论文+源码
- C++程序设计思想与方法课后答案
- C++调用C#dll代码
- 网络编程\\编程实现收发电子邮件
- GDAL2.1.0 X86和X64编译好的库 C++
- 《Essential C++》.pdf
- 传奇源代码cpp版本.zip
- C#调用C++的dll,回调函数,string和in
- Borland C++ 5.5 编译器
- C++dll生成给C#调用
- 社区发现中的GN算法C++实现
- 大漠7.1933VIP所有工具+VC++新手注册安装
- c++ 飞翔的小鸟
- 06.什么是递归.wmv目前数据结构最好的
- 三菱PLC 上位机的SDK文档(1)一般的人
- Essential C++书籍&习题答案
- 《计算机常用数值算法与程序C++版》
- pageRank c++ 实现
- 公交自动化系统
- 基于TCP、IP的网络编程
- C++程序设计教程 第二版 习题及解答
- Microsoft Visual C++ 2010 x86 Runtime - 10.0.4
- TLD 全C++代码 OpenCV3.0.0 VS2013 工程文件
- 数字图像处理 完整源代码
- 非均匀B样条函数的C++程序实现可实现
- uml状态图的实用C/C++设计 中英文非扫
- C++常用经典算法源码
- 音乐播放器源代码 vc++ 6.0
- Visual C++面向对象与可视化程序设计
评论
共有 条评论