图解数学:拉格朗日松弛方法的直观理解

昨晚写了拉格朗日松弛方法的原理分析,今天意犹未尽,图解一下,从直观上进一步理解这种方法。

一、一个简单例子

我们先来看一个简单的例子,下面数学规划问题没有约束条件:
min ⁡ f ( x ) = − x 2 + 8 x − 10 \begin{align*}\tag1 \min \quad & f(x) = -x^2 + 8x - 10 \\ \end{align*} minf(x)=x2+8x10(1)
目标函数图像如下:
在这里插入图片描述

在无约束条件下,最大值点在 ( 4 , 6 ) (4,6) (4,6)

下面加上约束条件:

min ⁡ f ( x ) = − x 2 + 8 x − 10 s.t. x − 5 ≥ 0 \begin{align*}\tag2 \min \quad & f(x) = -x^2 + 8x - 10 \\ \text{s.t.} \quad & x -5\ge 0 \end{align*} mins.t.f(x)=x2+8x10x50(2)

这时图像如下:

在这里插入图片描述

最大值点变成了 ( 5 , 5 ) (5,5) (5,5)。显然,在约束条件下,目标函数最大值比无约束条件时变小了。

能否找到一个函数,在无约束条件下的自由极值与数学规划 (2) 相同?这是拉格朗日松弛方法要解决的问题。

二、构造拉格朗日松弛函数

拉格朗日松弛方法的基本思路是,把约束条件作为一个惩罚项与原有目标函数一起构造一个新的无约束目标函数。这个惩罚项的作用是,当约束条件不成立时(即 x > 3 x>3 x>3 时),松弛函数的最大值

1. 松弛函数要达成的目标

拉格朗日松弛函数的目的有两点:

  • 拉格朗日松弛函数的无约束最小值点要满足 x − 5 ≥ 0 x-5\ge0 x50
  • 拉格朗日松弛函数的无约束最小值要与原规划问题 min ⁡ x 2 − 2 x + 1 , s . t . x − 5 ≥ 0 \min\quad x^2-2x+1, \quad s.t. \quad x-5\ge0 minx22x+1,s.t.x50 保持一致。
2. 构造方法

构造下面的拉格朗日松弛函数, λ ≥ 0 \lambda\ge0 λ0 是待定参数:

L ( x , λ ) = f ( x ) + λ ( x − 5 ) (3) \tag3 L(x,\lambda)=f(x)+\lambda(x-5) L(x,λ)=f(x)+λ(x5)(3)
添加的这个松驰项 λ ( x − 5 ) \lambda(x-5) λ(x5) 是单调增函数,它让 f ( x ) f(x) f(x) 最大值点向右方向移动,移动的幅度取决于 λ \lambda λ
λ = 1 \lambda=1 λ=1 时,函数图像变化如下。由于移动幅度偏小,导致 L ( x , λ ) L(x,\lambda) L(x,λ) 的最大值点没有移动到可行解区间,此时的取得的最大值是大于原问题实际最大值 ( 5 , 5 ) (5,5) (5,5) 的。

在这里插入图片描述
λ = 3 \lambda=3 λ=3 时,图像如下:

在这里插入图片描述
此时移动幅度过大,也导致松弛函数的最大值比实际问题的最优解要大。

由此可见,我们只需要用 λ \lambda λ 表示松弛函数的最大值,然后看 λ \lambda λ 取什么值时,松弛函数的最大值去的最小值即可。求解方法如下:

由(2)、(3)可知:

L ( x , λ ) = f ( x ) + λ ( x − 5 ) = − x 2 + 8 x − 10 + λ ( x − 5 ) (4) \tag4 L(x,\lambda)=f(x)+\lambda(x-5)= -x^2 + 8x - 10+\lambda(x-5) L(x,λ)=f(x)+λ(x5)=x2+8x10+λ(x5)(4)

于是,

∂ L ∂ x = − 2 x + 8 + λ \frac{\partial L}{\partial x} =-2x+8+\lambda xL=2x+8+λ

所以,
x = 4 + λ 2 x=4+\frac{\lambda}2 x=4+2λ
时,松弛函数取得最大值。带入(4),最大值为:

max ⁡ ( L ( x , λ ) ) = 1 4 λ 2 − λ + 6 \max(L(x,\lambda)) = \frac14\lambda^2-\lambda+6 max(L(x,λ))=41λ2λ+6

λ = 2 \lambda=2 λ=2
时,松弛函数的最大值取得最小值。此时,
x = 5 , y = 5 x=5,y=5 x=5,y=5

三、最优解不在约束边界上的情形

1、问题

max ⁡ f ( x ) = − x 3 + 3 x + 1 s . t . x ≥ 0 \begin{align*} \max\quad & f(x)=-x^{3}+3x+1\\ s.t. \quad &x \ge 0 \end{align*} maxs.t.f(x)=x3+3x+1x0
图像如下:
在这里插入图片描述

