凸优化 (中科大

article/2025/10/16 22:28:24

凸优化是优化中比较容易的一种

优化optimization,即数学规划。     优化=规划

优化:(包含三个要素)可行解的集合、定义最优、找出

任何一个优化问题,总可以写成这样的形式:

minimize  函数 f_{0}(x) ,最优的准则

约束:使得 f_{i}(x)\leq b_{i},    i=1,2,...,M    总共有M个约束。叫做:不等式的约束

x=[x_{1},...,x_{n}]^{T}    优化变量

f_{0}:R^{n} \to R ,   f_{0}(x) 目标函数 、是从n维空间到1维空间的映射

f_{i}:R^{n} \to R

找到最优解 x^{*}  ,

 feasible set可行解集合

目标:minimize objective function——fo(x),

约束为:|x|<=a,

可行域feasible set——fi(x)在约束范围内,

最优解x*使得f(x*)<=f(x)

应用:

例子1:数据拟合问题:使得 测量误差最小

y= a x^2+bx+c

min e^{2}_{1}+...+e^{2}_{n}

e_{i}=y_{i}-(ax^{2}_{i}+bx_{i}+c)      i=1,...,n

例子2:线性二次调节器 LQR。 

 自动化系。 现代控制理论。

x_{k}表示系统在k时刻的状态,由k-1时刻的状态,经过状态转移A矩阵、再加上k时刻的输入 u_{k}、乘以 输入的矩阵B构成。用来描述 离散的动态系统、

卡尔曼滤波只是用了这个线性的模型,从这个式子推出来的,这是马尔科夫状态转移矩阵

RNN

优化控制序列 u_{k}、通过u_{k}序列 来调节输出的状态x_{k}

在 N长的时间段内,min(状态的方差、输入的方程(输入的能量))

动态求解 黎卡提方程,

例子3:多用户的能量控制问题

通信工程系,控制理论,

一组 发送者Tx   ---> 接收者Rx,叫一个用户Ui

用户 Ui 以单位能量Pi来发送信号,对第j个用户产生的干扰   αij

每个通信链路  存在一定噪声 高斯白噪声 每个噪声方差 δi^2   

信干燥比  SINR 

 链路码率和信噪比相关      用户Ui的码率fi(信道容量)

香农定理

电信运用商,希望用户发送的码流尽可能大,信道所通路的信息量尽可能大,赚的多

max 网络的流量   

例子4:图像处理:TV-L2模型

 二维图像 带噪声,恢复出不带噪声的图像

所有自然图像都有一定规律,如 e.分片光滑

照片中会有一些很大的色块,(线性知识、要使得图像 在TV范数意义下 尽可能小,即分片光滑、

 TV范数(总变差):对图像做两个方向上的差分,平方和 再开根

min 后项为  规范化项  λ可任选、因为还需要Φ 接近Φ0,即 使得两个矩阵之差的F范数尽可能小

F范数   即 矩阵所有元素的平方和 再开根号

例子5:超大规模集成电路设计

23系 电子科学与技术系,

 门电路集合,连成有向图集合,完成一定的功能,有可能的连接t1,...tm

且系统达到一些性能指标(如能耗、资金)P,

这类问题很难,一般都是非凸优问题

例子6:计算机系,最短路径问题

 网络, 如何访问网站花费的代价最小

无向图,顶点、边、边的权重 表示 从第1个点到第2个点所花的代价,

迪杰斯特拉算法、贝尔曼福德算法可解

选择的问题一般都是很难的,

可以把xij =0 or 1,改写 简化成xij>=0, 线性规划(容易)

首先改成大于等于0的目的是为了将选择的问题改成线性规划的问题

放松条件之后你可能得到比如0.9这样的解,说明这个问题整数不能达到目标函数的最优, 然后去看0.9附近哪个整数更优,从而得到整数规划的答案。

优化问题的分类

1. 线性规划;非线性规划

 单纯形法 是 解决线性规划问题的标准方法,

图表示:从f1,...fm的约束,所构成的空间、即 可行解集

因为约束空间的每个函数都是线性函数,可行解集 一定是这样有很多条直线所圈出来的形状

目标函数 也是线性函数,在空间里描述出来,等高线,每条线都是f0的取值

想象 黑板就是x的空间,框出来的是 可行解集    线上的x  对应的f0是相等的,

因为是线性目标函数,所以梯度方向是垂直于等值线的,然后两个方向随意指了一个(?)

2.凸规划/ 非凸规划

 目标函数是凸函数、可行解集是凸集

凸函数:没法找到一些不相邻的最低的点

任何线性规划问题都是凸规划,易解

3. 光滑/ 非光滑         

一般是针对目标函数f0(x)而言

光滑函数:函数在每个点都是可微的

非光滑 e.g. 折线。     问题稍难,但不是本质差别

4.连续/ 离散

针对可行域而言

e.g. 大规模集成电路   离散点,因为一般来说 都是非凸问题

5. 单目标/ 多目标

 e.g. 房价调控,政府和人民目标不一样

帕累托曲面,面上所有点 没法找到任意x 使得f1和f2都小,没有“最好的”指标

折中pareto  

多目标优化问题  很多时候可以通过加权成,单目标优化问题

但并不总是管用,因为很多问题,加权不一定能得到帕累托曲面

任何优化问题,如果能变成凸优化问题,相当于完成90%了,

本门课 所指的难: 问题 求解难,而不是指目标函数难以计算

发展历程:

拉格朗日乘子,把约束变成目标。    这节课的重点:找出目标和约束间的关系

1940 贝尔曼动态优化   

有一个 时间序列、需要优化每个点的值、来达到总体目标,可以从后往前来优化,

1944 冯诺依曼 博弈论,每个人都要优化自己的目标函数,区别于多目标优化

纳什均衡

1939  苏联 集体农庄 生产资料调配,线性规划 Kantorovich

1947 单纯形法  

线性规划问题,一定能保证在多项式时间内求解出来、

单纯形法 不能保证,存在问题

改进   1979   内敛法、理论上可行,实际不够好用

1984   内点法IPM、解决大规模线性规划问题 最有效的方法

1990   内点法 拓展到非线性

仿射集affine sets   

 凸集的 特例

仿射包(affine hull)

从c里任意选k点,做仿射组合,从x1,x2集合构造出仿射包,从非仿射集合构建出仿射集合

凸集、

凸包(Convex Hull)   

 计算几何(图形学)中的概念

从非凸集合构造最小凸包

锥 cone 

凸锥 convex cone

锥组合就是“凸+锥“组合。

 任意仿射集   一定是凸的;凸锥也一定是凸的

c={x}   也是仿射集       θ1x+θ2x=x     是凸集;除非是原点,否则不是凸锥

空集    是 仿射集、凸集、也是凸锥(集)

R^n空间、R^n空间的子空间     是 仿射集、凸集、也是凸锥

超平面与半空间

超平面是个集合,

线性方程  a^T x=b  、的解集 

典型的凸集

球和椭球

Euclidean欧几里得空间,指的是 我们能使用  2 norm     

补充知识:范数

向量的【范数】:模长的推广,柯西不等式_哔哩哔哩_bilibili

 【范数】:模长的推广

范数可以定义在任何线性空间上

 p范数

||x||2   也就是平时用的模长、也叫欧几里得范数、欧式范数、是现实世界中的长度

||x||1   出租车/ 曼哈顿范数。长度定义成 沿着道路走过的距离

2范数的性质: 酉变换下保持不变

酉矩阵  实数域中是正交阵

说白了就是正交变换,扩展到复数域了

 正交变换是保持长度的,也被称作刚体变换

三角不等式定理:||a+b||<= ||a||+||b||      对于任意范数

任意两边之和 ≥ 第三边

(x-xc)^T P^-1 (x-xc)     加权的二范数。      通过 P^-1 来加权

补充知识:奇异值

A^T A   一定是方阵、对称。他的特征值一定都是>=0,

 \sqrt{eig(A^T A)}    即矩阵A的奇异值

方阵的奇异值和特征值也是可能不一样的。   

但是对于 特殊的一些方阵,如 P=r^{2}I_{n}  奇异值和特征值一样

多面体、有界多面体

 一系列的半空间和超平面的交集、

多面体不一定都有界,如:只有一个半空间的约束

多面体是凸集

单纯形 simplex 

单纯形是代数拓扑中最基本的概念。单纯形是三角形和四面体的一种泛化,一个k维单纯形是指包含 k+1个节点的凸多面体。

单纯形  一定是个多面体

对称矩阵、半正定矩阵、正定矩阵、

S^{n}_{+}  是凸锥、  对称的矩阵集合是 凸锥、对称正定  不是凸锥

矩阵空间和实数空间对应来考虑

仿射函数

 仿射,即 线性的映射 

f是从n维空间到m维空间的映射

x是n维空间里的点

凸集经过仿射函数的变换,仍在凸集

拉伸、旋转,线性变化不改变凸性

逆的仿射映射

n维空间里的集合 s、   s中的元素都是通过f(x)得到的,其中x属于k维空间

控制里的重要概念,

Ai、Xi对称矩阵

线性矩阵不等式的解集是凸集

-------Lec.07   34:10   --------

Lec11     凸函数定义:

1.  e.g. 锅上的棍子

高维用起来不方便

2. e.g.切西瓜

3.

4.

中科大-凸优化_哔哩哔哩_bilibili

2011年,中科大,凌青的凸优化

全程在板书、在证明定理、在搞定义,传统数学课,听不下去了,  

[凸优化-中文字幕]Boyd斯坦福公开课_哔哩哔哩_bilibili

国内似乎很多学校都用的这老师的书做教材,算是鼻祖把,但是这课上的,非常不国外风格,第二课直接扑面而来一大堆概念,机翻都不知道说的啥概念,记了一脑袋英文专业名词。


http://chatgpt.dhexx.cn/article/ZfbvWlVv.shtml

相关文章

凸优化学习

”凸优化“ 是指一种比较特殊的优化&#xff0c;是指求取最小值的目标函数为凸函数的一类优化问题。凸优化就是&#xff1a;1、在最小化&#xff08;最大化&#xff09;的要求下&#xff0c;2、目标函数是一个凸函数&#xff08;凹函数&#xff09;&#xff0c;3、同时约束条件…

理解凸优化

导言 凸优化&#xff08;convex optimization&#xff09;是最优化问题中非常重要的一类&#xff0c;也是被研究的很透彻的一类。对于机器学 习来说&#xff0c;如果要优化的问题被证明是凸优化问题&#xff0c;则说明此问题可以被比较好的解决。在本文中&#xff0c;SIGAI将为…

优化算法——凸优化的概述

一、引言 在机器学习问题中&#xff0c;很多的算法归根到底就是在求解一个优化问题&#xff0c;然而我们的现实生活中也存在着很多的优化问题&#xff0c;例如道路上最优路径的选择&#xff0c;商品买卖中的最大利润的获取这些都是最优化的典型例子&#xff0c;前面也陆续地有一…

凸优化基础知识

目录 一、计算几何是研究什么的&#xff1f; 二、计算几何理论中&#xff08;或凸集中&#xff09;过两点的一条直线的表达式&#xff0c;是如何描述的&#xff1f;与初中数学中那些直线方程有什么差异&#xff1f;有什么好处&#xff1f;(按自己的体会) 1、凸集中 2、初中…

优化问题---凸优化基本概念

目录 1.凸优化到底是什么&#xff1f; 1.1 基本概念 1.2 凸优化和非凸优化 2、集合概念 2.1 仿射集、仿射包、仿射组合 2.2 凸集、凸包、凸组合 2.3 锥、凸锥 3.凸函数与非凸函数 4.总结 1.凸优化到底是什么&#xff1f; 1.1 基本概念 凸优化就是优化问题的一个特例…

toLower toUpper

2019独角兽企业重金招聘Python工程师标准>>> 1.根据二进制规律很容易就发现 char toLower(char x) {if (x > A && x < Z)return (x | 0x20);return x; }char toUpper(char x) {if (x > a && x < z)return (x & 0xDF);return …

C++ Reference: Standard C++ Library reference: C Library: cctype: toupper

C官方参考链接&#xff1a;https://cplusplus.com/reference/cctype/toupper/ 字符转换功能两个在字母大小写之间转换的函数&#xff1a; 函数toupper int toupper ( int c ); 将小写字母转换为大写字母 如果c是一个小写字母并且具有一个大写字母的等价物&#xff0c;则将c…

c语言中toupper函数作用,C语言中toupper 是什么?

牛魔王的故事 toupper&#xff0c;是一种计算机用语&#xff0c;用来将字符c转换为大写英文字母。C语言原型extern int toupper(int c);用法#include 功能将字符c转换为大写英文字母说明如果c为小写英文字母&#xff0c;则返回对应的大写字母&#xff1b;否则返回原来的值。扩展…

sqlite下载安装

安装教程 第一步&#xff1a;首先先到官网下载:https://www.sqlite.org/download.html 第二步&#xff1a;选择与自己电脑合适的系统 第三步&#xff1a;下载成功&#xff0c;全部解压 第四步&#xff1a;配置变量 我的电脑右击->属性->高级系统设置->高级->…

sqlite expert(sqlite数据的第三方工具)64位下载安装

官网太慢&#xff0c;这里从腾讯软件中心下载. https://pc.qq.com/search.html#!keywordsqliteexpert 如图&#xff0c;选择64位&#xff0c;普通下载(不用安装腾讯软件管家)即可: 之后&#xff0c;点击 SQLiteExpertPersSetup32-5.3.3.389.exe 一直下一步即可。 也可以从官网…

【SQLite预习课1】SQLite简介——MySQL的简洁版

作者主页&#xff1a;Designer 小郑 作者简介&#xff1a;浙江某公司软件工程师&#xff0c;负责开发管理公司OA、CRM业务系统&#xff0c;全栈领域优质创作者&#xff0c;CSDN学院、蓝桥云课认证讲师&#xff0c;开发过20余个前后端分离实战项目&#xff0c;主要发展方向为Vue…

SQLite数据库管理工具,可视化工具GUI/SQLiteExpert/SQLiteStudio/SQLiteBrowser

1、Navicat Premium【商业软件&#xff0c;大而全】 Navicat Premium 是一套数据库开发工具&#xff0c;让你从单一应用程序中同时连接 MySQL、MariaDB、MongoDB、SQL Server、Oracle、PostgreSQL 和 SQLite 数据库。 Navicat Premium | 以单一的 GUI 同时连接不同类型的数据…

SQLite——Java使用SQLite初体验

文章目录 前言依赖版本SQLite 操作工具类(自写)建立连接建表DDL插入数据、查询数据、删除数据 DML删除数据表 DDL查看db文件工具 前言 SQLite相比大多数数据库而言&#xff0c;具有免安装等优势&#xff0c;广泛应用于测试、Android等领域。 通过一个.db文件就能实现数据库连接…

Android 中SQLite数据库的使用详解

博主前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住也分享一下给大家&#xff0c; &#x1f449;点击跳转到网站 Android SQLite数据库相关API的介绍可以看这篇文章 Android SQLite数据库中基础的增删改查操作以及API的详…

Android Studio使用SQLite数据库

文章目录 零、本讲学习目标一、导入二、讲解&#xff08;一&#xff09;SQLite数据库1、SQLite构成2、SQLite数据类型3、SQLite数据库特点 &#xff08;二&#xff09;使用SQLiteDatabase类操作数据库1、创建安卓应用2、准备图片素材3、字符串资源文件4、主布局资源文件5、主界…

Sqlite的下载与安装

首先&#xff0c;下载Sqlite&#xff0c;或者直接下载群文件中的Sqlite文件下载完成之后解压在电脑的某个路径之下&#xff0c;C盘、D盘等等都可以&#xff0c;创建新的文件夹“sqlite”&#xff0c;把压缩包解压到文件夹中&#xff0c;如图所示紧接着我们需要在我们电脑上配置…

Android SQlite基本用法

一.SQLite的介绍 1.SQLite简介 SQLite是一款轻型的数据库&#xff0c;是遵守ACID的关联式数据库管理系统&#xff0c;它的设计目标是嵌入 式的&#xff0c;而且目前已经在很多嵌入式产品中使用了它&#xff0c;它占用资源非常的低&#xff0c;在嵌入式设备中&#xff0c;可能…

安卓使用sqlite

搭建环境 // Top-level build file where you can add configuration options common to all sub-projects/modules.buildscript {repositories {maven{ url https://maven.aliyun.com/repository/google}maven{ url https://maven.aliyun.com/repository/gradle-plugin}maven{…

SQLite

一、android内的数据库的基础知识介绍 1.用了什么数据库 android中采用的数据库是SQLite这个轻量级的嵌入式开源数据库&#xff0c;它是用C语言构建的。相关简介可以从链接查看。 2.数据库基本知识观花 对于一些和我一样还没有真正系统学习数据库技术的同学来说&#xff0c;把S…

Android SQlite数据库使用详解

目录 概述SQLite使用SQLite数据库创建增加数据删除数据更新数据查询数据 完整代码 概述 SQLite 一个非常流行的嵌入式数据库&#xff0c;它支持 SQL 语言&#xff0c;并且只利用很少的内存就有很好的性能。此外它还是开源的&#xff0c;任何人都可以使用它。 查看模拟器数据库…