【问题标题】:Eliminate a redundant equation from a linear programming从线性规划中消除冗余方程
【发布时间】:2016-02-03 01:02:04
【问题描述】:

我被要求用更少的方程重写这个线性规划问题。

MAX 7X1+5X2

S.t:

4X1+3X2 <= 2400
2X1+0.5X2 <= 750
X1 >= 100
X1,X2 >= 0

我所做的是使用单纯形法,我发现最大利润是 4030,其中 X1 = 100 和 X2=666。我可以用它说to obtain the maximum profit, X1 has always to be 100, then the third equation is an extra吗?

【问题讨论】:

    标签: math mathematical-optimization linear-programming linear-equation


    【解决方案1】:

    由于我们只考虑一个简单的二维问题,我们可以用图形解决这个问题。首先注意目标函数的梯度是

    ∇f_obj = (7, 5)
    

    从现在起,我们将用x 表示您的变量X1,用y 表示X2

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

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

    很明显,不等式约束 4x+3y &lt;= 24002x+0.5y &lt;= 750 都是有效的,因为在这两者的交集处给出了最优值。

    但是,约束 x &gt;= 100 (X1 &gt;= 100) 是无效的,因此是多余的。

    【讨论】:

    • 我无法删除非负方程。我不这么认为,因为我们不知道 X2 的价值。我尝试了很多方法,但似乎最后我得到了很多不同的答案。
    • 是的,我明白了,但在问题中,我被要求不要触及非消极约束。上面忘了说抱歉
    • 问题是正确的。在那种情况下,我能说既然x1=262.5,那么X1>100就是redun。?我穿它说禁止触摸非负。等式..
    • @Zok:因为我们有一个线性程序,所以最优值总是在我们程序的约束所定义的多型体的极值点之一。由于 LP:s 总是凸的,并且我们正在考虑一个最大化问题,只要每次遍历都沿着目标函数的梯度方向移动,就可以通过遍历多面体的角找到最优极值点。从上面的水平曲线可以看出,对于正多面体中的任何点:梯度都指向远离边界X1=100。因此,X1&gt;=100 是多余的。
    • @Zok 乐于助人!关于您的另一个问题:如果不坐下来解决完整的问题以及一张纸和一支笔(手动执行简单的迭代有点混乱),我真的无法提供帮助,我很快就要上床睡觉了。尝试在 math.stackexchange.com 上提问(包括问题以及您的最佳尝试),纯数学问题更适合那里。祝您优化成功!
    【解决方案2】:
    [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 &gt;= 100,因为实际上,考虑到第四个约束 x1,x2 &gt;= 0,x1 必须大于或等于 262,5。

    【讨论】:

    • 您分析直到并包括第 5 步,只需计算 x1 的哪一个值,两条线 2x1 + 0.5x2 = 7504x1 + 3x2 = 2400 交叉。但是,您不能从步骤 [5] 转到步骤 [6](更改符号?)。请注意,允许大于和小于 x1=262.5 的值(请参阅我上面的答案中可行区域的多面体)。另外,请注意,您不能推断约束x1 &gt;= 100 是多余的如果不将目标函数包括在分析中。如果例如对象。函数是f(x1,x2) = -7x1-5x2,那么约束x1 &gt;= 100是非常相关的。
    【解决方案3】:

    好的,所以答案如下:-

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

    或 X1 = y+100 将前 2 个方程中的 X1 替换为 (y+100)。将非负性方程中的 X1 替换为 y,去掉第三个方程 .

    【讨论】:

    • 坦率地说,这是不正确的。在不考虑目标函数的情况下,您无法推断约束 X1 &gt;= 100 是多余的。例如,如果目标函数是f(X1, X2) = -7X1-5X2,那么约束X1 &gt;= 100 是非常相关的。唯一真正冗余约束(针对问题的可行区域,而针对目标函数的梯度方向)是X1&gt;=0:此约束永远不会激活(或需要)作为X1&gt;=100 确保前者为真,默认情况下。
    猜你喜欢
    • 1970-01-01
    • 2011-03-13
    • 2020-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多