单纯形法的来历

单纯形法的来历

在求解LP问题时,有人给出了图解法,但对多维变量时,却无能为力。于是,美国数学家G.B. Dantzig (丹捷格)发明了一种“单纯形法”的代数算法,尤其是方便于计算机运算。

与单纯形法有关的三条定理:

  

翻译一下就是:

  • 若某个基本可行解对应的检验向量<0,那么这个基本可行解就是最优的。

  • 若某个基本可行解对应的检验向量=0,则有无穷多个最优解。

  • 若某个基本可行解对应的检验向量>0,并且系数(约束条件)小于0,无解。

CNCN——非基变量系数

CBCB——基变量系数

B——基,即线性无关向量组R(A)=R(B)

N——非基向量组

单纯形法计算步骤: 

  1. 将线性规划问题化成标准型 (引入松弛变量)

  2. 找出或构造一个m阶单位矩阵作为初始可行基,建立初始单纯形表

  3. 计算各非基变量检验数σj=cj−zjσj=cj−zj 若所有检验数≤0,则问题已得到最优解,停止计算。否则,转入下一步。(检验数)

  4. 在大于0的检验数中,若某个检验数对应的系数列向量≤ 0,则此问题是无界解,停止计算,否则转入下步。

  5. 根据maxmax(检验数jj | 检验数jj>0)=检验数k的原则,确定为换入变量(进基变量) 再按最小比值法则(biaikbiaik,&aikaik>0)确定换出变量,建立新的单纯形表,此时的基变量中xkxk代替的换出变量的位置。

  6. 以aikaik为主元素进行迭代,把xkxk所对应的列向量变为单位列向量,即aikaik变为1 同列中其他元素变为0,继续计算各非基变量的检验数,进行第三步。

&Lingo里面的方法就属于单纯形法。

  

例题:

  

 

  ①先引入三个松弛变量,构造单位矩阵

  

 

  ②得到单位矩阵,构造出初始可行基B

  

 

  从中我们可以get信息:基向量组B和非基向量组N

  还可以知道所有变量的系数所组成的向量C和基变量XBXB、非基变量XNXN:

  

   我们需要的检验数就是系数减去ZjZj(σj=cj−zjσj=cj−zj,Zj=CBNjZj=CBNj)    

  这是目标函数:Z=CBB−1b+(CN−CBB−1N)XNZ=CBB−1b+(CN−CBB−1N)XN      (b就是增广矩阵多出来的那些)

  当基矩阵B化成单位矩阵时,令非基变量XNXN=0,得到 Z=CBB−1bZ=CBB−1b 

 

  ③进行步骤3--6

  

  填入信息

  

 

  刚开始,基变量的系数全为0,所以Z=0,ZjZj=0,可以写出对应的检验数

x1

x2s1s2s3
50100000

 

  可以看出,x2x2对应的检验数最大,成为换入变量,而且根据最小值法则,知道s3s3是换出变量。于是将s3s3的位置换上x2x2,对应的系数也变成了100。

  

 

  我们再进行初等行变换,使x2x2,s1s1,s2s2对应的基矩阵变成单位矩阵。在此基础上进行计算ZjZj就可以利用其算出新一轮的检验数:

  

  我们可以发现,仍然存在检验数大于0的情况,唉,只能进入新一轮的迭代,x1x1作为换入变量,而经过最小比值规则,可以判定出s1s1是换出变量

  

  然后,我们再根据新的数据,写出新一轮的ZjZj和 检验数 ,发现此时的检验数全部≤0,我们成功地找到了最优解!

  

  结束啦!

  表格中,检验数全部≤0,根据判断规则,Z值为最优值(Z=27500),其解:

    X1X1 =50,s1s1=50,X2X2=250,s2s2=s3s3=0

  为模型的最优解。

__EOF__

 

作  者:Cruelty-Angel
出  处:https://www.cnblogs.com/cruelty_angel
关于博主:热爱生活,爱读书/旅游,喜欢技术,乐于专研。评论和私信会在第一时间回复。或者直接私信我。
版权声明:署名 - 非商业性使用 - 禁止演绎,协议普通文本 | 协议法律文本
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!

 

 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值