凸集、凸函数与凸规划

2023-12-25 05:18
文章标签 规划 凸函数 凸集

本文主要是介绍凸集、凸函数与凸规划,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 1 凸集
  • 2 凸函数
    • 2.1 凸函数性质
    • 2.2 一阶判别公式
    • 2.3 二阶判别公式
  • 3 凸规划


1 凸集

设集合 S ⊂ R n S\subset \R^n SRn,若 S S S中任意两点连线仍属于 S S S,则 S S S称为凸集,即
x 1 + λ ( x 2 − x 1 ) ∈ S \bm x_1 + \lambda(\bm x_2 - \bm x_1) \in S x1+λ(x2x1)S

图1 凸集(左)与非凸集(右)

2 凸函数

S S S R n \R^n Rn上的非空凸集, f f f是定义在 S S S上的实函数,若对任意 x 1 , x 2 ∈ S \bm x_1, \bm x_2 \in S x1,x2S,及 λ ∈ ( 0 , 1 ) \lambda \in (0, 1) λ(0,1),都有
f ( x 1 + λ ( x 2 − x 1 ) ) ≤ f ( x 1 ) + λ [ f ( x 2 ) − f ( x 1 ) ] f(\bm x_1+\lambda(\bm x_2 - \bm x_1))\leq f(\bm x_1) + \lambda[f(\bm x_2) - f(\bm x_1)] f(x1+λ(x2x1))f(x1)+λ[f(x2)f(x1)]

则称 f f f S S S上的凸函数
对于一元函数 f f f,凸函数的几何解释可简单理解为曲线 f f f上任意两点的弦不在曲线下方,如下图所示。

图2 凸函数

一元凸函数的几何证明


( x 1 , f ( x 1 ) ) , ( x 2 , f ( x 2 ) ) (x_1, f(x_1)), (x_2, f(x_2)) (x1,f(x1)),(x2,f(x2))为曲线 f f f上的两点,且满足 x 1 &lt; x &lt; x 2 x_1&lt; x &lt; x_2 x1<x<x2,由直线的两点式公式
y − y 1 y 2 − y 1 = x − x 1 x 2 − x 1 \frac{y-y_1}{y_2-y_1}=\frac{x-x_1}{x_2-x_1} y2y1yy1=x2x1xx1
知,该两点构成的弦所在直线的方程为
y − f ( x 1 ) f ( x 2 ) − f ( x 1 ) = x − x 1 x 2 − x 1 \frac{y-f(x_1)}{f(x_2)-f(x_1)}=\frac{x-x_1}{x_2-x_1} f(x2)f(x1)yf(x1)=x2x1xx1

由于弦上的点不小于对应曲线上的点,令 0 &lt; λ &lt; 1 0\lt\lambda\lt1 0<λ<1 x = x 1 + λ ( x 2 − x 1 ) x=x_1+\lambda(x_2-x_1) x=x1+λ(x2x1),得
y ≥ f ( x ) &ThickSpace; ⟹ &ThickSpace; f ( x 1 + λ ( x 2 − x 1 ) ) − f ( x 1 ) f ( x 2 ) − f ( x 1 ) ≤ x 1 + λ ( x 2 − x 1 ) − x 1 x 2 − x 1 y\geq f(x) \implies \frac{f(x_1+\lambda(x_2-x_1))-f(x_1)}{f(x_2)-f(x_1)}\leq\frac{x_1+\lambda(x_2-x_1)-x_1}{x_2-x_1} yf(x)f(x2)f(x1)f(x1+λ(x2x1))f(x1)x2x1x1+λ(x2x1)x1

因此 f ( x 1 + λ ( x 2 − x 1 ) ) ≤ f ( x 1 ) + λ ( f ( x 2 ) − f ( x 1 ) ) f(x_1+\lambda(x_2-x_1)) \leq f(x_1)+\lambda(f(x_2)-f(x_1)) f(x1+λ(x2x1))f(x1)+λ(f(x2)f(x1)),不等式得证。

2.1 凸函数性质

凸函数的局部极小点是全局极小点。

