对simplex算法的时间复杂度进行分析

对于simplex算法,如果每进行一次pivot变换,目标函数所得到的结果都会有可能出现增加的情况,所以得到的结论中,可以肯定它的值是一定不会出现减少的情况的,每次从目标函数中找到一个系数大于0的变量,然后再在约束条件中选取能够让它的增值最少的那个来继续进行pivot变换。

当目标函数中不存在变量系数大于0的变量的时候,就是算法结束了,因此只要进行了多少次的pivot变换就能够使得目标函数不存在系数大于0的变量的时候,就可以确定算法的时间复杂度了,这里要想确定执行了多少次的pivot变换,一个定理成立,这个定理就是假设有n个变量,从x1到xn,I是变量下标的集合,I={1,2,3,...n}对于两组各自含有n各元素的实数集合a1到an,b1到bn,同时r表示任意的实数的时候,如果无论n个变量是如何取值的,对于

添加图片注释,不超过 140 字(可选)

都能够成立的时候,就会有aj=bj,r=0。

simplex算法的时间复杂度,假设当线性规划系统转换成标准型后存在n个非基本元,同时存在m个基本元,那么算法要在

添加图片注释,不超过 140 字(可选)

次pivot变换之后才会结束,或者算法就会存在永远不会结束的情况。

当线性规划系统处于标准型的时候,如果基本元的下标是不变的,那么约束条件等式右边的非基本元系数和常量的取值一定是唯一的。由于每次只需pivot变换时,来自非基本元的转入变量在变换后形成基本元,来自原来基本元的转出变量会变成非基本元,因此基本元的下标集合只能在原来m个基本元的下标和n个非基本元的下标中进行组合,simplex算法的时间复杂度要么就是

添加图片注释,不超过 140 字(可选)

次,要么就是个死循环。

相关推荐
田里的水稻10 分钟前
C++_队列编码实例,从末端添加对象,同时把头部的对象剔除掉,中的队列长度为设置长度NUM_OBJ
java·c++·算法
心本无晴.14 分钟前
Python进程,线程
python·进程
纪元A梦18 分钟前
贪心算法应用:保险理赔调度问题详解
算法·贪心算法
Jayden_Ruan1 小时前
C++逆向输出一个字符串(三)
开发语言·c++·算法
点云SLAM2 小时前
C++ 常见面试题汇总
java·开发语言·c++·算法·面试·内存管理
叙白冲冲2 小时前
哈希算法以及面试答法
算法·面试·哈希算法
java1234_小锋3 小时前
Scikit-learn Python机器学习 - 特征降维 压缩数据 - 特征提取 - 主成分分析 (PCA)
python·机器学习·scikit-learn
java1234_小锋3 小时前
Scikit-learn Python机器学习 - 特征降维 压缩数据 - 特征提取 - 线性判别分析 (LDA)
python·机器学习·scikit-learn
YuTaoShao3 小时前
【LeetCode 每日一题】1277. 统计全为 1 的正方形子矩阵
算法·leetcode·矩阵
古译汉书3 小时前
嵌入式铁头山羊stm32-ADC实现定时器触发的注入序列的单通道转换-Day26
开发语言·数据结构·stm32·单片机·嵌入式硬件·算法