91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 16KB
    文件類型: .cpp
    金幣: 1
    下載: 0 次
    發(fā)布日期: 2021-06-02
  • 語言: C/C++
  • 標(biāo)簽: 12??

資源簡介

代碼是通過設(shè)定不同的參數(shù)來進行求解混合流水車間的調(diào)度問題

資源截圖

代碼片段和文件信息

#include?
#include?
#include?
#include?
#include?
#include?
using?namespace?std;
ofstream?outfile;
#define?machinenumber?6??//機器的總數(shù)(等于每道工序的并行機個數(shù)×工序數(shù))
#define?parallel?2???????//每道工序的并行機個數(shù)
#define?ordernumber?3?????//工序數(shù)
#define?workpiecesnumber?6??//工件總數(shù)
#define?populationnumber?200??//每一代種群的個體數(shù)

double?crossoverrate=0.6;????????????//交叉概率
double?mutationrate=0.05;?????????????//變異概率
int?G=100;????????????????????????//循環(huán)代數(shù)100
int?usetime[workpiecesnumber][ordernumber];??//第幾個工件第幾道工序的加工用時;
int?machinetime[ordernumber][parallel]=?{0};?//第幾道工序的第幾臺并行機器的統(tǒng)計時間;
int?starttime[workpiecesnumber][ordernumber][parallel];//第幾個工件第幾道工序在第幾臺并行機上開始加工的時間;
int?finishtime?[workpiecesnumber][ordernumber][parallel];//第幾個工件第幾道工序在第幾臺并行機上完成加工的時間;
int?ttime[populationnumber];??????//個體的makespan;???????????????????????????????????????????????????????????????????????????
int?a?[populationnumber][workpiecesnumber];//第幾代的染色體順序,即工件加工順序;
int?times[100];??//用來存儲已知用時的數(shù)組;
int?makespan;????//總的流程加工時間;
int?flg7;???//暫時存儲流程加工時間;
double?fits[populationnumber]?;//存儲每一代種群每一個個體的適應(yīng)度,便于進行選擇操作;
???????????????????????????????????????????????????????????????????????????????????????//????????????????
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)???//計算適應(yīng)度函數(shù),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道工序的第一臺并行機器的當(dāng)前工作時間;
????????????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]);??//開

評論

共有 條評論