首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >或许单纯形法也没那么简单?

或许单纯形法也没那么简单?

作者头像
用户7506105
发布于 2021-08-09 07:10:59
发布于 2021-08-09 07:10:59
5520
举报
文章被收录于专栏:碎片学习录碎片学习录

众所周转,单纯形法是求解线性规划问题最常用、最有效的算法之一,一些做优化的软件比如lingo都有对应很成熟的实现库,该方法的提出是由Spendley、Hext和Himswor等人在1962年提出的,它虽然是一个代数计算过程,但是本质还是基于几何原理,且它不需要计算目标函数的梯度,也就避免了一系列的求导操作,也是优化领域较为奠基的方法之一。

思想

通过几何思想构建单纯形,找到每次迭代中的最小值顶点,通过比如反射、延伸等操作构建新的单纯形尽可能挖掘出更多的点看是否比当前最小值点小进行迭代,直到算法收敛

一些约定和理论

凸集

  • 核心过程

当初始单纯形构造好后,核心思想其实就是不断改变这个单纯形使其能够朝向函数极小点收敛,所以需要不断地迭代,在迭代过程中都需要根据单纯形的每个点计算目标函数值,因为约定求得是最小值问题,所以此时目标函数值大的点将被另外的目标函数更小的点代替,且在迭代过程中是不断找到比当前最小值点目标函数更小的点,如果不满足条件则继续迭代,直到收敛到极小点

过程详解

过程最全包含反射、延伸、外收缩、内收缩、压缩过程

压缩操作

引入压缩因子

σ=12

,根据公式

vi=ps+σ(pips)

,产生除最大值以外的各维度的n个新值,即单纯形中其他各点与最大值的距离减半,由此产生新的点,构建新的单纯形

以上通过各种操作不断更新单纯形进行迭代,之所以每次迭代时将最小值排除就是想着在剩下的顶点中看是否能找到新的比当前最小值更小的顶点,如果找到(找的核心方法是反射,其他方法是对它的一些逻辑的处理,之所以和重心值反射是希望可以跳出局部极值,且机会均等)的话那之间的最小值就没有讨论意义故需排除,最终单纯形不断向极小值收敛,每次在反射时迭代都会判断是否达到了先验知识已知的最小值或者迭代次数上限从而决定是否继续用反射值代替最小值进行迭代

