搜索
查看: 12682|回复: 9

AMESim遗传算法模型优化、多线程计算开启方式

    [复制链接]
  • 打卡等级:无名新人
  • 打卡总天数:1
  • 打卡总奖励:2
发表于 2019-3-1 13:02:06 | 显示全部楼层 |阅读模式
本帖最后由 maxieyun 于 2019-3-1 13:02 编辑

遗传算法模型参数优化
优化需要理想结果作为参考对比。
定步长运行结果与理想结果相减后取绝对值积分作为目标优化函数或者直接以某参数作为目标优化函数。
找到Performance analysis 的state contributions会显示出需要优化的变量作为优化输入参数。
打开Setings》export setup 将优化输入参数和目标优化函数导入,设定取值范围,保存。
打开design exploration tools选择optimization》new study 》genetic algorithm,勾选输入参数与输出参数,设置遗传算法参数后退出。

本地模式下,AMESim多线程计算开启方式

打开tools》options》AMESim perferences
将parallel processors settings的两个值均调到个人需求而定的值。

回到桌面按windows+R 运行msconfig 在引导的高级选项中设定处理器个数与最大内存的值。

重启后感受CPU的咆哮。






设置优化目标

设置优化目标

export setup

export  setup

Performance analysis

Performance analysis

genetic algorithm

genetic algorithm

parallel processors settings

parallel processors settings

引导高级选项设定

引导高级选项设定
  • 打卡等级:无名新人
  • 打卡总天数:1
  • 打卡总奖励:2
 楼主| 发表于 2019-3-2 09:19:59 | 显示全部楼层
本帖最后由 maxieyun 于 2019-3-2 12:11 编辑

genetic algorithm运行过程可以add plot查看目标函数收敛情况,优化参数值的变化对目标参数的影响history plot可查看所有参数随优化过程的变化。
scatter plot可查看某两个参数间关系,例如某一优化参数值的变化对目标参数的影响。
如何查看多线程计算有无开启,当前的线程数。
装个360或者毒霸啥的管家类软件
或者找到windows上网管理,如图STDSIMexplore是AMESim的多线程管理进程,STDSIMdaemon就是一个个的计算线程了

需要注意的是多线程计算在加快计算速度的同时也会降低计算精度,影响最后的结果。

history plot

history plot

scatter plot

scatter plot

多线程计算查看

多线程计算查看
回复 支持 反对

使用道具 举报

  • 打卡等级:无名新人
  • 打卡总天数:1
  • 打卡总奖励:2
 楼主| 发表于 2019-3-2 09:36:40 | 显示全部楼层
Population size、Reproduction ratio、Mutation probability、       
Max. number of generation都是遗传算法的基本概念,请自行百度。
了解genetic algorithm局部最优、全局最优、发散的概念。
在无全局最优的情况下,局部最优既是全局最优,例如以最短计算时长为目标的优化,由于计算时长不可能为0,只能无限接近,故结果只有局部最优。
Mutation amplitude是AMESim针对特定个体的参数附加的噪声参数,取值范围0~1.此值接近于1则计算时间增加,AMESim将试图使得结果接近全局最优,此值接近于0,则收敛过程加快,但有可能陷入局部最优。
seed,遗传算法中需要随机数产生函数产生变异等步骤,AMESim使用 pseudo-random number generator(伪随机数生成器)产生随机数,不改变任何参数的情况下,两次运行相同的study,则得到结果相同,建议每次运行时改变seed值,目前来看应该是此值任取,欢迎讨论。
AMESim给出了经验公式,用于设定遗传算法参数
应根据参数数量选择总体大小。实验表明,Population size>=4.5*(优化参数个数),往往会产生很好的效果。
高Reproduction ratio往往导致快速收敛,但也可能导致局部收敛。50%到85%之间的繁殖率通常能产生很好的效果。
number of generation建议大于10.
回复 支持 1 反对 0

使用道具 举报

  • 打卡等级:无名新人
  • 打卡总天数:1
  • 打卡总奖励:2
 楼主| 发表于 2019-3-2 09:38:33 | 显示全部楼层
喜欢阅读英文原版help童靴可以在AMESim demo help中搜索mutation,第一条就是AMESim对于genetic algorithm的解释。
回复 支持 反对

使用道具 举报

  • 打卡等级:无名新人
  • 打卡总天数:1
  • 打卡总奖励:2
 楼主| 发表于 2019-3-18 10:03:15 | 显示全部楼层
关于优化参数的选择问题,我之所以使用Performance analysis 的state contributions 确定优化参数,是因为我的优化目标是模型的整体计算时间和计算精度达到的平衡。对于不同的优化目标,优化参数的选取方式是不同的,具体请参阅AMESim Help,本文仅起到抛砖引玉的作用,不足之处恳请各位指正。
回复 支持 反对

使用道具 举报

发表于 2020-4-19 19:00:48 | 显示全部楼层
仿真比较厉害,要慢慢学
回复 支持 反对

使用道具 举报

发表于 2020-7-12 10:39:45 | 显示全部楼层
你好,是否可以帮我做一下遗传算法的仿真,有偿
回复 支持 反对

使用道具 举报

  • 打卡等级:常驻居民
  • 打卡总天数:534
  • 打卡总奖励:755
发表于 2021-8-8 17:11:48 | 显示全部楼层
非常好的帖子!简单明了,我按照楼主的建议去读了Optimization techniques。里边有参数设置的建议!
感谢楼主分享!
回复 支持 反对

使用道具 举报

发表于 2022-4-19 10:18:28 | 显示全部楼层
请问遗传算法优化PID参数如何仿真
回复 支持 反对

使用道具 举报

发表于 2022-5-6 11:09:54 | 显示全部楼层
很好的贴子。刚接触AMesim,希望以后能用到
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则