证明: x ∗ \bm x^* x是凸函数 f ( x ) f(\bm x) f(x)的局部极小点,假设 ∃ x ^ ∈ S \exists\hat \bm x \in S x^S,使得 f ( x ∗ ) &gt; f ( x ^ ) f(\bm x^*) &gt; f(\hat \bm x) f(x)>f(x^),则对任意 λ ∈ ( 0 , 1 ) \lambda \in(0, 1) λ(0,1),由凸集性质有
x ∗ + λ ( x ^ − x ∗ ) ∈ S \bm x^* + \lambda(\hat \bm x - \bm x^*) \in S x+λ(x^x)S

因此
f ( x ∗ + λ ( x ^ − x ∗ ) ) ≤ f ( x ∗ ) + λ [ f ( x ^ ) − f ( x ∗ ) ] &lt; f ( x ∗ ) f(\bm x^* + \lambda(\hat \bm x - \bm x^*))\leq f(\bm x^*) + \lambda[f(\hat\bm x) - f(\bm x^*)] &lt;f(\bm x^*) f(x+λ(x^x))f(x)+λ[f(x^)f(x)]<f(x)
上述不等式表明,对任意 λ ∈ ( 0 , 1 ) \lambda \in (0, 1) λ(0,1)都存在 f ( x ∗ + λ ( x ^ − x ∗ ) ) &lt; f ( x ∗ ) f(\bm x^* + \lambda(\hat \bm x - \bm x^*)) \lt f(\bm x^*) f(x+λ(x^x))<f(x),显然与 f ( x ∗ ) f(\bm x^*) f(x)是极小值矛盾。

2.2 一阶判别公式

f f f是定义在凸集 S S S上的可微函数,则 f f f为凸函数的充要条件是,对任意 x 1 , x 2 ∈ S \bm x_1, \bm x_2 \in S x1,x2S,有
f ( x 2 ) ≥ f ( x 1 ) + ∇ f ( x 1 ) T ( x 2 − x 1 ) f(\bm x_2)\geq f(\bm x_1)+\nabla f(\bm x_1)^T(\bm x_2 - \bm x_1) f(x2)f(x1)+f(x1)T(x2x1)

一阶判别公式证明


必要性
f ( x 1 + λ ( x 2 − x 1 ) ) ≤ f ( x 1 ) + λ ( f ( x 2 ) − f ( x 1 ) ) f(x_1+\lambda(x_2-x_1)) \leq f(x_1)+\lambda(f(x_2)-f(x_1)) f(x1+λ(x2x1))f(x1)+λ(f(x2)f(x1)),得
f ( x 2 ) ≥ f ( x 1 ) + f ( x 1 + λ ( x 2 − x 1 ) ) − f ( x 1 ) λ ( x 2 − x 1 ) ( x 2 − x 1 ) f(x_2)\geq f(x_1)+\frac{f(x_1+\lambda(x_2-x_1))-f(x_1)}{\lambda (x_2-x_1)}(x_2-x_1) f(x2)f(x1)+λ(x2x1)f(x1+λ(x2x1))f(x1)(x2x1)

显然当 λ → 0 \lambda \to 0 λ0时, f ( x 2 ) ≥ f ( x 1 ) + f ′ ( x 1 ) ( x 2 − x 1 ) f(x_2)\geq f(x_1)+f&#x27;(x_1)(x_2-x_1) f(x2)f(x1)+f(x1)(x2x1),必要性得证。

充分性
f ( x ) ≥ f ( y ) + f ′ ( y ) ( x − y ) f(x)\geq f(y)+f&#x27;(y)(x-y) f(x)f(y)+f(y)(xy),因此
f ( x 1 ) ≥ f ( y ) + f ′ ( y ) ( x 1 − y ) , f ( x 2 ) ≥ f ( y ) + f ′ ( y ) ( x 2 − y ) f(x_1) \geq f(y)+f&#x27;(y)(x_1-y),\quad f(x_2) \geq f(y)+f&#x27;(y)(x_2-y) f(x1)f(y)+f(y)(x1y),f(x2)f(y)+f(y)(x2y)

