基于FactorySimulation平台,利用“遗传算法(GA)+仿真”来进行生产订单优化排序

       遗传算法(GA)是一种广泛采用的优化算法,该方法实现简单、通用性强、优化效果不错,许多离散事件仿真(DES)软件都支持该算法与仿真的结合。评价“遗传算法+仿真”工具有几个指标:易于使用、可扩展性强、运行速度快,国产工厂仿真软件FactorySimulation(以下简称FS,参见www.factorysimulation.net)在这三个指标方面都表现优异。

      本文详细介绍了在FS平台上使用“遗传算法+仿真”来进行生产订单优化排序的实现过程,为了进行结果的比较,采用了一篇公众号文章中的案例(该案例采用国外软件),案例虽然非常简单,但可以全面展示FS的算法工具的使用流程。

1、基于FS的仿真建模过程

         在FS中快速建立如下车间仿真模型。

        如上图,6类零件(C1,…,C6)依次在4台设备上(加工站1,…,加工站4)进行加工,批量分别为50, 35, 68, 24, 30, 45,如下图:

     6类零件在每台设备上的加工时间如下表(单位:分钟)。

       在FS中定义每台设备的每道工序加工时间,如下图(以加工站1为例)。

     优化问题描述:确定6类零件的最佳生产顺序,使得目标值最佳。本文考虑三种情况:

    1)最小化完工时间(单目标优化)

    2)最小化零件平均通过时间(单目标优化)

    3)综合考虑1)和2)两个目标(多目标优化)

2、以最小化完工时间为优化目标

      创建GA工具,进入设置界面,如下图。进化代数设为20,并发线程数设为10。

算法参数如上图:

1)优化目标为仿真总时长,时间格式,最小化

2)种群大小20

3)染色体6位(分别表示6类零件)

4)默认正整数编码

5)解码方法如下:解析染色体编码,生成零件的投产顺序,并添加到“入口”对象的订单列表中。

6)目标值计算方法为空,默认取完工时间(即仿真时长)为目标值

7)交叉方法:OX算子

8)变异方法:默认

9)交叉概率和变异概率分别为0.8,0.2

运行仿真优化,1秒钟得到结果。

        由于问题简单,算法很快收敛,最优解为2、4、6、5、3、1,最佳完工时间为379740秒(4:9:29:0),和公众号文章中的案例结果一样。

 仿真运行最优解,得到甘特图和设备利用率图,也和原始案例的结果一模一样。

3、以最小化平均通过时间为优化目标

        过程和2类似,不同之处在于优化目标值(零件的平均通过时间,即零件从投入到完工的时间差)的计算方法不是默认,需要编写一下脚本。

解码方法的脚本和2一样,目标值计算方法的脚本如下:

       下面是仿真优化结果,可见按4, 2, 3, 1, 6, 5的顺序进行生产,零件的平均通过时间最短,为2:3:31:30.476,即2天3小时31分30秒476毫秒。此时仿真时长为4:10:22:0,比以完工时间为优化目标的最优解的时间长。

4、以最小化完工时间和最小化零件平均通过时间为目标

        这是一个双目标优化问题,所得的优化解称为Pareto解。FS通过NSGA-Ⅱ工具来实现多目标遗传算法。NSGA-Ⅱ是“第二代非支配遗传算法”的简称。

        NSGA-Ⅱ算法的定义界面如下,首先设定两个目标:

目标值计算方法如下,返回两个目标值的数组。

       最终优化结果如下,这里列出了4个非支配解。综合判断下,解2比较好,因为两个目标值都接近单目标的最优解。

5、结论

       将遗传算法和仿真相结合,有非常广阔的应用前景,在此不再赘述。在本公众号以前的文章中,也多次进行了遗传算法+仿真的介绍,感兴趣的读者可以查阅。

        和国外软件相比,FS在“GA+仿真”的实现过程中,对界面的易用性、脚本的灵活性、计算效率进行了大幅改善。

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
基于遗传算法GA)来优化模糊隶属函数实现最优模糊控制是一种常用的方法。模糊控制是一种基于模糊逻辑的控制方法,它使用模糊隶属函数来描述输入变量与输出变量之间的关系。模糊隶属函数是模糊规则的基础,它决定了模糊控制系统的性能。 GA是一种经过演化和优化的搜索算法,它模拟了生物进化的机制来寻找最优解。在优化模糊隶属函数的过程中,GA可以通过不断地迭代,逐步改进隶属函数的参数和形状,以达到最佳控制效果。 具体实现上,首先需要定义隶属函数的形状和参数表示方法,可以采用一元函数、Sigmoid函数等形式。然后,利用GA的搜索能力,在隶属函数的参数空间中搜索最优解。优化的目标可以是使得模糊控制系统的误差最小、响应最快或者系统稳定性最好等。 在遗传算法的执行过程中,需要定义适应度函数来评估每个个体(即隶属函数)的适应度。适应度函数可以根据控制系统的性能指标来定义,在每一代中,根据适应度函数的评估结果,选择适应度较高的个体进行交叉和变异操作,生成下一代的个体。 通过迭代的优化过程,随着代数的增加,适应度较高的个体会逐渐聚集到种群中,最终得到一个较好的隶属函数参数表示,以实现最优的模糊控制效果。 总之,基于遗传算法优化模糊隶属函数是一种有效的方法,它可以通过不断地迭代和演化,找到最优的隶属函数参数表示,以实现最佳的模糊控制效果。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值