非线性规划的罚函数算法摘要:最优化理论和方法是一门十分活跃的学科,罚函数法是将约束问题无约束化的一种主要方法。
本文简要介绍了最优化问题的优化算法,主要介绍了非线性规划的罚函数算法的基本理论和相应的发展过程。
关键词:最优化理论;非线性规划;惩罚函数法1 前言最优化理论和方法的出现可以追溯到十分古老的极值问题,然而,它成为一门独立的学科还是在上世纪40年代末.Dantzing在1947年提出求解一般线性规划问题的单纯形算法之后,随着工业革命、信息革命的不断深化,以及计算机技术的巨大发展,至今短短的几十年,它得到了迅猛的发展.现在,解线性规划、非线性规划以及随机规划、非光滑规划、多目标规划、几何规划、整数规划等各种最优化问题的理论研究发展迅速,新方法不断涌现,在经济、军事、科学技术等方面得到了广泛的应用,成为一门十分活跃的学科.约束非线性规划问题广泛见于工程、国防、经济等许多重要领域.求解约束非线性规划问题的主要方法之一是把它化成无约束非线性规划问题,而罚函数方法和拉格朗日对偶方法是将约束规划问题无约束化的两种主要方法.罚函数方法通过求解一个或多个罚问题来得到约束规划问题的解,如果当罚参数充分大时,求单个罚问题的极小点是原约束规划问题的极小点,则称此罚问题中的罚函数为精确罚函数,否则称为序列罚函数.针对传统罚函数的定义而言,若罚函数是简单的、光滑的,则它一定是不精确的;若罚函数是简单的、精确的,则它一定是不光滑的;若罚函数是精确的、光滑的,则它一定是复杂的.因此我们的工作是对传统罚函数进行了改造,主要是引入了指数型罚函数和对数型罚函数,并在改造后的罚函数中增添了乘子参数,使之成为既是简单的、光滑的,又是精确的结果.我们把这类罚函数称为简单光滑乘子精确罚函数.所谓简单的,即罚函数中包含原问题中的目标函数和约束函数而不包含它们的梯度,若罚函数中包含有原问题中目标函数和约束函数的梯度,则称为是复杂的.2求解最优化问题的介绍和方法分类2.1最优化问题及分类优化技术是一种以数学为基础的,用于求解各种工程问题优化解的应用技术,作为一个重要的科学分支一直受到人们的广泛注视,并在诸多工程领域得到迅速的推广和应用,如系统控制、人工智能、模式识别、生产调度、计算机工程等等。
实现生产过程的最优化,对提高生产效率和生产效益、节约资源具有重要的作用。
同时优化方法的理论研究对改进算法的性能、拓宽算法应用领域、完善算法体系同样具有重要作用。
因此,优化理论与算法的研究时一个同时具有理论意义和应用价值的重要课题。
最优化分为最小化和最大化,本文是求解最大化[10]。
优化方法涉及的工程领域很广,问题种类与性质繁多。
归纳而言,最优化问题可以分为函数优化问题和组合优化问题两大类,其中函数优化的对象是一定区间内连续变量,而组合优化的对象则是解空间中的离散状态。
对于求解函数受约束问题的最优化,除了局部极大值的存在,影响最优化性能的因素主要包括:(1)目标函数所对应曲面的拓扑性质,譬如在相同约束下,线性或凸函数比无规律的函数要容易求解。
(2)可行区域的疏密程度,通常以可行区域占整个搜索空间的比值来度量;同事,约束在可行区域边界上的变化强度与惩罚项的确定也有较大关系。
(3)目标函数在整个搜索空间中整体优化解与可行区域中最优解之比,特别当整体最优解离可行区域很近时将使其对惩罚项非常敏感。
(4)在最优解处活跃约束的数目,活跃约束数目越多,则最优解离可行区域的边界越近。
许多场合将受约束问题转化为无约束问题来处理,常用的途径有:(1)把问题的约束在状态的表达形式中体现出来,并设计专门的算子,使状态所表示的解在搜索过程中始终保持可行性。
这种方法最直接,但适用领域有限,算子的设计也较困难。
(2)在编码过程中不考虑约束,而在搜索过程汇总通过检验解的可行性来决定接的弃用。
这种方法一般只适用于简单的约束问题。
(3)采用惩罚的方法来处理约束的束越界问题。
这种方法比较通用,适当选择惩罚函数的形式可得到较好的效果。
2.2 优化算法及分类所谓优化算法,其实就是一种搜索过程或规则,它是基于某种思想和机制,通过一定得途径或规则来得到满足用户要求的问题的解。
就优化机制与行为分析而分,目前工程中常用的优化算法分为:经典算法、构造性算法、改进型算法、基于系统动态眼花的算法和混合算法等。
(1)经典算法。
包括线性规划、动态规划、整数规划和分支定界等运筹学中的传统算法,其算法计算复杂性一般很大,只适于求解小规模问题,在工程中往往不实用。
(2)构造型算法。
用构造的方法快速建立问题的解,通常算法的优化质量差,难以满足工程需要。
譬如,调度问题中的典型构造型方法有:Johnson法、Palmer法、Gupta法、CDS法、Daunenbring的快速接近法、NEH法。
(3)改进型算法,或称领域搜索算法。
从任一解出发,对其领域的不断搜索和当前解得替换来实现优化。
根据搜索行为,它又可以分为局部搜索法和指导性搜索法。
局部搜索法。
以局部优化策略在当前解的领域中贪婪搜索,如只接受优于当前解的状态作为下一当前的爬山法;接受当前解领域中的最好解作为下一当前解得罪陡下降法等。
指导性搜索法。
利用一些指导规则来指导整个解空间中优良解得探索,如SA、GA、EP、ES和TS等。
(4)基于系统动态演化的方法。
将优化过程转化为系统动态的演化过程,基于系统动态的演化来实现优化,如神经网络和混沌搜索等。
(5)混合性算法。
值上述各种算法从结构会操作上相混合而产生的各类算法。
优化算法当然还可以从别的角度进行分类,如确定性算法和不确定性算法,局部优化算法和全局优化算法等。
3 罚函数算法的基本理论3.1 简单罚函数法罚函数方法的基本思想就是把约束问题变换成无约束问题来求解,采用的方法是在目标函数上加上一个或多个与约束函数有关的函数,而删去约束条件。
考虑问题min ()f x(P) ..()0,1,2,,i s t g x i m ≤=()0,1,2,,j h x j r ==x X ∈其中 m X R ⊂。
罚函数法就是将问题P 换成如下形式:[]11(,,)()()()m r k k k i k j j j Q x f x g x h x λμλφμψ==⎡⎤=++⎣⎦∑∑其中,()y φ,()y ψ为连续函数,且满足()0,0y y φ=≤且()0,0y y φ>>;且(()0,0y y ψ==且()0,0y y ψ>≠,而k λ,k μ为罚因子,(,,)k k Q x λμ称为罚函数.若,k k k λλμ==,则是一个无约束问题;若出现一列,k k λμ,1,2,k k λ= ,k μ↑+∞则是一系列无约束问题.罚函数法主要分SUMT(Sequential Unconstrained Minimization Techniques)法,增广Lagrange 罚函数法和精确罚函数法三类.它们有一点共同点就是对不可行点要予以惩罚其惩罚大小体现在罚参数,k k λμ及(),()y y ψφ上.用罚函数方法来解约束最优化问题通常认为最早由Courant 在求解线性规划时提出。
后来,Camp[48]和Pietrgykowski[47]讨论了罚函数方法在解非线性规划问题中的应用。
Fiacco 和McCormick[1]一[6]在利用罚函数方法,即序列无约束极小化方法上作了不少工作,并总结为SUMT 方法.3.2 内点罚函数法内点罚函数法是利用内点罚函数求解仅含不等式约束的非线性规划问题(P1) min ()f x..()0,1,2,,i s t g x i m ≤=的方法,其中(),(),1,2,,i f x g x i m = 是连续函数。
记1()((),,())T m g x g x g x = ,则(P1)的可行域{}|()0n S x R g x =∈≤。
内点罚函数法是在S 的边界上建造一个“围墙”,使迭代点在S 的内部,因此内点罚函数法由称为SUMT 内点法。
设(P1)的可行域S 内部非空,即{}int |()0n S x R g x =∈<≠∅,在int S 内构造关于()g x 单调增连续函数0,()0()(()),int ,()0i g x B x B g x x S g x -><⎧=∀∈⎨→+∞→⎩ 则B (x )是对x 接近S 边界的一种度量。
我们称B (x )为碰壁项,(,)()()F x r f x rB x =+为内点罚函数,其中0r >为罚因子。
为求解(P1),我们考虑无约束优化问题:min (,)F x r记其最优解为x(r)。
当r 0→时,x(r)趋于(P1)的最优解。
3.3 乘子法乘子法是将增广 Lagrange 函数作为罚函数求解约束优化问题的方法。
本文仅对Hestenes-Powell 乘子法做一简介。
首先考虑仅含等式约束的非线性规划问题(P2)min ()f x..()0,1,2,,j s t h x j p ==其中()f x ,()0,1,2,,j h x j p == 是连续函数。
记1()((),,())T p h x h x h x = ,则(P2)的可行域为{}|()0n S x R h x =∈=。
先分析用简单罚函数求解(P2)的弊端。
当α取2时,21(,)()()p j j F x M f x M h x ==+∑,1(,)()2()()px j j j F x M f x M h x h x =∇=∇+∇∑ min (,)F x M 的最优解k x 满足(,)0k x F x M ∇=,即11()()()2p k k k j j j k h x h x f x M =∇=-∇∑ 由于一般()k f x ∇不趋于零,因此若要求k x 趋于(P2)的最优解,则要求()kj h x 趋于零,也就要求k M 趋于无穷。
因此,k M 必须充分大才可能使k x 接近(P2)的最优解。
为此,我们用一个梯度趋于零的函数——Lagrange 函数(,)L x v 代替()f x ,其中1(,)()()pj j j L x v f x v h x ==+∑。
令211(,,)()()()2p p j j j j j j M x v M f x v h x h x φ===++∑∑(,,)x v M φ称为增广Lagrange 函数,v 称为Lagrange 乘子,1(,,)0)T p M M M => 称为罚因子。
对给的的,k k v M 求解无约束优化问题min (,,)x v M φ (2)k P得最有解k x 。
下面考虑如何修正成子和罚因子由于k x 是(2)k P 的最优解,所以有10(,,)()(())()m k k k k k k k k x j j j j j x v M f x v M h x h x φ==∇=∇++∇∑ 由K-T 条件,我们取1(),1,,k k k k j j j j v v M h x j m +=+= {}11211,()()41,,1max ,,()()4k k k j j j K j k k k j j j M h x h x M j m cM k h x h x -+-⎧<⎪⎪==⎨⎪≥⎪⎩3.4 精确罚函数法考虑问题min ()f x(P3) ..()0,1,2,i s t g x i m≤= n x X R ∈⊂精确罚函数是用形如min[()()]f x E x ν+的无约束问题()P μ来替代问题(P ),其中μ为参数,()E x 为X R →上的函数且满足:1 . ()0E x x X ≥∀⊂,2. ()0E x =的充要条件是x S ∈这里{},()0,1,2,,,i S x g x i m x X =≤=∈若存在0o μ>,则当o μμ>时,使得问题()P μ的解是问题(P )的解,或问题(P )的解是()P μ的解,则称()()f x E x μμμ+为问题(P)的精确罚函数。