因此令 y = x 1 + λ ( x 2 − x 1 ) y=x_1+\lambda(x_2-x_1) y=x1+λ(x2x1),上面左侧不等式两侧乘 ( 1 − λ ) (1-\lambda) (1λ)、右侧不等式两侧乘 λ \lambda λ,合并两个不等式得
( 1 − λ ) f ( x 1 ) + λ f ( x 2 ) ≥ f ( y ) + f ′ ( y ) [ x 1 + λ ( x 2 − x 1 ) − y ] = f ( y ) (1-\lambda)f(x_1)+\lambda f(x_2) \geq f(y) + f&#x27;(y)[x_1+\lambda(x_2-x_1) - y]=f(y) (1λ)f(x1)+λf(x2)f(y)+f(y)[x1+λ(x2x1)y]=f(y)

显然 f ( x 1 + λ ( x 2 − x 1 ) ) ≤ f ( x 1 ) + λ ( f ( x 2 ) − f ( x 1 ) ) f(x_1+\lambda(x_2-x_1)) \leq f(x_1)+\lambda(f(x_2)-f(x_1)) f(x1+λ(x2x1))f(x1)+λ(f(x2)f(x1)),充分性得证。

几何解释: ( x , f ( x ) ) (x, f(x)) (x,f(x))为曲线 f f f上一点, y y y为该点处的切线,则自变量 x x x增加 Δ x \Delta x Δx,对曲线 f f f和切线 y y y带来的变化分别为 Δ f \Delta f Δf Δ y \Delta y Δy,则
Δ f &gt; Δ y \Delta f \gt \Delta y Δf>Δy

图 一元凸函数判别公式的几何意义

2.3 二阶判别公式

f f f是定义在凸集 S S S上的二阶可微函数,则 f f f为凸函数的充要条件是在任意 x ∈ S \bm x \in S xS处,Hesse矩阵半正定。

二阶判别公式证明


必要性
对任一点 x ∗ ∈ S \bm x^* \in S xS,存在 λ ∈ [ − δ , δ ] \lambda \in [-\delta, \delta] λ[δ,δ],有 x ∗ + λ x ∈ S \bm x^* + \lambda \bm x \in S x+λxS,因此
f ( x ∗ + λ x ) ≥ f ( x ∗ ) + λ ∇ f ( x ∗ ) T x f(\bm x^* + \lambda \bm x) \geq f(\bm x^*) + \lambda \nabla f(\bm x^*)^T \bm x f(x+λx)f(x)+λf(x)Tx

f ( x ) f(\bm x) f(x)在点 x ∗ \bm x^* x处二次可微,则
f ( x ∗ + λ x ) = f ( x ∗ ) + λ ∇ f ( x ∗ ) T x + 1 2 λ 2 x T ∇ 2 f ( x ∗ ) x + o ( ∣ ∣ λ x ∣ ∣ 2 ) f(\bm x^* + \lambda \bm x)=f(\bm x^*) + \lambda \nabla f(\bm x^*)^T \bm x+\frac{1}{2}\lambda^2\bm x^T\nabla^2f(\bm x^*)\bm x + o(||\lambda \bm x||^2) f(x+λx)=f(x)+λf(x)Tx+21λ2xT2f(x)x+o(λx2)

1 2 λ 2 x T ∇ 2 f ( x ∗ ) x + o ( ∣ ∣ λ x ∣ ∣ 2 ) ≥ 0 \dfrac{1}{2}\lambda^2\bm x^T\nabla^2f(\bm x^*)\bm x + o(||\lambda \bm x||^2)\geq0 21λ2xT2f(x)x+o(λx2)0,因此
x T ∇ 2 f ( x ∗ ) x ≥ 0 \bm x^T\nabla^2f(\bm x^*)\bm x \geq 0 xT2f(x)x0

∇ 2 f ( x ∗ ) \nabla^2f(\bm x^*) 2f(x)半正定,必要性得证。

