运筹说 第102期 | 非线性规划—制约函数法

       通过上期学习,大家已经了解了非线性规划中约束极值问题的最优性条件。本期小编将为大家介绍约束极值问题的求解方法:制约函数法,包括概念以及最基本的两种制约函数法:罚函数法障碍函数法等内容。

图片

       制约函数法是通过构造某种制约函数,并将它加到非线性规划的目标函数上,从而将原来的约束极值问题,转化为无约束极值问题来求解。此处介绍的方法用来求解一系列无约束问题,故称为序列无约束极小化技术。

一、罚函数法

        对于非线性规划

图片

构造函数

图片

g_{j}(X)视为t,将约束条件的函数加到原目标函数中,构造新的目标函数:

图片

      新的目标函数转变为求解无约束问题,假定该问题极小点为X*,必有g_{j}(X)\geq 0X*是新构造无约束问题的极小点,同样也是原非线性规划问题的极小点。

       但是,如上构造的函数ψ(t)在0处不连续,不可导,这就无法使用很多有效的无约束极值极小化方法进行求解。因此将其修改为

图片

       修改后的ψ(t)处处可导,ψ(t)ψ′(t)处处连续。这时,修改后的函数的极小点不一定就是原非线性规划问题的极小点。于是,选取很大的实数M>0,作为惩罚因子,则得到

图片

该式也可以写成另一种形式

图片

在这个式子中,M称为惩罚因子M\sum_{j=1}^{l}\Psi (g_{j}(\mathbf{X}))为惩罚项,P(X,M)罚函数

X∈R时,P(X,M)=P(X);当X∉R时,M\sum_{j=1}^{l}\Psi (g_{j}(\mathbf{X)})就会很大,离可行域越远,惩罚越大。当M足够大时,是新构造无约束问题的极小点,同样也是原非线性规划问题的极小点。

       现引进阶跃函数

图片

得到如下转变

图片

       随着罚因子M增大,惩罚项起到的作用就越大,minP(X,M)越趋近于可行域d_{0},当0<M1<M2<...Mk<...,趋于无穷大时,点列\left \{ \mathbf{X}(M_{k}) \right \}会从可行域R的外部趋于原非线性规划的问题的极小点(此处假设点列\left \{ \mathbf{X}(M_{k}) \right \}收敛)。

       和不等式约束问题类似,对于等式约束问题,也可做如下变换:

图片

对于既含有等式约束,又有不等式约束的一般非线性规划问题

图片

其罚函数为

图片

图片

迭代步骤

       (1)取第一个罚因子M_{1}>0,允许ε>0,并令k:=1。

       (2)求下述无约束极值问题的最优解:minP(\mathbf{X},M_{k}),设其极小点为\mathbf{X}^{(k)}

       (3)若存在某一个j (1≤jl),有-g_{j}(X)>\varepsilon,或(和)存在某一个(1≤im),有\left | h_{i} (X^{K})\right |> \varepsilon,则取M_{k+1}>M_{k}(例如M_{k+1}=cM_{k},c=5),并令K:=k+1。然后,转回第(2)步;否则停止迭代,得到所要的点\mathbf{X}^{(k)}

例题

       用罚函数法求解

图片

解:

(1)构造罚函数

图片

(2)对于固定的M,令

图片

对于不满足约束条件的点x,有

图片

(3)求得其极小点x(M)

图片

M=0,x(M)=1/2

M=1,x(M)=1/4

M=10,x(M)=1/22

M→∞,x(M)→0

因此,原约束问题的极小点x*=0

图片

二、障碍函数法

       对于罚函数而言,函数P(X,M)可在整个E_{n}空间内进行优化,迭代过程往往在可行域外进行,不能以中间结果作为近似解使用。同时,目标函数在可行域外的性质比较复杂,甚至没有定义,就无法使用罚函数法。

       障碍函数法与其不同,该方法要求迭代过程始终在可行域内进行。如果初始迭代点取在可行域内部(严格内点),在进行无约束极小化时,会阻止函数迭代到R的边界上,使迭代过程始终在可行域内部。此时的极小化是在不包括可行域边界的可行域开集上进行的,是一种具有无约束性质的极值问题,可用无约束极小化方法求解。

       考虑非线性规划