细节处理

  • 如果多个点对应的目标函数值相等,则新产生的点赋予更高的权重即大小排序的下标索引(就是如果有相同,则相对新的点是离全局最大值更接近的点)
  • 有的参考书上面用的是所有点的重心,私以为收敛效果或许没有每次排除最小值来的快
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-06-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 碎片学习录 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
谈一谈|浅谈单纯形法其中奥妙
单纯形法是求解线性规划问题最常用、最有效的算法之一。其基本思路是:先找出可行域的一个顶点,据一定规则判断其是否最优;若否,则转换到与之相邻的另一顶点,并使目标函数值更优;如此下去,直到找到某最优解为止。
算法与编程之美
2020/08/06
1.2K0
单纯形法
限制条件由等式和不等式组成。每一个线性的等式在几何上就限制了可行解必须在一个超平面上。每一个线性的不等式在几何上就限制了可行解必须在一个超平面的一边。于是这些限制条件就限制了可行解必须在某个单纯形上,所谓单纯形就是很多超平面围成的区域。
卡尔曼和玻尔兹曼谁曼
2019/01/22
9770
单纯形法MATALAB实现
参考单纯形法的步骤,MATALAB中的实现如下(求极小值): 注:对于极大值的求解,只需要对目标函数添加负号,求解出来的XX,再带入原目标函数即可。
卡尔曼和玻尔兹曼谁曼
2019/01/22
7790
单纯形法MATALAB实现
数值优化——单纯形法
之前过冷水和分享了几期优化算法的方法后就没有再更新相关类推文了,最近有接触单纯形法的学习,本期就和大家分享一下用单纯形法的思想来来求函数的极值。
巴山学长
2021/03/30
6280
数值优化——单纯形法
数值优化的交互式教程
原文: http://www.benfrederickson.com/numerical-optimization/ 作者:Ben Frederickson
iOSDevLog
2018/11/20
6860
数值优化(B)——二次规划(上):Schur补方法,零空间法,激活集方法
这一节我们开始介绍二次规划的相关内容。二次规划也是一类具体的非线性规划的问题,也有对应的方法。
学弱猹
2021/08/09
2K0
method_FISTA(Fast iterative shrinkage-thresholding algorithm)
FISTA(A fast iterative shrinkage-thresholding algorithm)是一种快速的迭代阈值收缩算法(ISTA)。FISTA和ISTA都是基于梯度下降的思想,在迭代过程中进行了更为聪明(smarter)的选择,从而达到更快的迭代速度。理论证明:FISTA和ISTA的迭代收敛速度分别为O(1/k2)和O(1/k)。
全栈程序员站长
2022/09/05
1.9K0
method_FISTA(Fast iterative shrinkage-thresholding algorithm)
python数据分析——数据分析的数据模型
数据分析的数据模型是决策支持系统的重要组成部分,它通过对大量数据的收集、整理、分析和挖掘,为企业提供有价值的信息,以支持企业的战略规划和日常运营。数据模型的选择和应用,直接关系到数据分析的准确性和有效性,进而影响企业的决策质量和市场竞争力。
鲜于言悠
2024/03/20
4580
python数据分析——数据分析的数据模型
线性规划之单纯形法【超详解+图解】
1.作用     单纯形法是解决线性规划问题的一个有效的算法。线性规划就是在一组线性约束条件下,求解目标函数最优解的问题。 2.线性规划的一般形式     在约束条件下,寻找目标函数z的最大值。 3.
Angel_Kitty
2018/04/09
33.2K0
线性规划之单纯形法【超详解+图解】
数值计算——「Deep Learning」读书系列分享第四章分享总结
「Deep Learning」这本书是机器学习领域的重磅书籍,三位作者分别是机器学习界名人、GAN 的提出者、谷歌大脑研究科学家 Ian Goodfellow,神经网络领域创始三位创始人之一的蒙特利尔大学教授 Yoshua Bengio(也是 Ian Goodfellow 的老师)、同在蒙特利尔大学的神经网络与数据挖掘教授 Aaron Courville。只看作者阵容就知道这本书肯定能够从深度学习的基础知识和原理一直讲到最新的方法,而且在技术的应用方面也有许多具体介绍。这本书面向的对象也不仅是学习相关专业的
AI研习社
2018/03/19
9670
数值计算——「Deep Learning」读书系列分享第四章分享总结
运筹教学|快速掌握单纯形法(附java代码)
线性规划(Linear programming, 简称LP)是运筹学中研究较早、发展较快、应用广泛、方法较成熟的一个重要分支,它辅助人们进行科学管理、寻找线性约束条件下线性目标函数的极值。它广泛应用于军事作战、经济分析、经营管理和工程技术等领域,为合理地利用有限的人力、物力、财力等资源做出最优决策,提供科学依据。线性规划一般由决策变量、约束条件和目标函数三个部分组成。
用户1621951
2023/01/05
1.3K0
运筹教学|快速掌握单纯形法(附java代码)
优化算法——牛顿法(Newton Method)
一、牛顿法概述     除了前面说的梯度下降法,牛顿法也是机器学习中用的比较多的一种优化算法。牛顿法的基本思想是利用迭代点 处的一阶导数(梯度)和二阶导数(Hessen矩阵)对目标函数进行二次函数近似
felixzhao
2018/03/16
2.8K0
优化算法——牛顿法(Newton Method)
运筹学单纯形法求解线性规划问题_运筹学单纯形法计算步骤
线性规划是研究在一组线性不等式或等式约束下使得某一线性目标函数取最大(或最小)的极值问题。
全栈程序员站长
2022/09/20
1.1K0
运筹学单纯形法求解线性规划问题_运筹学单纯形法计算步骤
分类问题 数据挖掘之分类模型
判别分析是在已知研究对象分成若干类型并已经取得各种类型的一批已知样本的观测数据,在此基础上根据某些准则建立判别式,然后对未知类型的样品进行判别分析。
用户2909867
2018/08/22
1.2K0
分类问题
数据挖掘之分类模型
工程优化学习笔记
对于凸规划 $ min f(x) $ $ s.t. g_i(x) \leq 0, i=1,2,L,m $
范中豪
2020/02/11
4040
工程优化学习笔记
算法优化之道:避开鞍点
凸函数比较简单——它们通常只有一个局部最小值。非凸函数则更加复杂。在这篇文章中,我们将讨论不同类型的临界点( critical points) ,当你在寻找凸路径( convex path )的时候可
用户1737318
2018/06/06
1.5K0
【运筹学】线性规划数学模型 ( 单纯形法原理 | 单纯形法流程 | 查找初始基可行解 )
( 可行域是凸集 ) : 如果线性规划的问题 存在可行解 , 其 可行域 必定是 凸集 ;
韩曙亮
2023/03/28
1.4K0
【运筹学】线性规划数学模型 ( 单纯形法原理 | 单纯形法流程 | 查找初始基可行解 )
数值优化(A)——线性规划中的单纯形法与内点法
在这一节我们会给大家介绍带约束优化中更为具体的线性规划的内容。相信大家在运筹学中会对线性规划更加熟悉,比方说单纯形法就是运筹学一开始就会讲授的内容。那么在优化中,我们也会关注它们,通过介绍他们来了解优化在运筹中的应用,也能够让大家更好的了解为什么“运筹优化”一般都放在一起来说。
学弱猹
2021/08/09
1.7K0
【运筹学】线性规划数学模型 ( 单纯形法 | 最优解判定原则 | 可行解表示 | 目标函数推导 | 目标函数最大值分析 )
在上一篇博客 【运筹学】线性规划数学模型 ( 单纯形法原理 | 单纯形法流程 | 查找初始基可行解 ) 中 , 讲解到了使用单纯形法求解线性规划问题 , 需要解决以下三个主要问题 :
韩曙亮
2023/03/28
1.3K0
优化与深度学习之间的关系
我只画出了区间(-2, 2)的函数图像,通过观察图像,我们发现该函数有两个波谷,分别是局部最小值和全局最小值。
磐创AI
2020/05/26
1.2K0
优化与深度学习之间的关系
推荐阅读
相关推荐
谈一谈|浅谈单纯形法其中奥妙
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档