Convex Set and Convex Function凸集与凸函数

2023-10-31 04:40

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

Welcome To My Blog
Rockafeller说:”优化问题的分水岭不是线性和非线性,而是凸性和非凸性”

两点连线上的点

在介绍凸集和凸函数之前,先来看一个与之有关的基本问题:
如下图,已知空间中有B,C两点,在给定两点坐标的情况下如何量化B,C连线上的任意一点D?
0.png
很简单,看下图,设已知A,B,C,D的坐标,
AD = AB + BD
= AB + kBC (D在BC上,所以k∈[0,1])
= AB + k(AC - AB)
= kAC + (1-k)AB
(以上均为向量运算)
1.png
所以,已知空间中有两点X,Y,那么线段XY上的任意一点可以表示为kX + (1-k)Y,其中k∈[0,1]

凸集

定义

若集合S⊆Rⁿ满足
αx + (1 - α)y ∈ S, ∀x,y ∈ S, ∀α ∈ [0,1]
则称S是Rⁿ中的凸集.
(当α没有限制时,α为直线xy上的任意点,此时S是仿射集)

几何解释

从几何的角度可以这么理解,如果凸集S包含x,y两点,那么线段xy都在S中,如下图
左边的椭圆是凸集,右边的四角星不是凸集
2.png

凸函数

定义

凸函数

设S⊆Rⁿ是凸集. 若函数f : Rⁿ → Rⁿ满足
f[αx + (1-α)y] ≤ αf(x) + (1-α)f(y), ∀x,y ∈ S, ∀α ∈[0,1]
则称f是S上的凸函数

严格凸函数

接凸函数,若不等式
f[αx + (1-α)y] ≤ αf(x) + (1-α)f(y), ∀x,y ∈ S, ∀α ∈[0,1]
对所有 x≠ y和 α∈(0,1)成立,则称f是S上的严格凸函数

一致凸函数(强凸函数)

接凸函数,若存在常熟 m>0, 使不等式
f[αx + (1-α)y] ≤ αf(x) + (1-α)f(y) - mα(1-α)||x-y||² 对所有x,y∈S以及所有α∈[0,1]成立,则称f是S上的一致凸函数(强凸函数)

几何解释

  1. 任意一点的切线都在图像下方(图像像个碗)
  2. 任意两点确定的弦在其图像上方
    其实,横坐标为αx + (1-α)y时,对应弦AB上点的纵坐标就是αf(x) + (1-α)f(y)
    3.jpg

Welcome To My Blog

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



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

相关文章

C++中unordered_set哈希集合的实现

《C++中unordered_set哈希集合的实现》std::unordered_set是C++标准库中的无序关联容器,基于哈希表实现,具有元素唯一性和无序性特点,本文就来详细的介绍一下unorder... 目录一、概述二、头文件与命名空间三、常用方法与示例1. 构造与析构2. 迭代器与遍历3. 容量相关4

Redis中Set结构使用过程与原理说明

《Redis中Set结构使用过程与原理说明》本文解析了RedisSet数据结构,涵盖其基本操作(如添加、查找)、集合运算(交并差)、底层实现(intset与hashtable自动切换机制)、典型应用场... 目录开篇:从购物车到Redis Set一、Redis Set的基本操作1.1 编程常用命令1.2 集

c++中的set容器介绍及操作大全

《c++中的set容器介绍及操作大全》:本文主要介绍c++中的set容器介绍及操作大全,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录​​一、核心特性​​️ ​​二、基本操作​​​​1. 初始化与赋值​​​​2. 增删查操作​​​​3. 遍历方

shell中set -u、set -x、set -e的使用

《shell中set-u、set-x、set-e的使用》本文主要介绍了shell中set-u、set-x、set-e的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录✅ 1. set -u:防止使用未定义变量 作用: 示例:❌ 报错示例输出:✅ 推荐使用场景:✅ 2. se

MySQL中FIND_IN_SET函数与INSTR函数用法解析

《MySQL中FIND_IN_SET函数与INSTR函数用法解析》:本文主要介绍MySQL中FIND_IN_SET函数与INSTR函数用法解析,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友一... 目录一、功能定义与语法1、FIND_IN_SET函数2、INSTR函数二、本质区别对比三、实际场景案例分

Nginx指令add_header和proxy_set_header的区别及说明

《Nginx指令add_header和proxy_set_header的区别及说明》:本文主要介绍Nginx指令add_header和proxy_set_header的区别及说明,具有很好的参考价... 目录Nginx指令add_header和proxy_set_header区别如何理解反向代理?proxy

Java function函数式接口的使用方法与实例

《Javafunction函数式接口的使用方法与实例》:本文主要介绍Javafunction函数式接口的使用方法与实例,函数式接口如一支未完成的诗篇,用Lambda表达式作韵脚,将代码的机械美感... 目录引言-当代码遇见诗性一、函数式接口的生物学解构1.1 函数式接口的基因密码1.2 六大核心接口的形态学

C++11的函数包装器std::function使用示例

《C++11的函数包装器std::function使用示例》C++11引入的std::function是最常用的函数包装器,它可以存储任何可调用对象并提供统一的调用接口,以下是关于函数包装器的详细讲解... 目录一、std::function 的基本用法1. 基本语法二、如何使用 std::function

poj 3050 dfs + set的妙用

题意: 给一个5x5的矩阵,求由多少个由连续6个元素组成的不一样的字符的个数。 解析: dfs + set去重搞定。 代码: #include <iostream>#include <cstdio>#include <set>#include <cstdlib>#include <algorithm>#include <cstring>#include <cm

Collection List Set Map的区别和联系

Collection List Set Map的区别和联系 这些都代表了Java中的集合,这里主要从其元素是否有序,是否可重复来进行区别记忆,以便恰当地使用,当然还存在同步方面的差异,见上一篇相关文章。 有序否 允许元素重复否 Collection 否 是 List 是 是 Set AbstractSet 否