图片

       当X点从可行域R内部趋于边界时,至少有某一个约束函数g_{j}(X)(j=1,2,...,l)趋于0,从而得到倒数函数\sum_{j=1}^{l}\frac{1}{g_{j}(\mathbf{X})}以及(负)对数函数-\sum_{j=1}^{l}lg(g_{j}(\mathbf{X}))都无限增大。

把倒数函数或对数函数加到目标函数上,则能构成新目标函数。取实数并构成一系列无约束性质的极小化问题如下:

图片

其中

图片

图片

此处,R_{0}为严格内点的集合,即

图片

       上述式子中,r_{k}\sum_{j=1}^{l}\frac{1}{g_{j}(\mathbf{X})}r_{k}\sum_{j=1}^{l}lg(g_{j}(\mathbf{X}))被称为障碍项,此处r_{k}为障碍因\left (r_{k}>0\right ),函数\bar{P}(\mathbf{X},r_{k})障碍函数

       若从某一点X^{(0)}出发,按无约束极小化方法对问题进行迭代,随着障碍因子r_{k}减小,障碍项起到的作用越小,minP(X,M)求得的解会逐步逼近原约束问题的最小解。

r_{1}>r_{2}>...r_{k}>...>0

       因而,求得问题的解X(r_{k})就会逐步逼近原约束问题的极小解。若原问题在可行域R的边界上,则随着r_{k}的减小,所求得障碍函数的极小点会不断靠近R的边界,直到满足某一精度要求时为止。

迭代步骤

(1)取第一个障碍因子r_{1}>0,允许误差ε>0,并令k:=1。

(2)构造障碍函数,如下所示。

图片

(3)对障碍函数进行无约束极小化(注意,迭代点必须在R_{0}内),设极小解为X^{(k)}\in R_{0}

(4)检查是否满足收敛准则:

图片

满足则停止迭代并得到所要的近似极小解{X}^{(k)}。否则取r_{(k+1)}<r_{k}并令k:=k+1。然后,转回第(3)步继续迭代。

例题

       用障碍函数法求解

图片

解:

(1)构造障碍函数

图片

(2)对于固定的r_{k},由

图片

(3)求得其极小点x(r)x(r)=\pm \sqrt{r_{k}}

r=1,x(r)=1

r=0.1,x(r)=0.316

r=0.01,x(r)=0.1

r→0,x(r)→0

因此,原约束问题的极小点 x*= 0

图片

初始内点迭代步骤

(1)任取一点X^{(1)}\in E_{n}r_{1}>0,并令k:=1。

(2)确定指标集\bar{T_{k}}T_{k}

图片

(3)检查\bar{T_{k}}是否为空集,若为空集,则取X^{(k)}为初始内点,停止迭代;否则,进行下一步。

(4)构造函数,将严格不等式不能满足的约束函数为假拟目标函数,严格满足的约束函数形成障碍项,构成一无约束性质问题,构造函数

图片

X^{(k)}为初始点,求解

图片

其中,

图片

设求出的极小点\mathbf{X}^{(k+1)},则\mathbf{X}^{(k+1)}\in \bar{R_{k}}。令0\leq r_{k+1}\leq r_{k}k:=k+1,转回第(2)步。

       以上就是非线性规划中罚函数法与障碍函数法的全部内容了,通过本节学习大家是否对制约函数法有了一个大致的认识呢?到此为止,非线性规划的所有知识点就已经介绍完了,想要进一步了解运筹学,关注公众号运筹说,快快学起来吧!下期小编将为大家介绍与非线性规划相关的精品案例,敬请关注!

作者 |林若唯 唐京茹

责编 | 陈梦

审核 | 徐小峰

知乎 :运筹说

Bilibili :运筹说

 CSDN :运筹说

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/133178.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数据分析 - 数据案例流程分析

