13《运筹学》(第四版)非线性规划罚函数法介绍
- 格式:pdf
- 大小:1.91 MB
- 文档页数:43
⾮线性规划author: lunardate: Tue 01 Sep 2020 04:31:18 PM CST⾮线性规划如果⽬标函数中包含⾮线性函数, 就称这种规划问题为⾮线性规划问题.⽬前解决⾮线性规划还没有⼀种通⽤⽅法.线性规划和⾮线性规划的区别如果线性规划的最优解存在, 其最优解只能在其可⾏域的边界上达到(特别是可⾏域的顶点上达到); ⽽⾮线性规划的最优解可能在可⾏域的任意⼀点达到.⾮线性规划的MATLAB解法⾸先可以将⾮线性规划表⽰为如下形式:minC(x), Ceq(x)是⾮线性向量函数.MATLAB计算⾮线性规划的函数为x = fmincon(fun, x0, A, B, Aeq, Beq, LB, UB, NONLCON, OPTIONS)fun是⽤.m⽂件定义的⽬标函数; x0表⽰决策变量的初始值; NONLCON是⽤.m⽂件定义的⾮线性向量函数; OPTIONS定义了优化参数; 其余参数与线性规划⼀致.⽰例求解下列⾮线性规划问题\min f(x) = x_1^2 + x_2^2 + x_3^2 + 8\\ \begin{aligned} s.t.\quad &x_1^2 - x_2 + x_3^2 \ge 0\\&x_1 + x_2^2 + x_3^2 \le 20\\ &-x_1 - x_2^2 + 2 = 0\\ &x_2 + 2x_3^2 = 3\\ &x_1, x_2, x_3 \ge 0\end{aligned}⽤MATLAB代码求解为编写⽬标函数的.m⽂件target.mfunction f = target(x);f = sum(x.^2) + 8;编写⾮线性约束条件的.m⽂件nonlinear.mfunction [g,h] = nonlinear(x);g = [-x(1)^2 + x(2) - x(3)^2x(1) + x(2)^2 + x(3)^3 - 20]; %⾮线性不等式约束f = [-x(1) - x(2)^2 + 2x(2) + 2x(3)^2 - 3]; %⾮线性等式约束主程序⽂件main.moptions = optimset('largescale', 'off');[x, y] = fmincon('target', rand(3,1), [], [], [], [], zeros(3,1),[], 'nonlinear', options)求解⾮线性规划的基本迭代格式(难点)由于线性规划的⽬标函数为线性函数, 可⾏域为凸集, 所以求出的最优解就是整个可⾏域上的最优解. ⾮线性规划则不然, 有时求出的解虽然是⼀部分可⾏域上的极值点, 但不⼀定是整个可⾏域上的全局最优解.对于⾮线性规划模型(NP), 可以采⽤迭代⽅法求最优解. 基本思想为: 从⼀个选定的初始点出发, 按照⼀个特定的迭代规则产⽣⼀个点列{x k}; 使得当{x k}是有穷点列时, 其最后⼀个点是(NP)的最优解; 为⽆穷点列时, 它有极限点, 并且极限点是(NP)的最优解;设x^k\in R^n是某迭代⽅法的第k轮迭代点, x^{k+1}\in R^n是第n+1轮迭代点, 记x^{k+1} = x^k + t_kp^k\\ t_k\in R^1, p^k\in R^n, \lvert p^k\rvert = 1通常将基本迭代格式中的p^k称为第k轮搜索⽅向, t_k为沿p^k⽅向的步长. 有机器学习那味⼉了.对于向量p, 如果存在t\in (0, +\infty)使得f(\overline x + tp) < f(\overline x)\\ \overline x + tp \in KK即为可⾏域, 则称p为\overline x关于K的可⾏⽅向.凸函数, 凸规划凸函数的定义为: 若对区间(0,1)内的任何实数\alpha, 恒有f(\alpha x_1 + (1-\alpha)x_2) \le \alpha f(x_1) + (1-\alpha)f(x_2)的函数为定义在R上的严格凸函数.⽬标函数为凸函数, 约束函数也为凸函数的⾮线性规划为凸规划.可以证明, 凸规划的可⾏域为凸集, 其局部最优解即为全局最优解, ⽽且其最优解的集合形成⼀个凸集. 当凸规划的⽬标函数f(x)为严格凸函数时, 其最优解必定唯⼀.⽆约束问题⽆约束问题即没有约束条件的问题, 即求解函数极⼩值的问题⼀维搜索⽅法当⽤迭代法求函数的极⼩点时, 常常⽤到⼀维搜索, 即沿⼀已知⽅向求⽬标函数的极⼩点.⼀种⽐较⼀个区间上两端函数值的⽅法, 原理⾮常简单, 不讲了.但是这种⽅法⼀般只能⽤于单极值区间, 对于⼀个多极值的函数. 可以尝试先画出函数图, 然后找出所有只有单个极值的区间分别求解.斐波那契法上⾯那种⽅法本是随机选取区间的两个点, 斐波那契法能够保证区间按照按照斐波那契数进⾏缩⼩.即t_1 = a + \frac{F_{n-1}}{F_n}(b-a),t_2 = a + \frac{F_{n-2}}{F_n}(b-a)根据需要求解的精度\delta, 确定迭代次数的⽅式\frac{b-a}{F_n} \le \delta也可以⽤黄⾦⽐例数代替斐波那契数列.⼆次插值法对极⼩化问题, 当f(t)在[a,b]上连续时, 可以考虑⽤多项式插值来进⾏⼀维搜索. 基本思想为: 在搜索区间内,不断⽤低次(不超过三次)多项式来近似⽬标函数, 并逐步⽤插值多项式的极⼩点来逼近极⼩化问题的最优解.⽆约束问题的解法梯度下降法总是朝着梯度下降最快的⽅向前进⽜顿法⾸先需要了解⼀下什么是考虑⽬标函数f在x^k处的⼆次逼近式f(x)\approx Q(x) = f(x^k) + \nabla f(x^k)^T(x-x^k) + \frac12(x-x^k)^T\nabla^2f(x^k)(x-x^k)假设⿊塞矩阵\nabla^2 f(x^k) = \begin{bmatrix} \frac{\partial^2 f(x^k)}{\partial x_1^2} & \cdots & \frac{\partial^2f(x^k)}{\partial x_1\partial x_n}\\ \vdots & \cdots & \vdots \\ \frac{\partial f(x^k)}{\partial x_n\partial x_1} & \cdots & \frac{\partial^2 f(x^k)}{\partial x_n^2} \end{bmatrix}正定由于\nabla^2 f(x^k)正定, 函数Q的驻点x^{k+1}是Q(x)的极⼩点. 令\nabla Q(x^{k+1}) = \nabla f(x^k) + \nabla^2 f(x^k)(x^{k+1} - x^k) = 0解得x^{k+1} = x^k - [\nabla^2 f(x^k)]^{-1}\nabla f(x^k)所以从x^k出发的搜索⽅向为p^k = -[\nabla^2 f(x^k)]^{-1}\nabla f(x^k)⽜顿法的优点是收敛速度快; 缺点是有时不好⽤⽽需采取改进措施, 当维度很⾼时, 计算矩阵的逆矩阵计算量将会很⼤.变尺度法变尺度法由于能够避免计算⼆阶导数矩阵及其逆矩阵, 对于⾼纬度问题具有显著的优越性.为了不计算⼆阶导数矩阵[\nabla^2 f(x^k)]及其逆矩阵, 我们设法构造另⼀个矩阵, 来逼近⼆阶导数矩阵, 这⼀类也称为拟⽜顿法(Quasi-Newton Method).当f(x)是⼆次函数时, 任两点x^k和x^{k+1}的梯度之差为\nabla f(x^{k+1}) - \nabla f(x^k) = A(x^{k+1} - x^k)因此, 我们构造⿊塞矩阵的第k+1次近似\overline H^{k+1}满⾜关系式x^{k+1} - x^k = \overline H^{(k+1)}[\nabla f(x^{(k+1)}) - \nabla f(x^k)]这就是拟⽜顿条件.令\begin{cases} \Delta G^{(k)} = \nabla f(x^{k+1}) - \nabla f(x^k)\\ \Delta x^k = x^{k+1} - x^k\end{cases}记\Delta \overline H^{(k)} = \overline H^{(k+1)} - \overline H^{(k)}称为校正矩阵.省略中间过程, 可求得校正矩阵\Delta \overline H^{(k)} = \frac{\Delta x^k(\Delta x^k)^T}{(\Delta G^{(k)})^T\Delta x^k} -\frac{\overline H^{(k)}\Delta G^{(k)}(G^{(k)})^T\Delta H^{(k)}}{(\Delta G^{(k)})^T\overlineH^{(k)}\Delta G^{(k)}} \tag{17}从⽽有\overline H^{(k+1)} = \overline H^{(k)} + \frac{\Delta x^k(\Delta x^k)^T}{(\Delta G^{(k)})^T\Delta x^k} - \frac{\overline H^{(k)}\Delta G^{(k)}(G^{(k)})^T\Delta H^{(k)}}{(\Delta G^{(k)})^T\overlineH^{(k)}\Delta G^{(k)}} \tag{18}以上矩阵称为尺度矩阵, 取第⼀个尺度矩阵\overline H^{(0)}为单位矩阵.由此可得DFP变尺度法的计算步骤为:给定初始点x_0以及梯度允许误差\varepsilon > 0若\lvert\nabla f(x^{(0)})\rvert \le\varepsilon, 则x_0为近似点, 停⽌迭代.否则转下⼀步.令\overline H^{(0)} = I (单位矩阵)\\ p^0 = -\overline H^{(0)}\nabla f(x^0)在p^0⽅向进⾏⼀维搜索, 确定最佳步长\lambda_0\min_\lambda f(x^0+\lambda p^0) = f(x^0 + \lambda_0p^0)于是可以得到下⼀个近似点x^1 = x^0 + \lambda_0p^0对于近似点x^k, 计算其梯度, 若有\lvert\nabla f(x^k)\rvert\le \varepsilon则停⽌迭代, 最终解为x^k; 否则根据式(18)计算\overline H^{(k)}, 令p^k = -\overline H^{(k)}\nablaf(x^k). 在p^k⽅向进⾏⼀维搜索, 得到\lambda_k, 从⽽得到下⼀个近似点x^{k+1} = x^k + \lambda_kp^k不断重复第4步直到满⾜允许误差.约束极值问题带有约束条件的极值问题称为约束极值问题, 也叫规划问题.⼆次规划问题⽬标函数为⾃变量的⼆次函数的问题称为⼆次规划问题.⼆次规划的模型可以表述为\min \frac12x^THx + f^Tx,\\ s.t.\quad \begin{cases} Ax\le b\\Aeq\dot x = beq\\ \end{cases} MATLAB中求解⼆次规划的函数为[x, f] = quadprog(H, f, A, b, Aeq, beq, LB, UB, X0, OPTIONS)罚函数法利⽤罚函数法, 可将⾮线性规划问题转化为⼀系列⽆约束机制问题. 因此也称这种⽅法为序列⽆约束最⼩化技术, SUMT(Sequential Unconstrained Minization Technique).罚函数法的基本思想是利⽤问题中的约束函数作出适当的罚函数, 由此构造出带参数的增⼴⽬标函数, 把问题转化为⽆约束线性规划问题.罚函数法分为外罚函数法和内罚函数法. 现在介绍外罚函数法.对于问题:\min f(x)\\ s.t.\quad \begin{cases} g_i(x)\le 0, i = 1,\dots,r,\\ h_j(x)\ge 0, j = 1,\dots,s,\\ k_m(x) = 0, m = 1,\dots,t \end{cases}取⼀个充分⼤的正数M, 构造函数P(x, M) = f(x) + M\sum_{i=1}^r\max(g_i(x), 0) - M\sum_{i=1}^s\min(h_i(x), 0) +M\sum_{i=1}^t|k_i(x)|MATLAB 求约束极值问题fminbnd 函数求单变量⾮线性函数在区间[x_1, x_2]上的最⼩值语法格式[x, f] = fminbnd(fun, x1, x2, options)fminimax 函数可以⽤来求解带有⾮线性约束条件的问题x = fminimax(fun, x0, A, B, Aeq, Beq, LB, UB, NONLCON) Loading [MathJax]/jax/element/mml/optable/BasicLatin.js。
·16·第2章 非线性规划在许多实际问题中,所建立的优化模型的目标函数或约束条件(或二者)是非线性的,所以非线性规划也是运筹学中最常用的方法之一,在生产管理和过程控制中有广泛的应用。
2.1 非线性规划问题举例【例2-1】钢铁厂自备发电厂负荷的最优分配问题。
设自备发电厂有3台蒸汽透平发电机,输入燃料,内部有高炉煤气和焦炉煤气,外购的有液化石油气。
设内部煤气不足,需用外购的液化石油气。
由于机组对输入各种燃料的输出特性不同,应如何分配燃料,使自备电厂效益最好?为了确定各种燃料的分配,设y i ,i =1,2,3为各机组的有效电力(MW ),x 1i ,i =1,2,3为各机组输入高炉煤气;x 2i ,i =1,2,3为各机组输入焦炉煤气;x 3i ,i =1,2,3为各机组输入液化石油气。
设电力单价为e c ,液化石油气单价为l c ,则可写出如下模型NP :目标函数 max f(x )=e c (1y +2y +3y )-l c (31x +32x +33x ) 约束条件1)高炉煤气使用量上限B F11x +12x +13x ≤B F2)焦炉煤气使用量上限C F21x +22x +32x ≤C F3)各机组电力上、下限max ,i y 和min ,i ymax ,i y ≤i y ≤min ,i y i =1,2,3其中各机组电力与输入燃料关系如下:i y =a 0i +a 1i 2i p +a 2i i p +a 3i F s i i =1,2,3式中 a ——系数;si F ——抽气流量(t/h);i p ——中间变量。
且 i p =i b 1b q i x 1+i b 2c q i x 2+i b 3l q i x 3式中b 为系数,q 为各燃料热值(103Kcal/Nm 3)。
这一数学模型的约束是线性的,而目标函数是非线性的,构成一个非线性规划问题。
第2章 非线性规划·17·2.2 基础知识非线性规划问题的一般形式是(NP ) min f (x 1,x 2,…,x n )(2-1a ) s.t. i g (1x ,2x ,…n x ) ≤0,i =1,2,…,m (2-1b )j h (1x ,2x ,…n x )≤0,i =1,2,…,s(2-1c ) 写成向量形式,为 (NP ) min ()f x(2-2a ) s.t. i g (x )≤0,i =1,2,…,m(2-2b )j h (x )≤0,i =1,2,…,s(2-2c )定义2-1(全局最优解) 一个定义在X ∈x 上的函数()f x ,如果对X ∈x 的每一点 都有f (x ) ≥f (xˆ) 则称ˆx为全局极小解,ˆ()f x 为全局极小值。
第二节 SUMT 方法(罚函数法)一、SUMT 方法的原理SUMT (sequential unconstrained minimization technique )法,序列无约束极小化方法,亦称为罚函数法。
它是一种不等式约束最优化问题的间接解法它的基本思想是将原来的目标函数和约束函数按一定的方式构成一个新的函数,在这个新函数中,既包括目标函数,又包括全部约束函数和一个可以变化的乘子。
当这个乘子按一定的方式改变时,就得到一个新函数序列,求每一个新函数的最优解都是一个无约束最优化问题,这样就把一个约束最优化问题转化为一系列无约束最优化问题进行求解。
所得到的最优解序列将逐步逼近原问题的最优解。
引例一:min ()f X ax = s.t ()0g X b x =-≤ 显然f (X )的最优点为x*=b ,对应的最小值为f (X*)=ab用SUMT 求解函数的最优解 构造函数11(,)()()k k kX r f X r ax r g X b xΦ=-=--0k r >—可变化乘子,它是一个很小的正数。
其最优解为:*()kX r b =+此时对应的(,)k X r Φ的最小值为***1(,)k k X r ax r b x ab Φ=--=+最优点*()k X r 和最小值*(,)k X r Φ均是kr 的函数。
当kr 取不同值时,它们有不同的值,而当0kr →时,**()k X r X b →=,*(,)*k X r f X ab Φ→=(),即最后收敛于约束最优点。
minlim[min (,)]() {|()0}kki r X r f X R X g X X R→Φ==≤∈ 以上分析从理论上说明了无约束最优化问题min (,)kX r Φ与约束优化问题min() {|()0}i f X R X g X X R=≤∈之间的联系:约束非线性规划问题可以通过构造新目标函数序列,用无约束优化方法求其极小点,并逐次逼近原问题的最优点。
重庆大学本科学生毕业设计(论文)求解约束非线性规划问题的罚函数方法学生:蒋晨曦学号:20102262指导教师:王开荣专业:统计学(金融与精算方向)重庆大学数学与统计学院二O一四年六月Graduation Design(Thesis) of Chongqing UniversityPenalty function method for solving constrained nonlinearprogramming problemUndergraduate: Jiang ChenxiSupervisor: Prof. Wang KairongMajor:Statistics(Oriented in Finance andactuarial science)College of Mathematics and StatisticsChongqing UniversityJune 2014重庆大学本科毕业设计(论文) 中文摘要摘要约束非线性规划问题广泛见于工程、国防、经济等许多重要领域,现代科学、经济和工程的许多问题都有赖于相应的约束非线性规划问题的全局最优解的计算技术。
因此,了解和掌握求解约束非线性规划问题的方法无疑是非常重要的。
在过去的几十年里,求解非线性规划问题的方法已取得了很大的发展。
求解非线性规划问题的重要途径之一是把它转化为无约束问题求解。
而罚函数方法是把约束问题转化为无约束问题的一种主要方法,它通过求解一个或者一系列的无约束问题来求解原约束问题。
罚函数方法包括外点罚函数法,内点罚函数法以及混合罚函数法,但是这几种方法均会由于罚参数的变化(无限增大或减小)会导致相应的增广目标函数的Hesse矩阵出现病态的不良后果,因而往往使求解在实用中失败。
所以我们需要寻求一些新的方法来解决这个问题,为了利用惩罚函数的思并克服它的缺点,我们考虑把问题的惩罚函数和Lagrange函数结合起来,构造出更适当的增广目标函数。
非线性规划中的罚函数及填充函数方法的开题报告一、研究背景和意义非线性规划是数学规划中的一种重要研究领域。
相比线性规划,非线性规划的解法更为困难,解决非线性规划问题需要使用专门的数学方法。
罚函数及填充函数方法是求解非线性规划的两种主要方法之一,它们可以有效地降低问题的复杂度,提高求解效率。
罚函数方法是一种将约束条件的违反程度作为惩罚因子添加到目标函数中的方法,将原问题转化为一个无约束的优化问题,从而使用专门的无约束优化算法求解。
相比其他方法,罚函数方法具有实现简单、稳定可靠等优点,广泛用于实际问题求解过程中。
填充函数方法是一种将约束条件转化为边界条件的方法,这种方法将非线性规划转化为一系列求解带有边界条件的线性规划问题,然后使用线性规划的求解方法进行求解。
填充函数方法具有数学基础适用广泛等优点,被广泛地应用于数学规划中。
二、研究内容和方法本文研究非线性规划中罚函数及填充函数方法的原理和应用。
主要内容包括:1.罚函数方法的原理和应用:介绍罚函数方法的数学原理和基本概念,详细讨论罚函数方法在非线性规划中的应用,包括罚函数参数的设置、罚函数算法的求解等。
2.填充函数方法的原理和应用:介绍填充函数方法的数学原理和基本概念,详细讨论填充函数方法在非线性规划中的应用,包括填充函数的构造方法、线性化方法、求解算法等。
3.比较和分析:对罚函数和填充函数两种方法进行比较分析,研究它们在不同情况下的优劣势,并结合实例进行分析和验证。
本文主要采用文献资料法和实例分析法。
通过系统梳理相关文献资料,深入研究罚函数和填充函数两种方法的原理和应用,探索它们在不同情况下的局限性和优越性。
同时结合实例进行数学模型的建立和求解,验证两种方法在实际问题中的应用效果,给出具体实施方案和可行性建议。
三、预期结果和意义本文研究非线性规划中罚函数及填充函数方法的原理和应用,深入分析它们在实际问题中的应用效果,将对数学规划领域的教学和实际应用有很大的帮助。
非线性规划中的两种罚函数的开题报告非线性规划 (Nonlinear Programming, NLP) 是数学规划中的一个分支,研究的是目标函数和约束条件中存在非线性项的优化问题。
在实际应用中,非线性规划模型的求解具有广泛的应用背景,例如:经济学、管理学、生物学、工程学等领域。
在非线性规划中,罚函数是一类常用的求解方法之一。
本篇开题报告主要介绍了非线性规划中的两种罚函数:外罚函数和内罚函数。
针对这些罚函数,我们将会探讨其原理、优缺点以及在实际应用中的使用情况。
一、外罚函数外罚函数(Exterior Penalty Function, EPF)是一种将罚函数作用在约束条件上的优化方法。
外罚函数将约束条件中不满足要求的部分利用罚函数进行惩罚,从而将问题转化为无约束条件下的优化问题。
举例来说,对于如下的非线性规划模型:min f(x)s.t. g(x) ≤ 0h(x) = 0其中,g(x) 和 h(x) 分别表示不等式约束和等式约束,可以通过以下的 EPF 方法进行求解:min f(x) + ρg(x)²s.t. h(x) = 0其中,ρ为罚函数系数。
通过 EPF 可以将原问题转化为一个无约束条件下的问题,可使用常用的优化算法(如梯度法、牛顿法)进行求解。
在 EPF 方法中,罚函数系数ρ的选取对求解结果的影响较大。
一般情况下,应根据具体问题合理选取ρ值,使得求解的结果更加符合实际情况。
二、内罚函数内罚函数(Interior Penalty Function, IPF)是一种将罚函数作用在目标函数上的优化方法。
在 IPF 方法中,将约束条件视为目标函数的一部分,并同样利用罚函数进行惩罚,使得约束条件是目标函数的一部分。
在 IPF 方法中,约束条件不再是严格限制的,而是成本函数的一部分。
举例来说,对于如下的非线性规划模型:min f(x)s.t. g(x) ≤ 0h(x) = 0其中,g(x) 和 h(x) 分别表示不等式约束和等式约束,可以通过以下的 IPF 方法进行求解:min f(x) + μ[g(x)]_+^2+ λ[h(x)]^2其中,[g(x)]_+ 表示不等式约束 g(x) 的正部,μ和λ分别为罚函数系数。