充分性
设Hesse矩阵 ∇ 2 f ( x ) \nabla^2f(\bm x) 2f(x)在每一点 x ∈ S \bm x\in S xS处半正定,对任意 x ∗ , x ∈ \bm x^*, \bm x\in x,x 凸集 S S S,由中值定理得
f ( x ) = f ( x ∗ ) + ∇ f ( x ∗ ) T ( x − x ∗ ) + 1 2 ( x − x ∗ ) 2 ∇ 2 f ( x ^ ) ( x − x ∗ ) f(\bm x) = f(\bm x^*) + \nabla f(\bm x^*)^T(\bm x-\bm x^*)+\frac{1}{2}(\bm x-\bm x^*)^2\nabla^2f(\hat \bm x)(\bm x-\bm x^*) f(x)=f(x)+f(x)T(xx)+21(xx)22f(x^)(xx)

其中 x ^ = x + λ ( x ∗ − x ) \hat \bm x=\bm x+\lambda(\bm x^*-\bm x) x^=x+λ(xx),因此当 ∇ 2 f ( x ^ ) \nabla^2f(\hat \bm x) 2f(x^)半正定时,必有
( x − x ‾ ) T ∇ 2 f ( x ^ ) ( x − x ‾ ) ≥ 0 (x-\overline x)^T\nabla^2f(\hat x)(x-\overline x)\geq 0 (xx)T2f(x^)(xx)0

f ( x ) ≥ f ( x ∗ ) + ∇ f ( x ∗ ) T ( x − x ∗ ) f(\bm x) \geq f(\bm x^*) + \nabla f(\bm x^*)^T(\bm x-\bm x^*) f(x)f(x)+f(x)T(xx),充分性得证。

3 凸规划

考虑非线性规划问题
min ⁡ f ( x ) x ∈ R n s.t. g i ( x ) ≤ 0 , i = 1 , ⋯ &ThinSpace; , m h j ( x ) = 0 , j = 1 , ⋯ &ThinSpace; , l \begin{aligned} \min &amp;\quad f(\bm{x}) \quad \bm{x}\in\R^n\\ \text{s.t.} &amp;\quad g_i(\bm{x}) \leq 0,\quad i=1,\cdots,m\\ &amp;\quad h_j(\bm{x}) = 0,\quad j=1,\cdots,l\\ \end{aligned} mins.t.f(x)xRngi(x)0,i=1,,mhj(x)=0,j=1,,l

f ( x ) f(\bm x) f(x)为凸函数, g i ( x ) g_i(\bm x) gi(x)为凸函数, h j ( x ) h_j(\bm x) hj(x)是线性函数,则问题的可行域为
S = { x ∣ g i ( x ) ≥ 0 , i = 1 , ⋯ &ThinSpace; , m ; h j ( x ) = 0 , j = 1 , ⋯ &ThinSpace; , l } S = \{ \bm x\ |\ g_i(\bm x)\geq 0, i= 1,\cdots, m;\ h_j(\bm x)=0, j = 1,\cdots,l\} S={x  gi(x)0,i=1,,m; hj(x)=0,j=1,,l}

上述问题是求凸函数在凸集上的极小点,这类问题成为凸规划

重要性质:凸规划的局部极小点就是全局极小点,证明见2.1。

这篇关于凸集、凸函数与凸规划的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/534363

相关文章

动态规划---打家劫舍

题目: 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。 思路: 动态规划五部曲: 1.确定dp数组及含义 dp数组是一维数组,dp[i]代表

软考系统规划与管理师考试证书含金量高吗?

2024年软考系统规划与管理师考试报名时间节点: 报名时间:2024年上半年软考将于3月中旬陆续开始报名 考试时间:上半年5月25日到28日,下半年11月9日到12日 分数线:所有科目成绩均须达到45分以上(包括45分)方可通过考试 成绩查询:可在“中国计算机技术职业资格网”上查询软考成绩 出成绩时间:预计在11月左右 证书领取时间:一般在考试成绩公布后3~4个月,各地领取时间有所不同

poj 2976 分数规划二分贪心(部分对总体的贡献度) poj 3111

