首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >带过程约束的线性规划运输优化

带过程约束的线性规划运输优化
EN

Stack Overflow用户
提问于 2014-02-14 09:03:39
回答 1查看 1.6K关注 0票数 2

我正在尝试使用优化(最小化运输成本)来解决一个典型的运输问题,使用GLPK或R。

一个简单的例子:位于两个省(A和B)的4个生产商正在向位于其他地方的两个出口商交付产品。我有一个每个路由生产者-出口商的成本矩阵(见下文)。解决方案将是微不足道的,这是运输问题的一个典型例子。

示例:

代码语言:javascript
运行
复制
production (id, province, tons)
            1  A      300
            2  A      800
            3  B      800
            4  B     1200

    export (id, sourcing_province, tons)
            5  A      400
            5  B      600
            6        2000

    routes (id_orig, id_dest, cost) 
               1  5  5.1
               1  6  3.2
               2  5  6.7
               2  6  7.2
               3  5  2.8
               3  6  4.1
               4  5  6.9
               4  6  5.3

然而,还有一些额外的限制使问题变得更加复杂:我知道出口商(5)实际上从每个省采购了一定数量的东西。特别是在上面的例子中,出口商(5)必须从A省采购400TN,从B省采购600TN。出口商(6)没有限制,他可以从任何省份采购货物。我找不到一种方式来表达这些限制。

你能帮帮我吗?

EN

回答 1

Stack Overflow用户

发布于 2014-02-14 10:46:12

你可以从边缘的角度来考虑你的问题。如果1,2,3,4是生产者,5,6是出口商,假设e15是从生产者1到出口商5的流,e25是从生产者2到出口商5的流,依此类推。

有了这个符号,问题就变成了:

代码语言:javascript
运行
复制
/* Objective function */
min: 5.1 e15 + 3.2 e16 + 6.7 e25 + 7.2 e26 + 2.8 e35 + 4.1 e36 + 6.9 e45 + 5.3 e46;

/* production limits */
e15 + e16 <= 300;
e25 + e26 <= 800;
e35 + e36 <= 800;
e45 + e46 <= 1200;

/* demand */
e15 + e25 + e35 + e45 >= 1000;
e16 + e26 + e36 + e46 >= 2000;

/* exporter 5 restrictions   */
e15 + e25 >= 400;
e35 + e45 >= 600;

最后两个不等式是固定数量约束。

你可以使用LpSolve来解决这个问题。还有一个用于此的R包lpsolveAPI。上面的问题公式已经是LP格式了。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21768954

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档