遗传算法默认使用增广拉格朗日遗传算法(ALGA)来解决不含整数约束的非线性约束问题。ALGA算法求解的优化问题为
这样
在哪里c(x)为非线性不等式约束,量表信(x)表示等式约束,米是非线性不等式的数量约束,和太是非线性约束的总数。
增广拉格朗日遗传算法(ALGA)试图解决具有非线性约束、线性约束和边界的非线性优化问题。在这种方法中,边界和线性约束与非线性约束分开处理。利用拉格朗日参数和惩罚参数,将适应度函数和非线性约束函数结合起来,形成子问题。利用遗传算法近似最小化这类优化问题的序列,以满足线性约束和边界。
子问题的提法定义为
在哪里
的组件λ我向量的λ是非负的,被称为拉格朗日乘数估计
的元素年代我向量的年代非负移位
ρ是正的惩罚参数。
该算法首先使用惩罚参数的初始值(InitialPenalty
).
遗传算法最小化子问题序列,每个子问题都是原始问题的近似值。每个子问题都有一个固定的值λ,年代,ρ.当子问题被最小化到所需的精度并满足可行性条件时,拉格朗日估计被更新。否则,惩罚参数将增加一个惩罚因子(PenaltyFactor
).这导致了一个新的子问题的公式和最小化问题。重复这些步骤,直到满足停止条件。
每个子问题的解决方案代表一代人。因此,使用非线性约束时,每代函数计算的数量要比使用其他约束时高得多。
方法选择增广拉格朗日算法NonlinearConstraintAlgorithm
选项“auglag”
使用optimoptions
.
关于该算法的完整描述,请参见以下参考文献:
[1]康恩,n·i·m·古尔德,l·托因特博士。具有一般约束和简单边界的全局收敛增广拉格朗日优化算法数值分析杂志,第28卷第2期,第545-572页,1991年。
[2]康恩,n·i·m·古尔德,l·托因特博士。“具有一般不等式约束和简单边界的全局收敛增广拉格朗日势垒优化算法”计算数学,第66卷,第217期,261-288页,1997年。
惩罚算法类似于整数ga算法.在评估一个人的适应性时,遗传算法
计算惩罚值如下:
如果个体是可行的,惩罚函数就是适应度函数。
如果个体是不可行的,惩罚函数是种群中可行成员的最大适应度函数,加上(不可行的)个体违反约束的总和。
关于惩罚函数的详细信息,请参见Deb[1].
属性选择惩罚算法NonlinearConstraintAlgorithm
选项“惩罚”
使用optimoptions
.当你做出这个选择时,遗传算法
求解约束优化问题如下。
遗传算法
默认为@gacreationnonlinearfeasible
创建函数。这个函数尝试创建一个关于所有约束的可行总体。遗传算法
创建足够的个体来匹配PopulationSize
选择。详细信息请参见点球算法.
遗传算法
覆盖您的选择选择函数,并使用@selectiontournament
每场比赛两个人。
遗传算法
根据遗传算法是如何工作的,采用罚函数作为适应度测度。
Deb, Kalyanmoy。一种有效的遗传算法约束处理方法。应用力学与工程的计算机方法,186(2-4),pp. 311 - 33,2000。