这里 是 上的子集,既传感器布置的大概区域,问题可行域。 是属于 的点集,既传感器布置的可行解。这是在实数解空间下的约束优化问题。所以遗传算法应根据本课题的问题处理好两个方面。一个是如何处理约束。二是如何在实数编码下进行遗传运算。
对于约束问题,由于本文的工作也是试探性质的,所以拟采用多种处理约束的方法。用户在运行优化前选择不同的处理方法,运算后可以根据比较或对运算中数据的分析,调整处理约束的方法,以期望得到更好的优化结果。
对于实数下的遗传运算,采用最近的一些方法,并且采用何种方法,也是可以由用户选择的。此外,加入参数适应性,以使得遗传算法更适合本问题的求解,也利于用户调整。
4.2.1 约束的处理
由于对于染色体的遗传运算是通常获得不可行的后代,因此运用遗传算法解非线性规划的核心问题是如何满足约束的问题。今年来,已经提出了几种遗传算法满足约束技术。Michalewicz对此作出了极好的综述。这些技术大致可以分为以下四类:
(1) 拒绝策略
(2) 修复策略
(3) 改进遗传算子策略
(4) 惩罚策略
拒绝策略:拒绝策略抛弃所有进化过程中产生的不可行染色体。这是遗传算法中普遍的做法。然而,这是很严格的限制。例如有些优化问题的最优解在边界上,从不可行域可能能更快的得到最优解。
修复策略:修补染色体是对不可行染色体采用修复程序使之变为可行的。对于多组合优化问题,构造修复程序相对比较容易。Liepins和他的合作者通过对遗传算法的性能实验测试证明,对于一个有多个不连通可行集的约束组合优化问题,修复策略在计算速度和计算性能上都远胜于其他策略**********。
修复策略取决于是否存在一个可将不可行解转化为可行的修复程序。该方法的缺点是它对问题本身的依赖性,对于每个具体问题必须设计专门的修复程序。对于某些问题,修复过程甚至比原问题还复杂。
改进遗传算子策略:解决可行性问题的一个合理办法是设计针对问题的表达方式以及专门的遗传算子来文持染色体的可行性。
惩罚策略:上面三种策略的共同优点是都不会产生不可行解,缺点则是无法考虑可行域外的点。对于约束严的问题,不可行解在种群中的比例很大。这样,将搜索空间限制在可行域内就很难找到可行解。Glover和Greenberg建议的约束管理技术允许在搜索空间里的不可行域中进行搜索,这比将搜索限制在可行域内的方法能更快地获取最优解或获得更好的最终解。所以本软件使用惩罚策略解决问题。用户在不同的惩罚策略间选择。并确定相关参数。
惩罚技术大概是遗传技术中最常用的技术。本质上它是通过惩罚不可行解将约束问题转换为无约束问题。在遗传算法中,惩罚技术用来在每代的种群中保持部分不可行解,是遗传搜索可以从不可行域和可行域两边来达到最优解。
一般,解空间包含两部分:可行域和不可行域。我们不能对这些子空间作任何假设,特别是当它们是非凸或非联通时,如图4-3。控制非可行染色体远不是一件容易的事,从图4-3可知,不可行解 与最优解 的距离比不可行解 和可行解 都近,我们希望给 较小的惩罚,即使它比 离可行解域更远。可以相信尽管 是不可行解,但是它比 含有更多的有关最优点的信息。然而,我们对最优点没有任何先验知识,所以一般很难判断哪一点好。
惩罚策略的主要问题是如何设计一个惩罚函数 ,从而能有效的引导遗传搜索达到解空间的最好区域。不可行染色体和解空间可行部分的关系在惩罚不可行染色体中起了关键作用:不可行染色体的惩罚值相应与某种测度下的不可行 地铁闸机检测系统中特定数目传感器布置方法(8):http://www.751com.cn/shuxue/lunwen_2417.html