主要内容

非线性约束求解器算法

增强拉格朗日遗传算法

遗传算法默认采用增广拉格朗日遗传算法(Augmented Lagrangian genetic algorithm, 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

在哪里cx)表示非线性不等式约束,量表信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.古尔德和托恩特博士。具有一般约束和简单边界的全局收敛的增广拉格朗日算法数值分析学报,第28卷,2,页面545-572,1991。

[2] Conn,A. R.,N. I. M. Gould和pH。L. Toint。“全球会聚增强拉格朗日屏障算法,用于优化一般不等式约束和简单界限,”数学的计算,第66卷第217号,第261-288页,1997年。

罚款算法

惩罚算法类似于整数ga算法.在评估个人的健身中,遗传算法计算惩罚值如下:

  • 如果个体是可行的,惩罚函数就是适应度函数。

  • 如果个体是不可行的,则惩罚函数是种群中可行成员的最大适应度函数,加上(不可行的)个体违反约束的总和。

有关惩罚函数的详细信息,请参见Deb[1]

通过设置NonlinearConstraintAlgorithm选择“惩罚”使用optimoptions.当你做出这个选择时,遗传算法求解约束优化问题如下。

  1. 遗传算法默认的@gacreationnonlinearfeasible创建函数。这个函数试图在所有约束条件下创建一个可行的总体。遗传算法创造足够的个体来匹配PopulationSize选择。有关详细信息,请参见罚款算法

  2. 遗传算法重写您所选择的选择函数,并使用@selectiontournament每场比赛只有两个人。

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

参考

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

相关话题