首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

算法:一维下料有关问题

2012-02-05 
高分求教算法:一维下料问题最近公司有一个关于自动配料方面的软件,由小弟接手,关于算法部分苦思不得其解,

高分求教算法:一维下料问题
最近公司有一个关于自动配料方面的软件,由小弟接手,关于算法部分苦思不得其解,望各位大哥大姐赐教。具体如下:
假设:
库存中有4m*3、6.5m*5、7m*5、8m*10、10m*8(4m*3表示4米的材料有3根),
现在用户需要3m*3、3.5m*1、4m*4、5m*3。

问用户该怎么取材,才能使浪费余料最少、材料的切割次数最少?

本题优先级是:
1、浪费余料最少(优先级最高)。
2、切割次数最少。
可以认为库存里最长的材料肯定比用户需要的最长的材料长。

浪费余料:就是在本次切割过程中,切割下来的,但没有用在本次用户要求上的材料都算浪费余料


[解决办法]
用改进的背包算法:(考虑浪费材料最小)
库存料为背包容积,一共有5种背包,10 8 7 6.5 4
把客户料理解为放入背包的材料.
第一步遍历从容积最小的背包开始(最好先把小料用完,然后用大料)
条件是恰好把背包装满.
第二部分 遍历,按照剩余的所有背包用背包算法处理 选取剩余容积最小的情况.


[解决办法]
已经有问过的.
[解决办法]
================================
我是有问过的,但没有人给过答案!
===================================

都跟你说了,是背包问题了,你要的是绝对最优的话,不可能有什么高效的解法的,最多就是回溯+剪枝。别人怎么给你答案啊?

[解决办法]
楼主,背包问题就是思路,不需要再详细描述了,不清楚的可以自己google,连源代码都有.

要最优解分支定界吧.
[解决办法]
to:yht201(flyingbird)

假设:库存中有3m*1、7m*1(4m*3表示4米的材料有3根),
现在用户需要3m*1、4m*1
按你的算法计算出的结果是:使用库存材料:3m*1和7m*1。
而实际上最省的是:7m*1,就可以了

:晕 说了只考虑材料了 没考虑裁剪 那有最优的算法 这个要看哪个权重大
用我的算法也就是多切了一次 具体还是楼主去考虑吧 呵呵

热点排行