线性规划-单纯形法

单纯形法基础

首先,梳理一下基础,线性规划一般适用单纯形法求解;非线性规划包括无约束问题,有约束问题,一般做法为将有约束转为无约束;对于离散且容易找到状态的问题,适合用动态规划。
有数学证明指出线性规划问题通常是凸规划,也就是说正常情况下,是能找到最优解的。单纯形法通过添加人工变量的形式,对原问题进行基变换,迭代获得最优解。下面是一个简单的线性规划问题,并初步用单纯形法解决:
f1
首先,将原问题转化成标准型,方法是通过添加变量来使得约束转为等式:
f2
对照标准型,进行列表,用于单纯形法迭代计算,新添加的变量称为剩余变量,它们是默认的基。
f3讲一下这里,首先看z的系数,选择最大值对应那一列,再用b分别除以该列得到theta,选择theta最小行,由此锁定x4行和x2列,意义是x2进基,x4出基;重复以上操作,并在每次进出基后通过线性变换确保(基行,基列)值为1,同列的其他值为0。因此,x2进基,x4出基后,线性变换并重新确定基为:

f4
计算theta时,对于系数为负数情况,直接写none即可,none不参与比较。由此锁定x3行和x1列,意义是x1进基,x3出基。再重复一次得到:
f5此时,z的系数全小于等于零,迭代结束,即有解为:
f6这就是非常基本的单纯形法求解顺序(因为目前还未考虑在可行基内迭代这件事情)

大M法

前面的解法有一个前提条件,迭代已经在可行基内,但对于大部分问题,还需要找到可行基,才能迭代,为了一步到位,就出现了大M法;
大M法的原则是先构造包含大M的标准式,把大M视为一个无限大的数值,然后用前面进出基的解法求解即可得到结果;
构造大M标准型
先加变量:
对于 ⩽ \leqslant 的约束条件,直接加一个剩余变量 x k x_{k} xk
对于 ⩾ \geqslant 的约束条件,先减去一个剩余变量 x k x_{k} xk,再加人工变量 x k + 1 x_{k+1} xk+1
对于等式约束 = = =,直接加人工变量 x k + 1 x_{k+1} xk+1
在问题原来的target函数中,加上:
0 x k + M x k + 1 0x_{k}+Mx_{k+1} 0xk+Mxk+1
最后一步,min条件转为max,选择人工变量作为基变量,将其对应的检验数化为0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值