2. 松弛函数

L ( x , λ ) = − x 3 + 3 x + 1 + λ x L(x,\lambda)=-x^{3}+3x+1+\lambda x L(x,λ)=x3+3x+1+λx
λ = 0 , 0.1 , 0.2 , 0.3 , 0.4 \lambda=0,0.1,0.2,0.3,0.4 λ=0,0.1,0.2,0.3,0.4,函数图像变化如下:

在这里插入图片描述
我觉得 λ \lambda λ 无论如何变化,都不可能得到无约束条件的松弛函数。看样子拉格朗日松弛方法还需要继续认真学习!

3. 求解

首先,我们明确原问题是一个带约束的优化问题,即:

max ⁡ f ( x ) = − x 3 + 3 x + 1 s . t . x ≥ 0 \begin{align*} \max \quad & f(x) = -x^3 + 3x + 1 \\ s.t. \quad & x \geq 0 \end{align*} maxs.t.f(x)=x3+3x+1x0

拉格朗日松弛方法通常用于处理约束优化问题,它将约束条件通过拉格朗日乘子加入到目标函数中,从而将有约束优化问题转化为无约束优化问题。

对于这个问题,我们可以定义拉格朗日函数 L ( x , λ ) L(x, \lambda) L(x,λ) 如下:

L ( x , λ ) = f ( x ) − λ g ( x ) = − x 3 + 3 x + 1 − λ ( − x ) L(x, \lambda) = f(x) - \lambda g(x) = -x^3 + 3x + 1 - \lambda (-x) L(x,λ)=f(x)λg(x)=x3+3x+1λ(x)

其中, g ( x ) = − x g(x) = -x g(x)=x 是原问题的约束条件 x ≥ 0 x \geq 0 x0 的不等式形式( x ≥ 0 x \geq 0 x0 等价于 − x ≤ 0 -x \leq 0 x0), λ \lambda λ 是拉格朗日乘子,且 λ ≥ 0 \lambda \geq 0 λ0

现在,我们需要找到 L ( x , λ ) L(x, \lambda) L(x,λ) 的极值点。为此,我们对 L ( x , λ ) L(x, \lambda) L(x,λ) 求偏导,并令其为0:

∂ L ∂ x = d d x ( − x 3 + 3 x + 1 ) − λ d d x ( − x ) = − 3 x 2 + 3 + λ = 0 \frac{\partial L}{\partial x} = \frac{d}{dx}(-x^3 + 3x + 1) - \lambda \frac{d}{dx}(-x) = -3x^2 + 3 + \lambda = 0 xL=dxd(x3+3x+1)λdxd(x)=3x2+3+λ=0

解这个方程,我们得到:

x 2 = λ + 3 3 x^2 = \frac{\lambda + 3}{3} x2=3λ+3

由于 λ ≥ 0 \lambda \geq 0 λ0,我们可以得出 x x x 的可能取值为非负数。

接下来,我们分析拉格朗日乘子的意义。在这个问题中, λ \lambda λ 代表了对约束 x ≥ 0 x \geq 0 x0 的“重视程度”。如果 λ = 0 \lambda = 0 λ=0,则表示约束不起作用,即解在无约束条件下就是最优的。如果 λ > 0 \lambda > 0 λ>0,则表示约束是有效的,且 λ \lambda λ 越大,表示约束越重要。

现在,我们需要检查边界条件和可能的极值点来确定全局最大值。由于原函数 f ( x ) f(x) f(x) 是一个三次函数,且系数为负,因此它是一个倒开口的抛物线,在 x = 1 x = 1 x=1 处有一个极大值点(可以通过求导得出)。同时,我们需要考虑约束条件 x ≥ 0 x \geq 0 x0

  1. x < 0 x < 0 x<0 时,不在可行域内,因此不考虑。
  2. x = 0 x = 0 x=0 时, f ( x ) = 1 f(x) = 1 f(x)=1
  3. x = 1 x = 1 x=1 时(这是无约束情况下的极值点), f ( x ) = 3 f(x) = 3 f(x)=3
  4. x > 1 x > 1 x>1 时,函数值将逐渐减小。

综上所述,全局最大值出现在 x = 1 x = 1 x=1 处,此时 f ( x ) = 3 f(x) = 3 f(x)=3,且满足约束条件 x ≥ 0 x \geq 0 x0。因此,原问题的最优解是 x = 1 x = 1 x=1,最大值为 3。

在这个特定问题中,拉格朗日松弛方法实际上并没有引入新的解,因为原问题的约束条件非常简单( x ≥ 0 x \geq 0 x0),且目标函数在可行域内只有一个极值点。然而,在更复杂的问题中,拉格朗日松弛方法可以帮助我们将约束优化问题转化为无约束优化问题,从而简化求解过程。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

velero备份恢复k8s集群 —— 筑梦之路

