Math 从线性规划中消除冗余方程

Math 从线性规划中消除冗余方程,math,mathematical-optimization,linear-programming,linear-equation,Math,Mathematical Optimization,Linear Programming,Linear Equation,我被要求用一个无方程来重新编写这个线性规划问题 MAX 7X1+5X2 科技部: 4X1+3X2=0 我所做的是使用单纯形法,我发现最大利润是4030,X1=100,X2=666。我能用它来表示最大的利润,x1总是100,那么第三个方程是额外的< /代码>?/p> < p>因为我们只考虑一个简单的二维问题,我们可以用图形来解决这个问题。首先注意,目标函数的梯度是 ∇f_obj = (7, 5) 从这几点开始,我们将用x表示变量X1,用y表示变量X2 约束在下面描述了多面体(a),目标函数的

我被要求用一个无方程来重新编写这个线性规划问题

MAX 7X1+5X2
科技部:

4X1+3X2=0

我所做的是使用单纯形法,我发现最大利润是4030,X1=100,X2=666。我能用它来表示最大的利润,x1总是100,那么第三个方程是额外的< /代码>?/p> < p>因为我们只考虑一个简单的二维问题,我们可以用图形来解决这个问题。首先注意,目标函数的梯度是

∇f_obj = (7, 5)
从这几点开始,我们将用
x
表示变量
X1
,用
y
表示变量
X2

约束在下面描述了多面体
(a)
,目标函数的水平曲线在
(b)
(更亮的轮廓:增加的目标函数值)中给出

最佳值由上面
(b)
中的红点标记,
(x^*,y^*)=(262.5450)

很明显,不等式约束(4x+3y=100)不是活动的,因此是多余的

[1] 2x1 + 0.5x2 ≤ 750 [2] 2x1 + 0.5x2 ≤ 4500 / 6 [3] 6 * (2x1 + 0.5x2) ≤ 4500 [4] 12x1 + 3x2 ≤ 4500 [5] 12x1 + 3x2 ≤ 4500 - 4x1 + 3x2 ≤ 2400 --------------------- 8x1 ≤ 2100 [6] x1 ≥ 2100 / 8 [7] x1 ≥ 262,5 [1] 2x1+0.5x2≤ 750 [2] 2x1+0.5x2≤ 4500/6 [3] 6*(2x1+0.5x2)≤ 4500 [4] 12x1+3x2≤ 4500 [5] 12x1+3x2≤ 4500 -4x1+3x2≤ 2400 --------------------- 8x1≤ 2100 [6] x1≥ 2100/8 [7] x1≥ 262,5 步骤[2]中的6表示第一个约束中的
3x2
大于第二个约束中的
0.5x2
的次数,简而言之,
3x2/0.5x2=6


因此,可以消除第三个约束
x1>=100
,因为实际上,x1必须大于或等于262,5,考虑到第四个约束
x1,x2>=0
好的,所以答案如下:-

X1>=100。X1-100>=0 X1-100=y

或X1=y+100 在前两个方程式中,将X1替换为(y+100)。将非负性方程中的X1替换为y,删除第三个方程
.

我无法删除非负性方程。我不这么认为,因为我们不知道X2的值。我尝试了很多方法,但似乎最后我得到了很多不同的答案。是的,我得到了,但在问题中,我被要求不要触及非消极性约束。对不起,我忘了在上面提这个问题了。在这种情况下,我能说既然x1=262.5,那么x1>100就是redun吗。?我穿着它,上面写着禁止触摸非负片。等式..@Zok:因为我们有一个线性规划,最优值总是在由我们的规划约束定义的多形的一个极值点上。由于LP:s始终是凸的,并且我们正在考虑一个最大化问题,所以只要每次遍历都沿目标函数的梯度方向移动,就可以通过遍历多面体的角来找到最佳极值点。从上面的水平曲线可以明显看出,对于正多面体中的任何点:梯度都远离边界
X1=100
。因此,
X1>=100
是多余的。@Zok很乐意帮忙!关于你的另一个问题:如果不坐下来处理完整的问题,拿一张纸和一支笔,我真的帮不了忙(单纯形迭代手工执行有点麻烦),我很快就要上床睡觉了。尝试在math.stackexchange.com上提问(包括问题和你的最佳尝试),纯数学问题更适合那里。祝你好运!在第5步之前(包括第5步)的分析只需计算两行
2x1+0.5x2=750
4x1+3x2=2400的
x1
交叉值。但是,您不能从步骤[5]转到步骤[6](更改符号?)。请注意,允许使用大于或小于
x1=262.5
的值(请参见上面我的答案中可行区域的多面体)。此外,请注意,如果不在分析中包含目标函数,则无法推断约束
x1>=100
是多余的。如果是,例如obj。函数是
f(x1,x2)=-7x1-5x2
,那么约束
x1>=100
是非常相关的。坦率地说,这是不正确的。如果不考虑目标函数,则无法推断约束
X1>=100
是冗余的。例如,如果目标函数是
f(X1,X2)=-7X1-5X2
,那么约束
X1>=100
。唯一真正冗余的约束(对问题可行区域的w.r.t,而不是目标函数的梯度方向的w.r.t)是
X1>=0
:此约束永远不会激活(或需要),因为
X1>=100
确保默认情况下前者为真。 [1] 2x1 + 0.5x2 ≤ 750 [2] 2x1 + 0.5x2 ≤ 4500 / 6 [3] 6 * (2x1 + 0.5x2) ≤ 4500 [4] 12x1 + 3x2 ≤ 4500 [5] 12x1 + 3x2 ≤ 4500 - 4x1 + 3x2 ≤ 2400 --------------------- 8x1 ≤ 2100 [6] x1 ≥ 2100 / 8 [7] x1 ≥ 262,5