首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何处理遗传算法中的不可行个体?

如何处理遗传算法中的不可行个体?
EN

Stack Overflow用户
提问于 2020-06-18 02:32:08
回答 2查看 57关注 0票数 1

我正在尝试用遗传算法以一种热经济的方式来优化火力发电厂。创建population会给我带来很多不可行的个体(例如: ValueErros,TypeError等)。我试着使用惩罚函数,但是GA在第一个种群中以可行的个体适应度被卡住,并且它没有进化。有没有其他的方法来处理它?

如果有人能帮我,我将不胜感激

EN

回答 2

Stack Overflow用户

发布于 2020-07-05 04:38:27

不允许这样的个人获得人口的一部分。它会减慢你的收敛速度,但你可以保证找到的解决方案是好的。

票数 0
EN

Stack Overflow用户

发布于 2020-07-16 17:24:24

您可能需要查看分集控制

从理论上讲,无效的个体可能包含有利的/有效的代码片段,仅仅因为他们有一个bug就丢弃它们是浪费的。在多样性控制中,根据相似性度量将你的种群分组到不同的物种中(对于树结构,通常是编辑距离),然后将每个个体的适应度与组中的其他成员“共享”。在这种情况下,fitness = performance/group_size。这通常是为了防止过早收敛并扩大探索范围。

通过将惩罚函数与多样性控制相结合,如果有效的个人组变得太多,那么该组中的适应度将会下降,而抛出错误但数量较少的组将变得更具竞争力,从而携带潜在的有价值的材料。

最后,像基于排名的选择应该使搜索对异常值不敏感,所以当你的领头羊比其他人好200%时,它不会一直被选中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62436001

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档