一个最优化问题

2016-12-15 15:49:55 +08:00
 qinjiannet

观察下面的表格

   B1 B2 B3 B4
A1 9  9  8  3   10
A2 2  6  4  4   40
A3 8  9  3  4   30
A4 3  3  5  2   60
A5 9  9  1  6   90
   50 60 50 70
	

上表中 A1~A5 表示 5 家快递公司, B1~B4 表示 4 种商品,矩阵内的值表示快递公司运送某种商品的单价。

矩阵右侧的值表示各家快递公司需要运送的商品总数

矩阵下方的值表示每种商品的总数

求满足上述约束条件的最小运费

4022 次点击
所在节点    程序员
29 条回复
sengxian
2016-12-16 13:32:23 +08:00
sengxian
2016-12-16 13:33:29 +08:00
啊不好意思上面鼠标截下来了
sengxian
2016-12-16 13:38:47 +08:00
这个题网络流的点数是 $O(n + m)$,边数是 $O(nm)$ 的,鉴于网络流的复杂度都比较高,所以大概只能跑几百的数据。
qinjiannet
2016-12-16 13:45:31 +08:00
@sengxian 图中的(a, b)表示容量为 a ,初始流量为 b 吗?
sengxian
2016-12-16 14:05:58 +08:00
容量为 a ,费用为 b 。
akira
2016-12-16 14:34:36 +08:00
peihanw
2016-12-19 10:26:31 +08:00
典型线性规划问题,用 GLPK 写一个 model 定义文件,秒解。
hannah520
2016-12-23 16:17:06 +08:00
122
hannah520
2016-12-23 16:19:15 +08:00
啊啊啊啊,竟然回答也需要铜币!重新回答一次吧
数学模型:
*******************************并不造如何上传公式或者图片**************************************
matlab 求解:
function [f]=transport(x)
f=0;
C=[7 1 1 6 3 3 7 6 9 7 9 5 4 2 5 8 7 1 3 9];
for i=1:20
f=f+x(i)*C(i);
end
end

lb = [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0];
ub = [Inf Inf Inf Inf Inf Inf Inf Inf Inf Inf Inf Inf Inf Inf Inf Inf Inf Inf Inf Inf];
x0 = [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0];
Aeq = [1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0;
0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0;
0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0;
0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1;
1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1];
Beq = [30 90 30 60 70 30 50 40 20];
[x,f] = fmincon(@transport,x0,[],[],Aeq,Beq,lb,ub)

结果如下:
x =

1 至 13 列

0.0000 39.1780 30.0000 0.8220 20.8220 0.0000 0.0000 9.1780 0.0000 0.0000 0.0000 50.0000 9.1780

14 至 20 列

30.8220 0.0000 0.0000 0.0000 20.0000 0.0000 0.0000


f =

560.0000

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/327851

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX