主要内容

非线性约束求解器算法

增广拉格朗日遗传算法

默认情况下,遗传算法使用增广拉格朗日遗传算法(ALGA)来解决没有整数约束的非线性约束问题。用ALGA算法解决的优化问题是

最小值 x f ( x )

这样

c ( x ) 0 , = 1 c e ( x ) = 0 , = + 1 t 一个 x b 一个 e x = b e l b x u b ,

在哪里c(x)表示非线性不等式约束,量表信(x)表示相等约束,是非线性不等式约束的数量,以及公吨为非线性约束的总数。

增广拉格朗日遗传算法(ALGA)试图解决非线性约束、线性约束和有界的非线性优化问题。在这种方法中,边界和线性约束与非线性约束分开处理。利用拉格朗日参数和惩罚参数,将适应度函数和非线性约束函数相结合,形成子问题。利用遗传算法对一系列此类优化问题进行近似最小化,使线性约束和边界得到满足。

子问题的公式化定义为

θ. ( x , λ. , 年代 , ρ ) = f ( x ) = 1 λ. 年代 日志 ( 年代 c ( x ) ) + = + 1 t λ. c e ( x ) + ρ 2 = + 1 t c e ( x ) 2 ,

在哪里

  • 的组件λ.向量的λ.是非负的,被称为拉格朗日乘子估计

  • 要素年代向量的年代都是非负的转变

  • ρ为正惩罚参数。

算法首先使用一个初始值作为惩罚参数(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。当你做出这个选择时,遗传算法求解约束优化问题如下:

  1. 遗传算法默认的@gacreationnonlinearfeasible创建函数。这个函数尝试创建一个关于所有约束的可行种群。遗传算法创造足够的个人以匹配PopulationSize选择。有关详细信息,请参见罚款算法

  2. 遗传算法重载您的选择选择功能,并使用@selectiontournament每场比赛两个人。

  3. 遗传算法根据这一点进行遗传算法是如何工作的,采用惩罚函数作为适应度度量。

参考

[1] Deb, Kalyanmoy。遗传算法的有效约束处理方法。应用力学与工程中的计算机方法,186(2-4),PP。311-338,2000。

相关话题