Math 将两种计算与lp_solve(线性规划)相结合

Math 将两种计算与lp_solve(线性规划)相结合,math,optimization,linear-programming,lpsolve,Math,Optimization,Linear Programming,Lpsolve,我对lp_解决方案还不熟悉。我想把这两种计算结合起来, (因为原料是一样的…) 首次制作: min: 13.21 x0 + 27.46 x1 + 35.66 x2 + 89.21 x3 + 60.69 x4; x0 + x1 + x2 + x3 + x4 >= 200000; x0 <= 69148; x1 <= 25460; x2 <= 34020; x3 <= 69873; x4 <= 73729

我对lp_解决方案还不熟悉。我想把这两种计算结合起来, (因为原料是一样的…)

首次制作:

    min: 13.21 x0 + 27.46 x1 + 35.66 x2 + 89.21 x3 + 60.69 x4;

    x0 + x1 + x2 + x3 + x4 >= 200000;

    x0 <= 69148;
    x1 <= 25460;
    x2 <= 34020;
    x3 <= 69873;
    x4 <= 737299;

    -0.425 x0 + 0.086 x3 + -0.003 x4 >= 0;
    /* 0.175*x0 + 0.60*x1 + 0.60*x2 + 0.686*x3 + 0.59745*x4 >= (x0 + x1 + x2 + x3 + x4)*0.6 */
    min: 13.21 y0 + 27.46 y1 + 35.66 y2 + 89.21 y3 + 60.69 y4;

    y0 + y1 + y2 + y3 + y4 >= 50000;

    y0 <= 69148;
    y1 <= 25460;
    y2 <= 34020;
    y3 <= 69873;
    y4 <= 737299;

    -0.275 y0 + 0.15 y1 + 0.15 y2 + 0.236 y3 + 0.14745 y4 >= 0;
    /* 0.175*y0 + 0.60*y1 + 0.60*y2 + 0.686*y3 + 0.59745*y4 >= (y0 + y1 + y2 + y3 + y4)*0.45 */
当我求x和y之和时:

    x = 200,000 (okay)
    y = 735,800 (not 50,000!)

所以我用了全部股票。。。而不是在组合目标函数中的250.000…

min: 13.21 x0 - 13.21 y0
   + 27.46 x1 - 27.46 y1
   + 35.66 x2 - 35.66 y2
   + 89.21 x3 - 89.21 y3
   + 60.69 x4 - 60.69 y4;
您将从
x
目标函数中减去
y
目标函数,而不是将它们相加。由于您告诉它最小化,解算器会愉快地尝试最大化原始
y
目标,而不是最小化

如果您改为使用:

min: 13.21 x0 + 13.21 y0
   + 27.46 x1 + 27.46 y1
   + 35.66 x2 + 35.66 y2
   + 89.21 x3 + 89.21 y3
   + 60.69 x4 + 60.69 y4;
您可以获得以下结果:

x0                              0
x1                          25460
x2                          34020
x3                        4736.63
x4                         135783
y0                        17451.8
y1                              0
y2                              0
y3                              0
y4                        32548.2

因此,正如您所希望的,
x
基本上是200000,
y
是50000。

在您的组合目标函数中:

min: 13.21 x0 - 13.21 y0
   + 27.46 x1 - 27.46 y1
   + 35.66 x2 - 35.66 y2
   + 89.21 x3 - 89.21 y3
   + 60.69 x4 - 60.69 y4;
您将从
x
目标函数中减去
y
目标函数,而不是将它们相加。由于您告诉它最小化,解算器会愉快地尝试最大化原始
y
目标,而不是最小化

如果您改为使用:

min: 13.21 x0 + 13.21 y0
   + 27.46 x1 + 27.46 y1
   + 35.66 x2 + 35.66 y2
   + 89.21 x3 + 89.21 y3
   + 60.69 x4 + 60.69 y4;
您可以获得以下结果:

x0                              0
x1                          25460
x2                          34020
x3                        4736.63
x4                         135783
y0                        17451.8
y1                              0
y2                              0
y3                              0
y4                        32548.2

所以,正如你所希望的,
x
基本上是200000,
y
是50000。

@ABSimon如果答案有用,你应该投票接受。如果你有失败的记录,人们就不太可能帮助你。我很感激您的感谢,但我也会很感激神奇的互联网积分,而且这些积分提供起来更省力。:)@ABSimon如果答案有帮助,你应该投票接受。如果你有失败的记录,人们就不太可能帮助你。我很感激您的感谢,但我也会很感激神奇的互联网积分,而且这些积分提供起来更省力。:)