钢管切割算法

yuxianye1 2019-04-29 01:50:25
问题如下:
条件
1、每根钢管原材料长6米,原料充足
2、需要成品钢管长度在0.12米-2米之间不定,需要的根数有2300根,可视为已确定条件
3、切割后可以剩余端头废料,剩余端头废料越短越好
4、成品钢管不能拼接
目的
1、利用算法,将成品钢管需要的长度分配给6米长的成品钢管上,使每根6米的钢管产生的废料最少。



数学问题描述
从有限个集合内,选出m个元素,使m个元素的和接近6米,选出后的元素从集合中移除,直到集合中没有元素位置。



是否可以利用组合算法,然后计算长度是否接近6米。

大神能否给个解决的思路,或者用什么算法以及组合算法

...全文
2349 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
lyh1210792617 2020-05-28
  • 打赏
  • 举报
回复
典型的cutting stock问题,直接建立整数规划模型求解。大规模情况试试列生成算法,小规模分支定界法或割平面法都可以。
tanta 2020-05-26
  • 打赏
  • 举报
回复
一维背包问题,不算难。
ye2010luo 2020-04-09
  • 打赏
  • 举报
回复
群主,解决了吗?
tanta 2019-10-21
  • 打赏
  • 举报
回复
典型的背包问题,搜搜吧
yyfhz 2019-06-10
  • 打赏
  • 举报
回复
背包问题,贪心法。
  • 打赏
  • 举报
回复
用遗传算法做了一下,随机生成了一组数,利用率能到93%,计算时间大约30秒
636f6c696e 2019-05-04
  • 打赏
  • 举报
回复
可以用贪心算法,每次都找最接近6米的组合进行剔除。
  • 打赏
  • 举报
回复
若按我理解的2300根钢管的长度是已知的这个大前提,可以用遗传算法计算。将2300根管子编号1-2300,然后采用自然编码的方式生成基因。按照生成的基因顺序取截管子。即几根管子累加后在加上下一根刚好超过6米时截开(不算下一根管子),也可以得到废料长度。评价函数用废料的总量算。交叉和变异采用传统方式就可以,这个用遗传算法应该很容易实现,效果应该也会很好。
  • 打赏
  • 举报
回复
大约想了一下,是不是已知有2300根钢管了,且知道这2300根钢管分别长多少。
  • 打赏
  • 举报
回复
没看懂需求,按照描述都切成1米的就没有废料了。 是不是你的2300跟长度是已知的啊

33,007

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