怎么在lingo用第二张图的方式写图一这道题?

图一是要写的题,右边是例题。非常非常想知道图一怎么用lingo写出来(除了直接写的方法)?求大神教教

这是一个线性规划问题。你可以使用 LINGO 软件来解决它。首先,你需要定义你的决策变量,目标函数和约束条件。然后,你可以使用 LINGO 的语法来输入这些信息并求解。下面是一个示例:
MIN = 2800*(X11 + X12 + X13 + X14) + 4500*(X21 + X22 + X23) + 6000*(X31 + X32) + 7300*X41;
X11 + X12 + X13 + X14 >= 15;
X12 + X13 + X14 + X21 + X22 + X23 >= 10;
X13 + X14 + X22 + X23 + X31 + X32 >= 20;
X14 + X23 + X32 + X41 >= 12;
@FOR(I = 1:4, J = 1:4: X(I,J) >= 0);
END

你可以将上面的代码复制到 LINGO 软件中,然后运行它来求解这个问题。追问

大哥,这个输进去lingo之后报错了怎么办

()而且我想要的是我发的图2的那种写法。。。

追答

在你电脑上运行不了这个代码,可能是和我电脑软件版本不一样,还有图二的解法是包含了一些集合和数据,但我并不觉得和我打的代码有什么区别。@FOR(I = 1:4, J = 1:4: X(I,J) >= 0);这一行中的X(I,J)应该改为X[I,J]。另外,@FOR语句应该写成@FOR(I IN 1..4, J IN 1..4: X[I,J] >= 0);。
正确的代码应该是这样的:
MIN = 2800*(X[1,1] + X[1,2] + X[1,3] + X[1,4]) + 4500*(X[2,1] + X[2,2] + X[2,3]) + 6000*(X[3,1] + X[3,2]) + 7300*X[4,1];
X[1,1] + X[1,2] + X[1,3] + X[1,4] >= 15;
X[1,2] + X[1,3] + X[1,4] + X[2,1] + X[2,2] + X[2,3] >= 10;
X[1,3] + X[1,4] + X[2,2] + X[2,3] + X[3,1] + X[3,2] >= 20;
X[1,4] + X[2,3] + X[3,2] + X[4,1] >= 12;
@FOR(I IN 1..4, J IN 1..4: X[I,J] >= 0);
END

温馨提示:答案为网友推荐,仅供参考
第1个回答  2023-03-12
! 定义集合和参数
SETS:
SET1 / 1..3 /; ! 三个决策变量
ENDSETS

DATA:
C = 5 4 3; ! 目标函数系数
A(1) = 2 3 5; ! 约束条件系数
A(2) = 4 1 2;
B = 10 12; ! 约束条件右侧常数
ENDATA

! 定义变量和目标函数
MAX = @SUM(SET1: C * X); ! 最大化目标函数

! 定义约束条件
@FOR(SET1(J): @SUM(SET1: A(J) * X) <= B(J)); ! 线性约束条件
@FOR(SET1: X >=0); ! 非负约束条件

! 求解模型并输出结果
@GIN(X); ! 指定变量为整数类型
@SOLVE(MAX); ! 求解最大化问题
@REPORT(MAX,X); ! 输出目标函数值和变量值追问

大哥,请问中间为什么报错了啊?(我用的Lingo18)

相似回答