有这样的一个案例&#xff1a;外卖骑手的未接单率上升 1&#xff1a;分析有哪些因素会造成这种后果 骑手和订单的一个占比情况订单配送距离的情况平台补贴情况和收入情况时间段的订单和骑手的需求比 2&#xff1a;清理错误数据&#xff0c;或者无用的数据&#xff0c;确保数…

Docker安装详细步骤及相关环境安装配置

目录 一、从空白系统中克隆Centos7系统 二、使用xshell连接docker_tigerhhzz虚拟机 ​编辑 三、在CentOS7基础上安装Docker容器 最近自己在虚拟机上搭建一个docker,将项目运行在虚拟机中。 需要提前准备的工具&#xff0c;XShell(远程链接工具)&#xff0c;VM&#xff08;…

专业128分总分390+上岸中山大学884信号与系统电通院考研经验分享

专业课884 信号系统 过年期间开始收集报考信息&#xff0c;找到了好几个上岸学姐和学长&#xff0c;都非常热情&#xff0c;把考研的准备&#xff0c;复习过程中得与失&#xff0c;都一一和我分享&#xff0c;非常感谢。得知这两年专业课难度提高很多&#xff0c;果断参加了学长…

【Linux】语言层面缓冲区的刷新问题以及简易模拟实现

文章目录 前言一、缓冲区刷新方法分类a.无缓冲--直接刷新b.行缓冲--不刷新&#xff0c;直到碰到\n才刷新c.全缓冲--缓冲区满了才刷新 二、 缓冲区的常见刷新问题1.问题2.刷新本质 三、模拟实现1.Mystdio.h2.Mystdio.c3.main.c 前言 我们接下来要谈论的是我们语言层面的缓冲区&…

数据分析实战 | 逻辑回归——病例自动诊断分析

目录 一、数据及分析对象 二、目的及分析任务 三、方法及工具 四、数据读入 五、数据理解 六、数据准备 七、模型训练 八、模型评价 九、模型调参 十、模型预测 一、数据及分析对象 CSV文件——“bc_data.csv” 数据集链接&#xff1a;https://download.csdn.net/d…

Oracle(18)Auditing

文章目录 一、基础知识1、审计介绍2、Auditing Types 审计类型3、Auditing Guidelines 审计准则4、Auditing Categories 审核类别5、Database Auditing 数据库审计6、Auditing User SYS 审计sys用户7、Getting Auditing Informatio 获取审计信息8、获取审计记录通知 二、基础操…

智能指针,c++11,单例,类型转换

c11 unique_ptr 防拷贝 shared_ptr / weak_ptr: 引用计数,支持拷贝 面试 手写shared_ptr 各种ptr的特性对比, 不会问定制删除器和weak_ptr,但是问shared_ptr时,可以往这边延展. 单例 保证一写数据在一个进程中,只有一份,并且方便访问修改. 饿汉模式 在main函数之前就创…

雷达检测及MATLAB仿真

文章目录 前言一、雷达检测二、Matlab 仿真1、高斯和瑞利概率密度函数①、MATLAB 源码②、仿真 2、归一化门限相对虚警概率的曲线①、MATLAB 源码②、仿真 3、检测概率相对于单个脉冲 SNR 的关系曲线①、MATLAB 源码②、仿真 4、改善因子和积累损失相对于非相干积累脉冲数的关系…

使用xlwings实现对excel表中指定列隔行求和

需要对上表中的营业额隔行求和&#xff0c;即橙色背景颜色的求和&#xff0c;无背景颜色的求和。 看了大佬的视频&#xff0c;有两种方法&#xff1a; 1.加辅助列 2.使用判断行的奇偶函数&#xff0c;然后在用sumproduct函数 在此&#xff0c;我使用xlwings对excel表中数据…

2023年【北京市安全员-C3证】考试题库及北京市安全员-C3证在线考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 北京市安全员-C3证考试题库是安全生产模拟考试一点通总题库中生成的一套北京市安全员-C3证在线考试&#xff0c;安全生产模拟考试一点通上北京市安全员-C3证作业手机同步练习。2023年【北京市安全员-C3证】考试题库及…

