线性规划 运输问题 案例 lingo
时间: 2023-12-06 18:02:21 浏览: 66
一个典型的线性规划运输问题案例如下:假设有三个工厂A、B、C,它们生产两种产品X和Y。需要把这些产品运输到四个销售点1、2、3、4。每个工厂的生产能力和每个销售点的需求如下表所示:
| 工厂 | 生产能力(单位) |
| --- | --- |
| A | 30 |
| B | 20 |
| C | 50 |
| 销售点 | 需求量(单位) |
| --- | --- |
| 1 | 25 |
| 2 | 35 |
| 3 | 20 |
| 4 | 40 |
每个单位的运输成本如下表所示:
| | X | Y |
| --- | --- | --- |
| A | 2 | 3 |
| B | 1 | 2 |
| C | 4 | 1 |
现在需要制定一个运输计划,使得总运输成本最小,同时满足工厂生产能力和销售点需求的限制条件。
利用LINGO软件可以很方便地求解该问题。具体的LINGO代码如下:
```
sets
i factories /A, B, C/
j sales /1, 2, 3, 4/
k products /X, Y/
parameters
supply(i) supply from factories
demand(j) demand from sales
cost(i,k,j) cost of shipping from factories to sales
variables
x(i,k,j) amount of product k shipped from i to j
equations
supply_limit(i) limit on supply from factories
demand_limit(j) limit on demand from sales
objective cost minimization
supply_limit(i).. sum(j, x(i,k,j)) =l= supply(i);
demand_limit(j).. sum(i, x(i,k,j)) =g= demand(j);
objective.. sum((i,k,j), cost(i,k,j)*x(i,k,j)) =e= z;
model transport /all/;
supply(i) =
30
20
50;
demand(j) =
25
35
20
40;
cost(i,k,j) =
2 3
1 2
4 1;
solve transport using lp minimizing z;
display x.l, z.l;
```
运行上述代码可以得到最优解为总运输成本为235,运输数量如下表所示:
| | X | Y |
| --- | --- | --- |
| A -> 1 | 0 | 25 |
| A -> 2 | 5 | 0 |
| A -> 3 | 20 | 0 |
| A -> 4 | 5 | 0 |
| B -> 1 | 20 | 0 |
| B -> 2 | 10 | 25 |
| B -> 3 | 0 | 0 |
| B -> 4 | 0 | 0 |
| C -> 1 | 0 | 0 |
| C -> 2 | 0 | 10 |
| C -> 3 | 0 | 20 |
| C -> 4 | 15 | 15 |
这个结果表明,应该从工厂A运输25个单位的产品Y到销售点1,从工厂A运输5个单位的产品X到销售点2,从工厂A运输20个单位的产品X到销售点3,从工厂A运输5个单位的产品X到销售点4,从工厂B运输20个单位的产品X到销售点1,从工厂B运输10个单位的产品X和25个单位的产品Y到销售点2,从工厂C运输15个单位的产品X和15个单位的产品Y到销售点4。这样可以最小化总运输成本为235。