社区
数据结构与算法
帖子详情
如果得到最优解-运输分箱问题。
ACMAIN_CHM
2009-02-13 08:46:38
近来全球经济下滑,老板不断要求降低成本;在安排运输,不知有何办法解决如下货运安排,节省开支。
发货需求
A产品100板,每板700公斤
B产品 80板,每板600公斤
C产品 20板,每板650公斤
运输要求
: 可用20'或40'货柜, 重量及板数不能超过如下规定,运输成本最低
运费
:
20',最多装20板,重量不能超过 18000公斤,运费 USD 2000
40',最多装40板,重量不能超过 20000公斤,运费 USD 3500
...全文
314
15
打赏
收藏
如果得到最优解-运输分箱问题。
近来全球经济下滑,老板不断要求降低成本;在安排运输,不知有何办法解决如下货运安排,节省开支。 发货需求 A产品100板,每板700公斤 B产品 80板,每板600公斤 C产品 20板,每板650公斤 运输要求 : 可用20'或40'货柜, 重量及板数不能超过如下规定,运输成本最低 运费: 20',最多装20板,重量不能超过 18000公斤,运费 USD 2000 40',最多装40板,重量不能超过 20000公斤,运费 USD 3500
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
iwantnon
2009-03-10
打赏
举报
回复
[Quote=引用 14 楼 PROLOVE_2 的回复:]
看到楼上的,我倒下了~
[/Quote]
一贴代码就显得长了,其实内容很少,思路很简单呀,要不怎么说lingo是十足的傻瓜型软件呢。就是因为太傻瓜了,所以学计算机或数学的人都无法接受,这题倒底是lingo解的还是你自己解的?:)
13楼只不过是想提前看一下结果而已,下面就是需要考虑怎么用C++来写算法了。
PROLOVE_2
2009-03-10
打赏
举报
回复
看到楼上的,我倒下了~
iwantnon
2009-03-10
打赏
举报
回复
楼上方法不行,刚才看了一下lingo教程,应该这么做:
问题:
小箱可装20件,重量不超过18000斤,运费2000元。
大箱可装40件,重量不超过20000斤,运费3500元。
现需运输:
A产品100件,每件700斤,
B产品 80件,每件600斤,
C产品 20件,每件650斤。
要求运费最低。
解:
首先估算大小箱个数:
如果全用小箱装,10个小箱足够。如果全用大箱装,8个大箱足够。
设10个小箱为sBox(1)~sBox(10),8个大箱为bBox(1)~bBox(8)。
用sSel(i)表示sBox(i)是否被采用,用bSel(j)表示bBox(j)是否被采用。sSel(i),bSel(j)均为0\1变量。
sBox(i) 装A产品sA(i)件,B产品sB(i)件,C产品sC(i)件,则有
sA(i)+sB(i)+sC(i) <=20,i=1~10 (容积限制)
700*sA(i)+600*sB(i)+650*sC(i) <=18000,i=1~10 (重量限制)
bBox(j)装A产品bA(j)件,B产品bB(j)件,C产品bC(j)件,则有
bA(j)+bB(j)+bC(j) <=40,j=1~8 (容积限制)
700*bA(j)+600*bB(j)+650*bC(j) <=20000,j=1~8 (重量限制)
另外据发货需求有:
A产品数量:∑sSel(i)*sA(i)+∑bSel(j)*bA(j)=100
B产品数量:∑sSel(i)*sB(i)+∑bSel(j)*bB(j)=80
C产品数量:∑sSel(i)*sC(i)+∑bSel(j)*bC(j)=20
目标函数:
min=2000*∑sSel(i)+3500*∑bSel(j)
lingo程序:
model:
sets:
sBoxes/sBox1..sBox10/:sA,sB,sC,sSel;
bBoxes/bBox1..bBox8/:bA,bB,bC,bSel;
endsets
min=2000*@sum(sBoxes:sSel)+3500*@sum(bBoxes:bSel);
!变量界定;
@for(sBoxes:
@bin(sSel);
@gin(sA);
@gin(sB);
@gin(sC);
);
@for(bBoxes:
@bin(bSel);
@gin(bA);
@gin(bB);
@gin(bC);
);
!每个小箱子的容积和重量限制;
@for(sBoxes:
sA+sB+sC<=20;
700*sA+600*sB+650*sC<=18000;
);
!每个大箱子的容积和重量限制;
@for(bBoxes:
bA+bB+bC<=40;
700*bA+600*bB+650*bC<=20000;
);
!A,B,C的数量限制;
@sum(sBoxes:sSel*sA)+@sum(bBoxes:bSel*bA)=100;
@sum(sBoxes:sSel*sB)+@sum(bBoxes:bSel*bB)=80;
@sum(sBoxes:sSel*sC)+@sum(bBoxes:bSel*bC)=20;
最终结果为:
用6个小箱,其装有A,B,C的数量分别为:
(1,18,1),(0,20,0),(14,4,0),(16,2,0),(17,3,0),(13,0,0)。
用3个大箱,其装有A,B,C的数量分别为:
(9,21,1),(10,2,8),(20,10,0)。
上述装箱方案下运费取最小值2000*6+3500*3=22500
iwantnon
2009-02-19
打赏
举报
回复
用n个小箱,第i个小箱装A产品ai板,B产品bi板,C产品ci板,则
ai+bi+ci<=20,i=1~n (板数限制)
700ai+600bi+650ci<=18000,i=1~n (重量限制)
用m个大箱,第j个大箱装A产品Aj板,B产品Bj板,C产品Cj板,则
Aj+Bj+Cj<=40,j=1~m (板数限制)
700Aj+600Bj+650Cj<=20000,j=1~m (重量限制)
另外发货需求:
∑ai+∑Aj=100
∑bi+∑Bj=80
∑ci+∑Cj=20
目标是:
min=2000n+3500m
jlj84237485
2009-02-16
打赏
举报
回复
帮顶一下
sageking2
2009-02-14
打赏
举报
回复
700*X+600*Y+650*Z<18000
X+Y+Z <=20
..............用一些数学方程动态规划就行了.
绿色夹克衫
2009-02-14
打赏
举报
回复
就这道题来说,10个小箱子应当是最便宜的了!
若要降低成本,每添加1个大箱子,必须要去掉2个小箱子,才能达到降低成本的目的(便宜500元),
由于10小箱子都已经装满了,因此不管2个小箱子里装的是哪种板,去掉之后1个大箱子都不可能装下的。
就本题给出的数据来算,可以用贪心来解,所有板在小箱子中的运输成本都要比在大箱子中低,因此用小箱子运就可以。
小箱子,重量成本为 2000 / 18000 = 0.1111,空间成本为2000 / 20 = 100
=>
A产品的成本 = Max(0.1111 * 700,100) = 100
B产品的成本 = Max(0.1111 * 600,100) = 100
C产品的成本 = Max(0.1111 * 650,100) = 100
大箱子,重量成本 3500 / 20000 = 0.175,空间成本为3500 / 40 = 87.5
=>
A产品的成本 = Max(0.175 * 700,87.5) = 131.25
B产品的成本 = Max(0.175 * 600,87.5) = 105
C产品的成本 = Max(0.175 * 650,87.5) = 113.75
本题用贪心可以得到最优解,如果数换一下就不一定了,也许只能得到近似解,不过这道题换作其他方法,
求最优解恐怕也不容易,除非存在完美装箱,即空间和重量同时达到上限。
yagebu1983
2009-02-14
打赏
举报
回复
算法啊。。。
橙子撸代码
2009-02-14
打赏
举报
回复
数据结构里好像有类似的东西,可以去看看
MOTA
2009-02-13
打赏
举报
回复
穷举- -~无聊 看看
止戈而立
2009-02-13
打赏
举报
回复
想了一下,没什么头绪。。坐在5楼等高手。
xhueducls
2009-02-13
打赏
举报
回复
有点难
blue_apple2006
2009-02-13
打赏
举报
回复
数学问题啦,不是程序问题 。
用函数图像就能解决啊 。
hangang7403
2009-02-13
打赏
举报
回复
UP
wuyi8808
2009-02-13
打赏
举报
回复
建议到
数据结构与算法
去问问看,那里有不少高手。
【177】HCIP DataCom全套课程
路由协议分类 004-IP路由基础-路由迭代实验 005-IP路由基础-数据转发的过程 006-IP路由高级运用-路由引入场景 007-IP路由高级运用-路由引入
问题
008-IP路由高级运用-路由引入案例 009-OSPF协议-LSA基本概念 010-OSPF...
【三维装箱】基于matlab遗传算法求解三维装箱优化
问题
【含Matlab源码 2415期】
遗传算法求解三维装箱优化
问题
完整的代码,方可运行;可提供运行操作视频!适合小白!
数学建模之常见的优化模型
这个例子只是一个补充,在考虑经济效益的基础上进行
运输
问题
的研究。 建立模型: ai:第i个水库供水量 bi:第i个小区基本用水量 ci:第i个小区额外用水量 dij:从第i歌水库运到第j个小区的管理费 决策变量:xij:从第i...
秋招阿里巴巴java笔试试题-精
2、在快递公司干线
运输
的车辆使用中,存在着单边车和双边车的两种使用场景,例如北京中心-杭州中心,两个分拨中心到彼此的单量对等,则可以开双边车(即同一辆车可以往返对开),而当两个中心的对发单量不对等时,则...
Dynamic optimization with side information
我们还描述了这些优化
问题
的通用近似,基于重叠的线性决策规则,它在计算上易于处理,并为具有多个阶段的动态
问题
产生高质量的解决方案。 在库存管理、财务和
运输
计划的各种示例中,我们的方法比其他方
数据结构与算法
33,006
社区成员
35,326
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章