谈一谈|浅谈单纯形法其中奥妙

简介: 谈一谈|浅谈单纯形法其中奥妙

1单纯形法简介

单纯形法是求解线性规划问题最常用、最有效的算法之一。基本思路是:先找出可行域的一个顶点,据一定规则判断其是否最优;若否,则转换到与之相邻的另一顶点,并使目标函数值更优;如此下去,直到找到某最优解为止。

单纯形法的原理可以简单理解成将解通过枚举得出来,但是这个方法很巧妙得减少了枚举的次数,这也是单纯形法中很关键的一个步骤:换基迭代。在换基迭代中,主要需要解决两个问题:

(1)、出基变量的确定

(2)、入基变量的确定

在解决这两个问题时,单纯形法给出了明确的定义,可其中原理是什么呢?我们下面来分析一下。


2原理分析

如下是一张初始单纯形表

表2.1标准型初始单纯形表

对于一个标准型线性规划问题

使用矩阵形式表示上面的标准型:

其中,XB构成了初始基变量,因此,初始可行解可以得出

根据矩阵的运算规律,XB=B-1b,所以,初始可行解还可以表示为:

目标函数

由2式可以得出

将5式带入1式,有

其中m代表基变量的个数,Pj参考标准型,结合矩阵的知识,知道

6式中,选取一个合适的XK,其他的非基变量全为0,只要它的检验数大于0,就可以让函数值增大。每次选择检验数最大正值对应的XK,达到的效果最好,这就是换入变量的确定。

且此时,目标函数变为:

再根据下面中XB必须大于等于0,可以计算出XK的取值范围,

所以,

只要将对应的Xi替换成Xk,函数值就会增大(Ck-Zk)Xk这就是换出变量的确定。然后一直迭代,直到找到最优解或者判断出无解,就可以解决线性规划问题。


3阅读背景

上述分析思路建立在矩阵的基础上,所以需要一定的线性代数的知识作为支撑,这里只分析了标准型单纯形法的思路,对于改进的单纯形法没有深入,所以在理解时也要结合标准型线性规划问题,对于其他的单纯形法,还需要结合它的使用方法具体分析。

目录
相关文章
|
5月前
|
Python
编程之禅的奇幻之旅:探寻代码世界与生活万象的惊世共鸣,颠覆你的认知!
【8月更文挑战第7天】编程不仅是技术活,更融汇艺术与哲学。它启示我们在生活里追求简洁高效,如Python列表推导式的优雅;教会我们面对挑战时冷静分析,正如调试代码;体现分工合作的重要性,像模块化设计;并鼓励持续优化,提升效能。编程所蕴含的生活智慧,能引导我们创造更美好、有序的人生。
54 1
|
8月前
|
传感器 算法 机器人
斯坦福李飞飞团队祭出“灵巧手”,泡茶剪纸炫技
【2月更文挑战第26天】斯坦福李飞飞团队祭出“灵巧手”,泡茶剪纸炫技
87 5
斯坦福李飞飞团队祭出“灵巧手”,泡茶剪纸炫技
|
存储 人工智能 安全
程序员眼中的AIGC必杀技到底是什么?
众所周知,最近两年AI领域是互联网领域的流量密码,简直火的不能再火。而且跟着人工智能技术的迅猛发展的脚步,AIGC(全称为Artificial Intelligence Generated Content)在各个领域的应用也越来越广泛。但是,在AIGC产生的热度之下,它的相关技术能力还需要进一步精进。除了大模型、大数据和高算力,还需要一个稳定、高效、安全的数字基础设施,来支持其完成生成、存储和传输内容的整个过程,并尽可能避免重复建设、减少数据移动的工作量。以存储为代表的云计算基础设施作为算力底座,重要性日益凸显。面对“文生图”、“图生图”甚至期待出现的“文生音频、视频”跨维度、跨模态的能力,都
147 0
程序员眼中的AIGC必杀技到底是什么?
|
算法 C++
走进“深度搜索基础训练“,踏入c++算法殿堂(二)
走进“深度搜索基础训练“,踏入c++算法殿堂(二)
80 0
|
机器学习/深度学习 算法 C++
走进“深度搜索基础训练“,踏入c++算法殿堂(五)
走进“深度搜索基础训练“,踏入c++算法殿堂(五)
91 0
|
算法 C++
走进“深度搜索基础训练“,踏入c++算法殿堂(一)
走进“深度搜索基础训练“,踏入c++算法殿堂(一)
69 0
|
8月前
|
人工智能 数据格式 Python
每日一问-ChapGPT-20230308-关于技术与思考的问题
每日一问-ChapGPT-20230308-关于技术与思考的问题
每日一问-ChapGPT-20230308-关于技术与思考的问题
|
机器学习/深度学习 算法 C++
走进“深度搜索基础训练“,踏入c++算法殿堂(四)
走进“深度搜索基础训练“,踏入c++算法殿堂(四)
85 0
|
算法 C++
走进“深度搜索基础训练“,踏入c++算法殿堂(三)
走进“深度搜索基础训练“,踏入c++算法殿堂(三)
92 0