首页 > 其他分享 >凸优化4——不改变凸集凸性质的变换

凸优化4——不改变凸集凸性质的变换

时间:2023-07-14 18:11:08浏览次数:34  
标签:函数 变换 透视 线段 凸集 集合 仿射 优化

本节对应凌青老师7,8两课

1. 两凸集交集(并集不一定)

2. 仿射函数及其逆函数

 可以看到,仿射函数是将原n维向量线性映射到m维向量

而逆仿射依然不改变凸性质,逆仿射可以如下表示

3. 缩放、移位

4. 两凸集的和

两凸集的和可以表示为

在证明时,可以先构造一个辅助集合,如下:

 上面这个辅助集合易证是凸集,而将该辅助集合通过

 的仿射变换,即可得到两集合的和,故得证

5. 透视函数与反透视

透视比较有意思,实际上是一种降维的操作,首先对定义域有要求,如下:

 这表示P中的点是n+1维的向量,其中前n维取值是实数集,而最后一维是++大于0的(此处 'x' 意义等同上面辅助集合中的)

而透视函数则将该n+1维向量映射到n维

 这里证明也是通过凸集的定义来证,主要一点如下所示:

证明思路:原凸集中任意两点连接成的线段,在透射后的集合中仍对应一条线段,且该线段中的每一点与原线段的点可以一一映射 

在原凸集中任取两点,X,Y,这两端点经过透视降维后,对应于上式中X'/Xn+1  和 Y'/Yn+1

而这两点前的系数,由sita决定,且一一对应并属于[0,1],故透射后仍是一条线段

反透视可以表达如下:

7. 线性分数函数

先来看一下线性分数函数的样子

这个很常见对吧(dom表示f的定义域)

一个凸集经过这个非线性变换仍然是凸集,老师给出一个很有意思的角度理解,都是利用上述已知结论

即,线性分数函数=先仿射再透射

其中,仿射如下:

AX+b是一个m维向量,CX+d是一个标量,整体是m+1维的,该m+1维的集合,经过透射,不就是(AX+b)/(CX+d)嘛!! 

这个时候再看,仿射一次不改变凸,透射也是,因此线性分数函数不改变凸性质,豁然开朗

标签:函数,变换,透视,线段,凸集,集合,仿射,优化
From: https://www.cnblogs.com/sun-secretbase/p/17554690.html

相关文章

  • 性能优化 - Nginx & Linux
    性能优化-Nginx&Linux来自鑫哥[鑫哥的技术思维]2022-05-0709:26发表于湖北纲要Nginx优化后的完整配置Linux内核参数优化修改最大打开文件句柄数Nginx优化后的完整配置#核心参数(其他参数大部分情况下用不到)#userUSERNAME[GROUP]#解释:指定运行nginx的wo......
  • Java优化递归查询Mysql节点树数据
    示例目前有一个功能:任务计划管理,必然存在多级子任务的父子级关系,每个任务还会存在其它数据的关联表。mysql无法一次性递归查出想要的数据结构,想必很多人都会是通过根目录递归查询数据库的方式查出树结构数据。如果节点数较多,就会造成大量请求Mysql查询,效率会很低。那么如......
  • 针对clickonce发布后的程序,优化处理省略弹出层
              ......
  • 总监面(高级或架构):如何找到缓慢代码并判定代码执行效率,以及优化它的思路
    1、先使用一些集成测试插件(比如jmeter、metershpere)或者脚本定位到慢速接口,也可以通过日志分析cat|grep2、使用sonar、findbugs之类的插件定位复杂度较高的代码,(分析一下算法复杂度和空间复杂度)以及sql调用部分的代码3、先将调用的sql放到mysql上运行一遍,观测执行速度,如果存在......
  • 优化基础1——单纯形法与迭代局部搜索
    一.单纯形法学习的参考资料:运筹学教学|十分钟快速掌握单纯形法(附C++代码及算例)(qq.com)运筹说第16期|线性规划硬核知识点梳理—单纯形法-知乎(zhihu.com)史上最详细单纯形法—从理解到计算(带约束规划问题)-知乎(zhihu.com)主要理解其思想应该是对暴力求解法的改进......
  • ABC222D-Between Two Arrays(前缀和优化dp)
    题意:给定两个递增数列A和B,构造一个ai <=ci<=bi的递增数列C,询问满足条件的C的个数。普通dp会超时,用前缀和优化n=int(input())a=list(map(int,input().split()))b=list(map(int,input().split()))l=3010dp=[[0]*lfor_inrange(n+1)]dp[0][0]=1foriinrange(n)......
  • sql优化
    一、有索引而未被用到:1、Like的参数以通配符%开头时,数据库引擎会放弃使用索引而进行全表扫描。以通配符开头的sql语句,是全表扫描,没有使用到索引,不建议使用:explainselect*fromteacherwheretnamelike'%10';不以通配符开头的sql语句,使用到了索引,是有范围的查找:explainselect......
  • 05-优化程序性能
    写程序最主要的目标就是使它在所有可能的情况下都正确工作。一个运行得很快但是给出错误结果的程序没有任何用处。程序员必须写出清晰简洁的代码,这样做不仅是为了自己能够看懂代码,也是为了在检査代码和今后需要修改代码时,其他人能够读懂和理解代码。另一方面,在很多情况下,让程序运......
  • destoon列表性能优化,关于IN()与FIND_IN_SET
    destoon数据达到一定之后列表打开速度就很慢,于是为了解决这个问题,进行以下办法处理。找到/include/tag.func.php文件,找到这段代码: 原因:区别:1、in后面只能跟常量,find_in_set()函数可以使用常量或字段。2、in是完全匹配,find_in_set()函数是精确匹配,字段值以英文”,”分隔。......
  • Hive数仓项目之需求分析、建模分析、优化方案Hive数仓项目之访问咨询主题看板增量的流
     往期内容:Hive数仓项目架构说明、环境搭建及数据仓库基础知识Hive数仓项目之数仓分层、数仓工具的使用Hive数仓项目之访问咨询主题看板:数据的采集、转换、分析导出Hive数仓项目之访问咨询主题看板增量的流程今日内容:访问咨询主题看板_增量的流程(操作)1.1:数据的采集1.2:数据......