使用单纯形法求解LPP,变量受范围约束



根据我在这里、YouTube和其他网站上所做的研究,我目前正在研究一个可以使用线性编程解决的问题。我已经熟悉了所谓的单纯形法及其变体,如大M、对偶SM,但我仍然找不到任何类似于我的问题及其解决方案的公式的例子。

我的问题是:如何将程序转换为标准形式?

我认为最小化和最大化都应该起作用,但让我们用最小化来做吧。

我用"n"作为一个表示,作为输入,可能有"n"个变量,即有时会有10个,有时是-60个,是的。。那么多。但如果有一种方法可以解决它,我想它应该适用于任何数量的变量。

最小化:
Z = a1*x1 + a2*x2 + .. + an*xn,,其中a1 .. an只是随机系数,均为正。

受制于:(这是我不确定是否可以这样做的部分)

N1 ≤ b1*x1 + b2*x2 + .. + bn*xn ≤ N2<br>
M1 ≤ c1*x1 + c2*x2 + .. + cn*xn ≤ M2<br>
O1 ≤ d1*x1 + d2*x2 + .. + dn*xn ≤ O2
  • 其中N1, N2, M1, M2, O1 & O2是自然数,>0,例如101、155、6433等。
    当然还有N1 < N2, M1 < M2, O1 < O2
  • 其中b1 .. bn, c1 .. cn, d1 .. dn只是随机系数,全部为正

此外,每个未知变量–x1, x2 .. xn都有界,如下所示:

X1-min ≤ x1 ≤ X1-max
X2-min ≤ x2 ≤ X2-max
..
Xn-min ≤ xn ≤ Xn-max

当然,所有的mins和maxes都是已知的,正的,其中Xmin<Xmax和>0。
X1..n必须始终大于0并介于其最小值/最大值之间。

我知道添加松弛、盈余和人为变量,但我不能100%确定它是否如此简单。我最初的想法是将每个不等式一分为二,并根据其符号添加松弛或盈余+人工变量,然后继续使用表格。

希望我能很好地解释我的问题,尽管我对如何处理它仍然有点困惑

提前感谢!希望你们今天过得愉快!

您同时具有大于和小于约束。你需要将这些转化为一对约束,通过乘以负一来获得相同形式的不等式:

N1 ≤ b1*x1 + b2*x2 + .. + bn*xn ≤ N2

转到

b1*x1 + b2*x2 + .. + bn*xn ≤ N2
-b1*x1 - b2*x2 - .. - bn*xn ≤ -N1

你也可以对变量边界这样做(只是那里的系数有一个1,其余的为零)。然后你就完成了:这是一个相当标准的表格

除非我错过了什么?

最新更新