资源简介
用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个文件信息
相关资源
- 国际象棋的qt源代码
- C++中头文件与源文件的作用详解
- C++多线程网络编程Socket
- VC++ 多线程文件读写操作
- 利用C++哈希表的方法实现电话号码查
- 移木块游戏,可以自编自玩,vc6.0编写
- C++纯文字DOS超小RPG游戏
- VC++MFC小游戏实例教程(实例)+MFC类库
- 连铸温度场计算程序(C++)
- 6自由度机器人运动学正反解C++程序
- Em算法(使用C++编写)
- libstdc++-4.4.7-4.el6.i686.rpm
- VC++实现CMD命令执行与获得返回信息
- 白话C++(全)
- C++标准库第1、2
- 大数类c++大数类
- C++语言编写串口调试助手
- c++素数筛选法
- C++ mqtt 用法
- 商品库存管理系统 C++ MFC
- c++ 多功能计算器
- C++17 In Detail
- 嵌入式QtC++编程课件
- 颜色识别形状识别STM103嵌入式代码
- c++ 邮件多附件群发
- c++ 透明代理(hookproxy)
- mfc 调用redis
- FTP客户端源码(c++)
- c++ 画图(14Qt-XPS)
- c++多边形交并差运算
评论
共有 条评论