[PlantSimulation]GAWizard遗传算法的应用(二)
来源:互联网 发布:mac有风扇声音很大 编辑:程序博客网 时间:2024/06/06 08:55
在阈值设置问题中,需要给目标值设定合适的变化范围,换句话说,就是找到一个最大值和最小值,使其在其区间内变化,从而是系统稳定、高效运行。在PlantSimulation中常见的就是优化暂存区的容量。
此次案例模型如下图所示:
各实体设置如下:M1、M2、M4的作业时间均为1min,可靠性为90%,MTTR为25min;M3作业时间为4min,可靠性为60%,MTTR为1h;模型仿真时间为50天。
本模型的目的是在每小时稳定输出40-45个产品的同时确定B1、B2、B3三个暂存区的容量。一种方法可以运用实验设计的方法,你需要将暂存区的容量从1增加至100,为了避免偶然性,每次实验假设运行10次,三个暂存区的话,意味着需要运行100*100*100*10次模型,运算量巨大。
因此,PlantSimulation提供了另一种有效的方法:遗传算法。
有关遗传算法的基本概念请看上一篇文章《遗传算法》。
1.适应度函数
在本次试验中,每小时输出小于40或者大于45均视为不合法结果(not valid)。
在这个模型的具体实现过程中,通过增加暂存区容量直至100,挑选出最合适的值,也就是保证目标输出的前提下最小的暂存区容量。
适应度函数的计算通过编写EndSim方法来实现,程序如下:
if drain.statThroughputPerHour < 40 ordrain.statThroughputPerHour > 45 then
fitnessValue:=1000
else
fitnessValue:=b1.capacity+b2.capacity+b3.capacity
end
2.下一步,按住shift键的同时,将B1、B2、B3拖到GAWizard图标上,此为设置需要优化的参数,设置capacity为具体的优化参数。
3. 按住shift键的同时,将全局变量fitnessValue拖到GAWizard图标上。
4.打开GAWizard,打开优化参数,进行下图设置:
5.检查适应度函数,优化目标为最小值。
6.设置每代个体数为10.
点击重置-运行,运算结果如下图所示:
- [PlantSimulation]GAWizard遗传算法的应用(二)
- [PlantSimulation]GAWizard遗传算法的应用
- [PlantSimulation]User Interface应用(二)
- [PlantSimulation]Transporter运输工具的详细用法(二)
- 遗传算法工具箱的应用
- 遗传算法工具箱的应用
- 遗传算法工具箱的应用
- 遗传算法入门(二)
- 遗传算法入门(二)
- [PlantSimulation]矢量图vector graphic的应用
- [PlantSimulation]User Interface应用(一)
- 遗传算法(二)改进:自适应、遗传退火算法
- 第一章谢菲尔德大学的MATLAB遗传算法工具箱(二)
- 简单的遗传算法问题之实数编码(二)
- 遗传算法的应用(求解迷宫问题)
- 遗传算法的C语言实现(二)
- 遗传算法的C#实现及应用
- 遗传算法的C#实现及应用
- 自定义View(三) 角度和弧度
- 自顶向下深入分析Netty(一)--预备知识
- 网络性能评估工具Iperf
- rabbitmq-server 安装方法
- 强大的矩阵奇异值分解(SVD)及其应用
- [PlantSimulation]GAWizard遗传算法的应用(二)
- 让某个Div排在最前
- day05
- 面试问题(1)
- 如何优化css代码 适当添加class名重复利用css
- android 内存泄漏的优化
- POJ 2217 Secretary 笔记
- Unity3D#Unity获取游戏对象详解
- app静默升级