poj 2976: 题意: 在n场考试中,每场考试共有b题,答对的题目有a题。 允许去掉k场考试,求能达到的最高正确率是多少。 解析: 假设已知准确率为x,则每场考试对于准确率的贡献值为: a - b * x,将贡献值大的排序排在前面舍弃掉后k个。 然后二分x就行了。 代码: #include <iostream>#include <cstdio>#incl

代码随想录冲冲冲 Day39 动态规划Part7

198. 打家劫舍 dp数组的意义是在第i位的时候偷的最大钱数是多少 如果nums的size为0 总价值当然就是0 如果nums的size为1 总价值是nums[0] 遍历顺序就是从小到大遍历 之后是递推公式 对于dp[i]的最大价值来说有两种可能 1.偷第i个 那么最大价值就是dp[i-2]+nums[i] 2.不偷第i个 那么价值就是dp[i-1] 之后取这两个的最大值就是d

数学建模笔记—— 非线性规划

数学建模笔记—— 非线性规划 非线性规划1. 模型原理1.1 非线性规划的标准型1.2 非线性规划求解的Matlab函数 2. 典型例题3. matlab代码求解3.1 例1 一个简单示例3.2 例2 选址问题1. 第一问 线性规划2. 第二问 非线性规划 非线性规划 非线性规划是一种求解目标函数或约束条件中有一个或几个非线性函数的最优化问题的方法。运筹学的一个重要分支。2

轨迹规划-B样条

B样条究竟是干啥的?白话就是给出一堆点,用样条的方式,给这些点连接起来,并保证丝滑的。 同时B样条分为准均匀和非均匀,以下为准均匀为例。 参考链接1:https://zhuanlan.zhihu.com/p/50626506https://zhuanlan.zhihu.com/p/50626506 参考链接2: https://zhuanlan.zhihu.com/p/536470972h

PMBOK® 第六版 规划进度管理

目录 读后感—PMBOK第六版 目录 规划进度管理主要关注为整个项目期间的进度管理提供指南和方向。以下是两个案例,展示了进度管理中的复杂性和潜在的冲突: 案例一:近期,一个长期合作的客户因政策要求,急需我们为多家医院升级一个小功能。在这个过程中出现了三个主要问题: 在双方确认接口协议后,客户私自修改接口并未通知我们,直到催进度时才发现这个问题关于UI设计的部分,后台开发人员未将其传递给

LeetCode:64. 最大正方形 动态规划 时间复杂度O(nm)

64. 最大正方形 题目链接 题目描述 给定一个由 0 和 1 组成的二维矩阵,找出只包含 1 的最大正方形,并返回其面积。 示例1: 输入: 1 0 1 0 01 0 1 1 11 1 1 1 11 0 0 1 0输出: 4 示例2: 输入: 0 1 1 0 01 1 1 1 11 1 1 1 11 1 1 1 1输出: 9 解题思路 这道题的思路是使用动态规划

LeetCode:3177. 求出最长好子序列 II 哈希表+动态规划实现n*k时间复杂度

3177. 求出最长好子序列 II 题目链接 题目描述 给你一个整数数组 nums 和一个非负整数k 。如果一个整数序列 seq 满足在下标范围 [0, seq.length - 2] 中 最多只有 k 个下标i满足 seq[i] != seq[i + 1] ,那么我们称这个整数序列为好序列。请你返回 nums中好子序列的最长长度。 实例1: 输入:nums = [1,2,1,1,3],

实现的动态规划问题华为笔试题C++实现

秋招刷力扣题,我觉得我对动态规划不是熟练,在此处做总结 动态规划(Dynamic Programming,DP)算法通常用于求解某种具有最优性质的问题。在这类问题中,可能会有许多可行解,每一个解都对应一个值,我们希望找到具有最优值的解。我觉得最大的问题就是对问题的分解,分解后的问题与分解前的问题具有相同的决策机制,将决策机制进行抽象,最终可以得到对应的解; 动态规划中开始介绍的爬楼梯等问题,答