vmware开启ipv6

说明 在 ipv4 基础上配置ipv6网络。 分享 大数据博客列表开发记录汇总个人java工具库 项目https://gitee.com/wangzonghui/object-tool 包含json、string、集合、excel、zip压缩、pdf、bytes、http等多种工具&#xff0c;欢迎使用。 vm开启ipv6 设置vmware 打开vmware点击编…

MySQL的索引和复合索引

由于MySQL自动将主键加入到二级索引&#xff08;自行建立的index&#xff09;里&#xff0c;所以当select的是主键或二级索引就会很快&#xff0c;select *就会慢。因为有些列是没在索引里的 假设CA有1kw人咋整&#xff0c;那我这个索引只起了前一半作用。 所以用复合索引&am…

gorm使用之各种表关系实例-主外键->struct

gorm使用之各种表关系实例-主外键->struct 一对多关系(用户与文章) 如: 老板与员工 女神和舔狗 老师和学生 班级与学生 用户与文章 ...以用户与文章举例 models应当如,注意&#xff01;&#xff01;&#xff1a;User表中的ID应当与Article中的UID一直&#xff0c;大小和…

Java面向对象(进阶)-- 面向对象特征之三:多态性

文章目录 一、多态的形式和体现&#xff08;1&#xff09;为什么需要多态性(polymorphism)&#xff1f;&#xff08;2&#xff09; 对象的多态性 二、 多态的理解&#xff08;1&#xff09;如何理解多态性&#xff08;2&#xff09;Java中多态性的体现&#xff08;3&#xff09…

VS c++多文件编译

前言&#xff1a;记录下我这个菜鸡学习的过程&#xff0c;如有错误恳请指出&#xff0c;不胜感激&#xff01; 1.简单多文件编译调试 文件目录&#xff1a; 编译&#xff1a; -g选项是告诉编译器生成调试信息&#xff0c;这样可以在程序崩溃或出现错误时更容易地进行调试。这…

减轻关键基础设施网络安全风险的 3 种方法

物理安全和网络安全之间存在相当大的重叠&#xff0c;特别是在保护关键基础设施方面。防止基础设施被篡改需要在物理安全方面进行大量投资&#xff0c;但任何连接到互联网的设备都代表着更广泛网络的潜在攻击点。 缺乏足够保护的设备可能会给这些对手在网络中提供立足点&#…

张小泉的“老字号”快守不住了:限期整改,业绩和产品各有危机

撰稿|行星 来源|贝多财经 11月8日&#xff0c;商务部等5部门发布了中华老字号的复核结果。结果显示&#xff0c;全国有981家中华老字号企业通过了复核&#xff0c;73家中华老字号企业附条件通过复核&#xff0c;另有55家企业未能通过复核。 贝多财经发现&#xff0c;张小泉股…

【Python 千题 —— 基础篇】账号登录

题目描述 题目描述 简易登录系统。你的账号密码分别是 “student”&#xff0c;“123456”&#xff1b;请使用 if-else 设计一个简易登录系统&#xff0c;输入账号密码。登陆成功输出 “Welcome !”&#xff0c;登录失败输出 “Login failed !” 输入描述 输入账号和密码。…

Python环境安装、Pycharm开发工具安装(IDE)

Python下载 Python官网 Python安装 Python安装成功 Pycharm集成开发工具下载&#xff08;IDE&#xff09; PC集成开发工具 Pycharm集成开发工具安装&#xff08;IDE&#xff09; 安装完成 添加环境变量&#xff08;前面勾选了Path不用配置&#xff09; &#xff08;1&…

电脑出现病毒提示解决办法

已检测:Trojan:Win32/WacatacA!ml 状态:已隔离 隔离的文件在不会损害设备的受限区域内。系统将自动删除它们 日期:2023/11/1013:21详细信息这个程序很危险&#xff0c;而且执行来自攻击者的命令 受影响的项目: driver: haStdnetfilter file: C:WINDOWSsystem32\drivers\haStdne…
最新文章