1.一种基于剩余工序最大值优选的柔性作业车间调度机器选择方法,采用以下步骤:步骤1:输入问题,读取问题数据,初始化机器数量MachNum、机器集合Machine{}、工序集合ALLOperation{}、工序总数ProcLength;
步骤2:设置当前机器负荷数组MachLoad(MachNum)、当前工序加工时间数组ProcTime(MachNum);
步骤3:初始化机器负荷数组MachLoad(),所有元素置0;
步骤4:随机排列工序集合ALLOperation{}的元素,求得多种机器选择方案;
步骤5:设置已选择机器的工序数目为i,并设初始值为i=0,表示当前无已选择机器的工序;
步骤6:比较i是否等于ProcLengh,当i=ProcLengh时,表示机器选择完成,跳至步骤
17,否则,执行步骤7;
步骤7:选取ALLOperation{}集合中第i+1个元素作为当前工序;
步骤8:获取当前机器负荷数组MachLoad()与当前工序加工时间数组ProcTime();
步骤9:分别为当前机器负荷数组MachLoad()与当前工序加工时间数组ProcTime()赋值;
步骤10:将当前机器负荷数组MachLoad()与当前工序加工时间数组ProcTime()赋值结果相加,得到数组Score();
步骤11:比较数组Score()中的元素,看最小值是否唯一;若唯一,选择Score()中最小元素对应的机器加工,跳至步骤15,否则,执行步骤12;
步骤12:最小值对应机器组成候选机器集CandMach{};
步骤13:将候选机器集中多个候选机器除当前工序外其余可加工但未加工的工序按加工时间从小到大排序得到多个候选机器对应的数组;数组从左到右大小依次递增;
步骤14:步骤13所得到的多个数组相同位置元素从左到右比较,选择先出现较大值元素的数组对应的候选机器进行加工;
步骤15:更新机器负荷数组MachLoad();
步骤16:i=i+1;跳至步骤6;
步骤17:输出机器选择结果,问题结束。