使用库函数和不使用库函数进行单纯形法(大M法)线性规划
单纯形法的原理
可以参考:线性规划之单纯形法【超详解+图解】.
大M法(big M method)是线性规划问题的约束条件(=)等式或(≥)大于型时,使用人工变量法后,寻找其初始基可行解的一种方法。
应用单纯形法在改进目标函数的过程中,如果原问题存在最优解,必然使人工变量逐步变为非基变量,或使其值为零。否则,目标函数值将不可能达到最小或最大。在迭代过程中,若全部人工变量变成非基变量,则可把人工变量所在的列从单纯形表中删去,此时便找到原问题的一个初始基可行解。若此基可行解不是原问题的最优解,则继续迭代,直至所有的检验数都小于等于0,求得最优解为止。(来源百度百科)
用单纯形法求解线性规划要先将线性规划变为标准形式,然后添加人工变量进行求解
max 2 x 1 + x 2 + x 3 2x_1+x_2+x_3 2x1+x2+x3
s . t = { − 2 x 2 ≥ 2 x 1 − x 2 + x 3 = 2 x 2 − x 3 ≤ 1 x 1 , x 2 , x 3 ≥ 0 s.t=\begin{cases} -2x_2\geq 2 \\\\ x_1-x_2+x_3= 2 \\\\ x_2-x_3\leq 1 \\\\ x_1,x_2,x_3\geq0 \end{cases} s.t=⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧−2x2≥2x1−x2+x3=2x2−x3≤1x1,x2,x3≥0
变为标准形式
max 2 x 1 + x 2 + x 3 + 0 x 4 + 0 x 5 2x_1+x_2+x_3+0x4+0x5 2x1+x2+x3+0x4+0x5
s . t = { − 2 x 2 − x 4 = 2 x 1 − x 2 + x 3 = 2 x 2 − x 3 + x 5 = 1 x 1 , x 2 , x 3 ≥ 0 s.t=\begin{cases} -2x_2-x4= 2 \\\\ x_1-x_2+x_3= 2 \\\\ x_2-x_3+x5= 1 \\\\ x_1,x_2,x_3\geq0 \end{cases} s.t=⎩⎪⎪⎪⎪⎪⎪⎪