官网&#xff1a;Velero 简介 Velero 是vmware开源的一个云原生的灾难恢复和迁移工具&#xff0c;它本身也是开源的,采用Go语言编写&#xff0c;可以安全的备份、恢复和迁移Kubernetes集群资源数据&#xff1b;官网https://velero.io/。 Velero 是西班牙语意思是帆船&#xf…

halcon 3.2标定相机

参考《solution_guide_iii_c_3d_vision.pdf》 3.2.2.2 Which Distortion Model to Use 选用何种畸变模型 对于面阵相机&#xff0c;halcon中两种畸变模型&#xff1a;The division model and the polynomial model&#xff08;差分模型和多项式模型&#xff09;&#xff0c;前…

电子元器件线上交易商城搭建的价值和必要性-加速度jsudo

随着科技的飞速发展&#xff0c;电子元器件行业正迎来前所未有的变革。为了满足市场对于电子元器件采购的便捷性、高效性和多样性的需求&#xff0c;电子元器件商城的开发显得尤为重要。本文将探讨电子元器件商城开发的重要性、主要功能以及它如何助力行业发展。 电子元器件商城…

更优性能与性价比,从自建 ELK 迁移到 SLS 开始

作者&#xff1a;荆磊 背景 ELK (Elasticsearch、Logstash、Kibana) 是当下开源领域主流的日志解决方案&#xff0c;在可观测场景下有比较广泛的应用。 随着数字化进程加速&#xff0c;机器数据日志增加&#xff0c;自建 ELK 在面临大规模数据、查询性能等方面有较多问题和挑…

3d动画如何连续渲染?云渲染批量渲染3d动画

在3D动画的生产过程中&#xff0c;从多个角度渲染同一场景既是时间消耗大户&#xff0c;也对设计人员的技术能力提出了高要求。好在云渲染技术的进步为这一挑战提供了高效的解决办法。通过利用云渲染服务进行批量渲染&#xff0c;设计师们可以大幅节约时间并提升工作效率。 3d动…

YooAsset快速入门

文章目录 YooAsset快速入门指南&#xff1a;YooAsset学习核心要掌握的要点主要包括以下几个方面&#xff1a;基于YooAsset进行游戏资源管理的应用实例 YooAsset快速入门指南&#xff1a; YooAsset是一款专为游戏开发设计的资产管理和分发系统&#xff0c;它能够帮助开发者高效…

探索顶级短视频素材库:多样化选择助力创作

在数字创作的浪潮中&#xff0c;寻找优质的短视频素材库是每位视频制作者的必经之路。多种短视频素材库有哪些&#xff1f;这里为您介绍一系列精选的素材库&#xff0c;它们不仅丰富多样&#xff0c;而且高质量&#xff0c;能极大地提升您的视频创作效率和质量。 1.蛙学网 蛙学…

数据结构从入门到实战——顺序表

目录 前言 一、顺序表的概念及结构 1.1 线性表 二、顺序表分类 三、动态顺序表的实现 3.1 顺序表结构的创建以及初始化 3.2 顺序表的销毁 3.3 顺序表的打印 3.4 尾插数据 ——最困难的 3.5 头插数据 3.6 尾删数据 3.7 头部删除数据 前言 在计算机科学和数据结…

TongRds docker 镜像做成与迁移(by liuhui)

TongRds docker 镜像做成与迁移 一&#xff0c;使用 docker commit 命令制作 TongRds docker 镜 像 1.1 拉取基础镜像 centos 并运行该镜像 拉取镜像&#xff1a;docker pull ubuntu 镜像列表&#xff1a;docker images 运行镜像&#xff1a;docker run -itd --name myubuntu…

Java并发--内存结构图及线程安全

内存结构图 内存-> (开辟的数组) -> (方法区&#xff0c;堆&#xff0c;栈&#xff0c;程序计数器&#xff0c;本地方法栈) 堆&#xff1a;几乎所有的对象实例都在这里分配内存。堆中每个对象的头信息都标属着他属于哪个类。 方法区它用于存储已被虚拟机加载的类型信息…

绿色地狱steam叫什么 绿色地狱steam怎么搜

绿色地狱steam叫什么 绿色地狱steam怎么搜 《绿色地狱》是一款以亚马逊雨林为背景的开放世界生存模拟游戏。玩家们扮演一名被困在丛林中的冒险者&#xff0c;玩家在游戏内需要学习采集资源、建造庇护所、狩猎和烹饪食物&#xff0c;同时要面对丛林中的危险和挑战&#xff0c;…

华为数通方向HCIP-DataCom H12-821题库(多选题:321-340)

第321题 关于OSPF的命令描述,不正确的是: A、stub区域和totally stub区域配置了no-summary参数 B、OSPFv2和OSPF v3配置接口命令的区别是OSPF V2可以使用network命令,而OSPFv3直接 C、在接口上使能stubrouter命令用来配置次路由器为stub路由器,stub路由器可以与非stub路由 …