海晴 请教开料算法

deardelphi 2000-07-26 08:18:00
DearDelphi(海晴)请教大虾们一个算法问题
请不要吝啬您的才智。

开料算法
_____________________________________
1 1 1
1 1 1
1 Unit 1y 1
1 1 1
1______________1 1
1 x 1b
1 Set 1
1 1
1 1
1 1
1____________________________________1
a

如图所示,如输入 Set 和 Unit 的长宽分别

为 a,b;x,y; 问一个 Set 最多可容纳多少个

Unit ? 如何排放 ?
...全文
307 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
deardelphi 2000-08-09
  • 打赏
  • 举报
回复
shylsz 你的程序我收到了,你用Delphi线程做的很棒,虽说不是十全十美,但以经很实用了。我还没有祥细的看程序,相信我看完后一定能学到很多的东西的。你一定也是个 DELPHI 的高手吧!我也是不可救药的迷上了她,另外喜欢电子技术和自动控制,再有就是VB,ASP,Flah,Dreamweaver……,但我刚毕业没什么经验的,现做 MRP ,以后多多指教哦!
shylsz 2000-08-07
  • 打赏
  • 举报
回复
程序我已经发了,就不知道能不能帮上你什么忙。
deardelphi 2000-08-06
  • 打赏
  • 举报
回复
最近忙别的去了,但我还是要把这个问题解决的,我准备联系实际来做,而不单纯把他看做纯粹的算法理想化了。
shylsz 如果你有程序那太好了,你可以发到 wangshichina@163.net 或 deardelphi@163.net 非常感激!
谢谢 vcgreener的热心解答,等我弄清了,会把心得体会写上去。
shylsz 2000-08-05
  • 打赏
  • 举报
回复
我有一个程序,用的是回朔的算法。
请告知你的联系方法。
vcgreener 2000-08-02
  • 打赏
  • 举报
回复
不好意思!又错了。

当 Unit 的长边满足上述情况时,显然可以放多个。具体个数可以如下考虑。由已知长边算出可放下的最大面积,可得其相应短边,用已知短边一除即得可放个数。放法也不止两种。

建议你上图书馆检索一下相关文献。
vcgreener 2000-07-31
  • 打赏
  • 举报
回复
不好意思!考虑漏了一种情况.

Unit 的放法还有一种.当 max(a, b) < max(x, y) < sqrt(pow(a, 2) + pow(b, 2) ) 且 min(x, y) 足够小时,即 Unit 为一细长条时,可以斜着放入 Set.

当然这种情况也是显然的. Unit 只能放一个,排法也只有两种且彼此轴对称.

能不能谈一谈你自己的想法?
vcgreener 2000-07-31
  • 打赏
  • 举报
回复
这问题我没有想出可行解法,所以你可以不用往下看。

当 Unit 为正方形时,显然。下面讨论 Unit 为矩形且 a, b, x, y 均为整数时的情形。

此时,Set 的面积 Ss = a * b,Unit 的面积 Su = x * y,当 min(x, y) <= min(a, b) 且 max(x, y) <= max(a, b) 时,即 Set 中至少能放下一个 Unit 时,Set 中最多有可能装入的 Unit 的个数 maxnum = [Su / Ss],其中[ ]为向下取整。

至于 Set 中实际可放入的最大数,则与 Unit 的排法密切相关。容易想到的是穷举法,因为 Unit 只有两种放法(横放或竖放)且可能装入的最大数 maxnum 已知,故可用 maxnum 重嵌套循环确定。但算法的复杂度随 maxnum 的增加而以指数倍递增,从而实际上不可行。没招。:( 不知深蓝行不行。

有意思的是本问题的推广形式。若 Set 和 Unit 非矩形时怎么办?更实际的情况是,在三维空间中怎么办?此时的最简形式是 Set 和 Unit 均为长方体。

本人黔驴技穷,还望黔虎开口,不吝赐教!
deardelphi 2000-07-30
  • 打赏
  • 举报
回复
Set 中的所有 Unit 大小一致,Unit 排法无特殊要求,横竖皆可,但要最多。
xzou 2000-07-27
  • 打赏
  • 举报
回复
我原来也是搞这个的,但太难了,最后什么也没搞出就跳槽了。
vcgreener 2000-07-27
  • 打赏
  • 举报
回复
请问 Set 中的所有 Unit 大小是否一致?
Unit 排法有无特殊要求?
deardelphi 2000-07-27
  • 打赏
  • 举报
回复
不同意lczddd的说法,开料算法是一个在制造业普遍存在的工程工序和算法问题!
lczddd 2000-07-27
  • 打赏
  • 举报
回复
现实生活用不到的问题,试一下不就行了么,耗费时间

33,008

社区成员

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

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