柔性作业车间调度FJSP
有关于FJSP模型的描述,大家可以移步我的另一篇博客:麻雀算法SSA解决柔性作业车间调度问题FJSP
模拟退火算法SA
模拟退火算法SA是一种很很很高效的算法,运行效率高,前提是邻域要设计得当!
SA算法本身比较简单,我们只简述一下~ ~
SA简介
模拟退火算法SA是一种应用广泛的启发式随机智能优化算法,该算法模拟热力学系统中的退火过程,把目标函数作为能量函数,对高温物体进行缓慢降温,使其内部分子的能量状态达到最低。在模拟退火算法中,物体内部原子有离散的多个状态,每个状态有着与之对应的状态能量,经过降温后达到热平衡,原子以某个规则排列,达到高密度、低能量的稳定状态,此时的稳定状态就相当于算法的全局最优解。
SA具体流程
描述图:
SA本身比较简单,重要的是对具体问题的邻域设计,合适的邻域设计才能最终搜索到高质量的解!
SA求解FJSP实例
测试算例
采用 Brandimarte 的 mk 算例测试,配置:i7-10750H(算是比较老的电脑了),设置了1000次迭代次数,耗时仅 3S,(MATLAB代码可咨询 3249992049)在12代CPU上,耗时仅仅1S。不出意外,SA可能应该是最快最简单且效果好的启发式算法了~
结果
迭代曲线
甘特图
写在最后
作品系本人原创,未经本人允许,禁止搬运、盗图、盗文!!如需完整MATLAB代码,可私戳博主 ~ ~