hitywl 发表于 2005-10-17 21:33:39

问个遗传算法中处理约束的问题!

我不是使用软件的 ,是自己做程序开发的。能否帮我解答一下问题呢?
在遗传算法中非线性约束问题的处理,现在一般采用什么方法?比较新的是什么?那种的处理方式好一些?
谢谢!

linweifeng 发表于 2005-10-18 12:20:49

Re:问个遗传算法中处理约束的问题!

<遗传算法中处理约束 >
主要来自玄光男,和程润伟的两本书
==============================

拒绝方法:抛弃进化过程中产生的所有不可行的解。简单,效率低。

修补方法:获得不可行解后经过修补变成可行解。 对于组合优化问题,创建修补过程相对较容易。

罚函数方法:遗传算法中最常用的方法,通过对不可行解的惩罚来将约束问题变成无约束问题,任何对约束的违反都要在目标函数中添加惩罚项。思路从传统优化中借鉴而来,但应用上仍然有区别。遗传算法中,罚函数法用于在每一代中维持一定数量的不可行解,从而使遗传搜索从可行区域和不可行区域两个方向搜索最优解,通常并不拒绝每代中的不可行解,原因在于其中一些个体可能提供关于最优解的更有用的信息。我们的关注点在于如何确定惩罚项,从而在信息保留(保持一些不可行解)与选择压力(拒绝一些不可行解)之间维持平衡,并要注意避免惩罚不够或者过度惩罚。解决问题以前,对于可行区域和不可行区域这两个子空间没有任何前提假设。应用罚函数法的关键在于如何设计罚函数f(x),这时目标函数可以采用“加”的形式,也可以采用“乘”的形式。

ghx2004 发表于 2005-11-23 21:36:52

Re:问个遗传算法中处理约束的问题!

对于惩罚函数法,建议用准确不可微罚函数!
页: [1]
查看完整版本: 问个遗传算法中处理约束的问题!