希望一点一滴记录自己的学习轨迹,早日毕业。
编码方式分为两个部分前一部分为工序编码,后一部分为机器编码。
在此程序中,是一个6x6的问题,其前半部分采用的根据其工序数量利用随机数直接工序编码,而机器编码过程是根据其工序对应的可选机器数产生随机数,例如第三个工件的第一个工序可选机器数为3和9,则随机产生随机数1或2代表所选机器。
为了提高其可读性,争对其工序编码部分,利用如下所示方法。
经过其二次编码后之前的工序编码变为了201,401,301...,这样更加清晰明了。
解码过程
在解码过程中,分别创建两个数组,一个是机器数组一个是工件数组分别记录每一次加工所对应的开始时间和结束时间。根据之前生成的随机数对应其所选的机器和加工时间。对比统计机器上的开始和结束时间以及该工件的结束时间,取较大值作为下一工件的开始时间。