默认情况下,遗传算法使用增广拉格朗日遗传算法(ALGA)来解决没有整数约束的非线性约束问题。用ALGA算法解决的优化问题是
这样
在哪里c(x)表示非线性不等式约束,量表信(x)表示相等约束,米是非线性不等式约束的数量,以及公吨为非线性约束的总数。
增广拉格朗日遗传算法(ALGA)试图解决非线性约束、线性约束和有界的非线性优化问题。在这种方法中,边界和线性约束与非线性约束分开处理。利用拉格朗日参数和惩罚参数,将适应度函数和非线性约束函数相结合,形成子问题。利用遗传算法对一系列此类优化问题进行近似最小化,使线性约束和边界得到满足。
子问题的公式化定义为
在哪里
的组件λ.我向量的λ.是非负的,被称为拉格朗日乘子估计
要素年代我向量的年代都是非负的转变
ρ为正惩罚参数。
算法首先使用一个初始值作为惩罚参数(InitialPenalty
)。
遗传算法最小化一系列子问题,每个子问题都是原问题的近似。每个子问题都有固定的值λ.,年代, 和ρ。当子问题最小化到要求的精度并满足可行性条件时,更新拉格朗日估计。否则,惩罚参数将增加一个惩罚因子(罚款
)。这就产生了一种新的子问题形式和最小化问题。重复这些步骤,直到满足停止条件。
每个子问题解决方案代表一代。因此,当使用非线性约束时,每个生成的功能评估数量远远高于其他。
选择增广拉格朗日算法通过设置NonlinearConstraintAlgorithm
选择“auglag”
使用optimoptions
。
对于该算法的完整描述,请参考以下资料:
康涅狄格,a.r., n.i.m. Gould和博士L. Toint。一种具有一般约束和简单界的全局收敛增广拉格朗日优化算法SIAM数值分析期刊,第28卷,第2页,第545-572,1991页。
[2] Conn,A. R.,N.i.I.M. Gould和pH。L. Toint。“全球会聚增强拉格朗日屏障算法,用于优化一般不等式约束和简单界限,”数学的计算,第66卷,217号,261 - 2881997页。
惩罚算法类似于整数ga算法。在评估个人的健身中,遗传算法
计算惩罚值如下:
如果个体是可行的,惩罚函数就是适应度函数。
如果个体不可行,惩罚函数是种群中可行成员之间的最大适应度函数,加上(不可行)个体违反约束的总和。
关于惩罚函数的详细信息,请参见Deb[1]。
设置惩罚算法NonlinearConstraintAlgorithm
选择“惩罚”
使用optimoptions
。当你做出这个选择时,遗传算法
求解约束优化问题如下:
遗传算法
默认的@gacreationnonlinearfeasible
创建函数。这个函数尝试创建一个关于所有约束的可行种群。遗传算法
创造足够的个人以匹配PopulationSize
选择。有关详细信息,请参见罚款算法。
遗传算法
重载您的选择选择功能,并使用@selectiontournament
每场比赛两个人。
遗传算法
根据这一点进行遗传算法是如何工作的,采用惩罚函数作为适应度度量。
[1] Deb, Kalyanmoy。遗传算法的有效约束处理方法。应用力学与工程中的计算机方法,186(2-4),PP。311-338,2000。