lingo求解Max=7x1+4x2+5x3+2x4 s.t.3x1+3x2+4x3+2x4<=6 ,xi={0,1}代码
时间: 2023-08-06 07:01:59 浏览: 180
Lingo 是一款商业软件,需要购买授权后才能使用。以下是使用 Lingo 求解该 0-1 整数规划问题的模型代码:
```lingo
max = 7 x1 + 4 x2 + 5 x3 + 2 x4
s.t.
3 x1 + 3 x2 + 4 x3 + 2 x4 <= 6
x1 binary
x2 binary
x3 binary
x4 binary
end
```
其中,max 表示最大化目标函数,s.t. 表示约束条件,binary 表示变量为 0 或 1,end 表示结束模型定义。
需要注意的是,Lingo 的语法与 Matlab 不同,不能直接在 Matlab 中运行该代码。可以在 Lingo 软件中打开该代码并求解。
相关问题
例举几个线性规划应用问题并用MATLAB和Lingo求解
线性规划是一种常用的优化方法,可以用于许多实际问题。以下是几个线性规划应用问题的例子,并用MATLAB和Lingo求解:
1. 生产计划问题
假设一家工厂生产两种产品A和B。生产A需要3个工人和2个机器,生产B需要2个工人和3个机器。工厂每天有8个工人和7个机器可用。假设A和B的利润分别为5元和4元。如何制定生产计划以最大化利润?
MATLAB代码:
```matlab
f = [-5 -4];
A = [3 2; 2 3];
b = [8; 7];
lb = [0; 0];
[x, fval] = linprog(f, A, b, [], [], lb);
disp(['A的生产量是:', num2str(x(1))]);
disp(['B的生产量是:', num2str(x(2))]);
disp(['总利润是:', num2str(-fval)]);
```
Lingo代码:
```lingo
model:
max = 5x1 + 4x2;
3x1 + 2x2 <= 8;
2x1 + 3x2 <= 7;
x1 >= 0;
x2 >= 0;
end
```
2. 购物问题
假设你有100元钱可以用来购买苹果和香蕉。苹果每个2元,香蕉每个1元。你想要买最多的水果。如何制定购买计划?
MATLAB代码:
```matlab
f = [-1; -1];
A = [2 1];
b = 100;
lb = [0; 0];
[x, fval] = linprog(f, A, b, [], [], lb);
disp(['苹果的数量是:', num2str(x(1))]);
disp(['香蕉的数量是:', num2str(x(2))]);
disp(['总共购买了', num2str(x(1) + x(2)), '个水果']);
```
Lingo代码:
```lingo
model:
max = -x1 - x2;
2x1 + x2 <= 100;
x1 >= 0;
x2 >= 0;
end
```
3. 货运问题
假设你有两个仓库,分别存储A和B两种产品。你需要将这些产品运送到三个客户处。每个客户对A和B的需求不同,而每个仓库存储的A和B的数量也不同。如何制定运输计划以最小化运输成本?
MATLAB代码:
```matlab
f = [20; 30; 10; 15; 25; 18];
A = [-1 0 -1 0 0 0; 0 -1 0 -1 0 0; 0 0 0 0 -1 -1; -1 0 0 0 -1 0; 0 -1 0 0 0 -1; 0 0 -1 0 -1 0];
b = [-100; -100; -50; -50; -70; -50];
lb = [0; 0; 0; 0; 0; 0];
[x, fval] = linprog(f, A, b, [], [], lb);
disp(['从仓库A到客户1的数量是:', num2str(x(1))]);
disp(['从仓库A到客户2的数量是:', num2str(x(2))]);
disp(['从仓库A到客户3的数量是:', num2str(x(3))]);
disp(['从仓库B到客户1的数量是:', num2str(x(4))]);
disp(['从仓库B到客户2的数量是:', num2str(x(5))]);
disp(['从仓库B到客户3的数量是:', num2str(x(6))]);
disp(['总运输成本是:', num2str(fval)]);
```
Lingo代码:
```lingo
model:
min = 20x1 + 30x2 + 10x3 + 15x4 + 25x5 + 18x6;
-x1 - x3 <= -100;
-x2 - x4 <= -100;
-x5 - x6 <= -50;
-x1 - x5 <= -50;
-x2 - x6 <= -70;
-x3 - x5 <= -50;
x1 >= 0;
x2 >= 0;
x3 >= 0;
x4 >= 0;
x5 >= 0;
x6 >= 0;
end
```
用 lindo、lingo、excel 和 wps 软件完成下列问题。 某工厂用甲、乙两种原料生产 A、B、C、D 四种产品,每种产品的利润、 现有的原料数及每种产品消耗原料定量如下表所示。 原料(公斤)\产品(万件) A B C D 提供量 甲 3 2 10 4 18 乙 0 0 2 0 3 利润(万元/万件) 9 8 50 19 问题:(提供量 18 改为学号的后两位,若小于 10,则位置互换;提供量 3 改为 学号的 56 位) (1)怎样组织生产,才能使总利润最大? (2)写出对偶线性规划,变量用 y 表示。 (3)若 A、C 产品的利润产生波动,波动范围多大,其最优解不变? (4)若想增加甲种原料,增加多少时,原最优基不变? (5)若考虑要生产产品 E,且生产 1 万件 E 产品要消耗甲原料 3 公斤,消耗乙 原料 1 公斤。那么,E 产品的每万件利润是多少时有利于投产? (6)假设该工厂又增加了用电不超过 8 千瓦的限制,而生产 A、B、C、D 四种 产品各 1 万件分别消耗电 4、3、5、2 千瓦,此约束是否改变了原最优决策方案?
由于题目中涉及多个问题,下面分别回答。
(1) 怎样组织生产,才能使总利润最大?
设 A、B、C、D 四种产品的生产量分别为 $x_1$、$x_2$、$x_3$、$x_4$(单位:万件),则总利润 $z$ 为:
$$
z=9x_1+8x_2+50x_3+19x_4
$$
同时,根据原料的供给量以及每种产品消耗原料的定量,有以下约束条件:
$$
\begin{aligned}
3x_1+2x_2+10x_3+4x_4&\leq 18 \\
2x_3+3x_4&\leq 3 \\
x_1,x_2,x_3,x_4&\geq 0
\end{aligned}
$$
将约束条件和目标函数写成标准形式,得到如下的线性规划模型:
$$
\begin{aligned}
\text{maximize} \qquad & z=9x_1+8x_2+50x_3+19x_4 \\
\text{subject to} \qquad & 3x_1+2x_2+10x_3+4x_4\leq 18 \\
& 2x_3+3x_4\leq 3 \\
& x_1,x_2,x_3,x_4\geq 0
\end{aligned}
$$
用 lindo、lingo、excel 或 wps 等软件求解上述线性规划模型即可得到最优解。在 lingo 中,可以使用以下代码:
```
Model:
max = 9x1 + 8x2 + 50x3 + 19x4
Subject to:
c1: 3x1 + 2x2 + 10x3 + 4x4 <= 18
c2: 2x3 + 3x4 <= 3
Bounds:
x1 >= 0
x2 >= 0
x3 >= 0
x4 >= 0
End
```
(2) 写出对偶线性规划,变量用 y 表示。
对于上述线性规划模型,其对偶模型为:
$$
\begin{aligned}
\text{minimize} \qquad & w=18y_1+3y_2 \\
\text{subject to} \qquad & 3y_1+2y_2\geq 9 \\
& 2y_1+3y_2\geq 8 \\
& 10y_1+2y_2\geq 50 \\
& 4y_1\geq 19 \\
& y_1,y_2\geq 0
\end{aligned}
$$
其中,$y_1$ 和 $y_2$ 分别表示第一个和第二个约束条件的对偶变量。
(3) 若 A、C 产品的利润产生波动,波动范围多大,其最优解不变?
假设 A 产品利润增加 $\Delta z_1$,C 产品利润减少 $\Delta z_2$,则目标函数变为:
$$
z'=9x_1+\Delta z_1 x_2+(50-\Delta z_2) x_3+19x_4
$$
将目标函数写成矩阵形式,有:
$$
\mathbf{c}=\begin{bmatrix} 9 \\ \Delta z_1 \\ 50-\Delta z_2 \\ 19 \end{bmatrix}
$$
因此,当 $\Delta z_1$ 和 $\Delta z_2$ 满足以下条件时,最优解不变:
$$
\begin{aligned}
&\Delta z_1\leq \frac{\mathbf{c}_2}{\mathbf{a}_{2,2}}=\frac{8}{3} \\
&\Delta z_2\leq \frac{\mathbf{c}_3}{\mathbf{a}_{3,3}}=\frac{19}{2}
\end{aligned}
$$
其中,$\mathbf{a}$ 是约束条件的系数
阅读全文