几种优化(求最优解)算法的比较

您所在的位置:网站首页 优化搜索算法有哪些方法 几种优化(求最优解)算法的比较

几种优化(求最优解)算法的比较

2024-07-12 08:28| 来源: 网络整理| 查看: 265

python遗传算法(详解)

zdtgbj: 我为什么完整代码跑不出来

遗传算法关于多目标优化python(详解)

HUST_zxs: (接上一条评论,因为单次评论限制1000字符以内) 当然,即使有这两个问题,代码还是可以正常运行,这里其实涉及到了NSGAII的原理了。在父代和子代共同组成的多个帕累托前沿中,NSGAII会先用某些较优的帕累托前沿的全部个体填充新父代,填充到一定程度,再用某个帕累托前沿的部分个体填充新父代,填充至种群数量。实际上,只有当用某个帕累托前沿的部分个体填充新父代时,拥挤距离才真正发挥出筛选个体的作用,也就是说,拥挤距离真正发挥作用的场景其实有限。回到代码,即使拥挤距离相关的计算有错误,这种错误并不影响NSGAII用某些较优的帕累托前沿的全部个体填充新父代的过程,所以种群的进化还是可以得到保证,这种错误产生的不利影响也只是筛选某个帕累托前沿里的个体时,筛选没有那么准而已。用通俗的话说就是,有错误,但是错误不致命,所以代码还是可以正常运行。 另外,还有很多细节不完善,会让初学者很困惑: 1. 调用函数时,传递的参数都是list的切片,仔细分析代码会发现,有些地方其实可以直接传递list的名字,而有些地方必须传递list的切片。 2. 注释有误导性,比如sort_by_values函数和fast_non_dominated_sort函数前面的注释,还不如不写。 3. 拥挤距离相关的代码都不够简洁。

遗传算法关于多目标优化python(详解)

HUST_zxs: 仔细学习了这个代码,这个代码其实是求两个目标函数的最大值,但是用matplotlib画图的时候,为了让画图效果和原理讲解里的画法一致(也就是帕累托前沿是第一象限里的曲线),所以取目标函数的相反数,作者没交代清楚这一点。 除了评论区提到的130行和132行的问题外,还有两个比较大的问题: 1. 拥挤距离的计算没有意义,因为在crowding_distance函数里,先把输入的front内部的个体按照目标函数1的值从小到大排序,计算出的拥挤距离是目标函数1下的排序后的个体的拥挤距离,再把输入的front内部的个体按照目标函数2的值从小到大排序,计算出的拥挤距离是目标函数2下的排序后的个体的拥挤距离,两种拥挤距离对应的个体顺序不一样,那么两种拥挤距离相加没有意义(也就是129行~132行)。 2. 极其隐蔽的错误,按照拥挤距离筛选个体的操作有误(这个错误是和拥挤距离的计算没有意义相关的一个错误),crowding_distance函数输出的distance其实和输入的front内部的个体的原有顺序没有关联了,而在精英策略里,通过拥挤距离筛选个体时,计算某个front对应的拥挤距离从小到大排序的顺序,再用这个顺序作为索引取出这个front里的个体,并不等价于front里的个体按照其对应的拥挤距离从小到大排序的结果(也就是196行,197行),所以操作有误。

【TeeChart】【msflxgrd】等.ocx怎么在vs2013(mfc)中使用

不过是想你: 博主 你好 请问还有teechart 8 的ocx文件吗?

下载安装了zotero,为什么word没显示zotero的加载项

ln_e: 在word加载项转到时,可以看一下禁用项,可能zotero.dox被禁用,启用一下就OK了



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3